[Node.js] 내 포트폴리오를 텔레그램 푸쉬로 받기

지난 강좌에 이어.. 이번에는 내 포트폴리오를 가격변동에 따라 수익을 계산하고
일정 가격 변동이 오면 텔레그램으로 푸쉬를 받는 서비스 코드를 만들어 보겠습니다.

기본적인 서버 설정 및 환경 설정은 지난강좌를 확인 부탁드립니다.
기본적인 서버를 실행 가능한 분들에게 추천드리는 강좌입니다.

다음 강좌는
초보 분들을 위하여 첫 서버 설정 (Amazon AWS EC2 Free Tier) 강좌
기초 서버 설정 및 스크립트 제작 강좌
간단한 서버 운용법에 대한 강좌
를 작성해보도록 하겠습니다.

node.js 스크립트

const publicApi = require('poloniex-api').publicApi.create();
const TelegramBot = require('node-telegram-bot-api');
var request = require('sync-request');


const token = 'YOUR_TELEGRAM_BOT_TOKEN';
const bot = new TelegramBot(token, {polling: true});


var price_last =0;
var price_current=0;
var USER = 'YOUR_TELEGRAM_NUMBER';
var idx = 0;
function push_channel(text) {
    
    var opt = {
      disable_web_page_preview: true,
      parse_mode: "HTML"  
    };
    bot.sendMessage(USER, text, opt);           
    price_last=price_current;
    idx++;
}

function get_newprice(arg){
    var res = request('GET', 'https://api.coinone.co.kr/ticker/?format=json&currency=all');
    var coinone_price = JSON.parse(res.getBody().toString("utf8"));
    var price_current = coinone_price.eth.last;
   //eth 는 이더리움 btc는 비트코인 etc는 이더리움 클래식 입니다.
    return price_current;
}

function myFunc (arg) {
    price_current=get_newprice("d");

    if(Math.abs(price_last - price_current) > 3000 ) { 
        //여기서 3000은 3000원 이상 변동이 있을때 아래 스크립트를 실행합니다.
    var total_profit = price_current * 10 - 3000000;
        // 총 수익 계산법은  "현재가격 * 현재 가지고 있는 코인수 - 투자금" 으로 계산하였습니다.

    msg = "변동: " + (price_current - price_last).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ",") + "원 \n";
    msg += "======== 수익 ======== \n";
    msg += "전 대비 수익: " + (( price_current - price_last ) * 10).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ",") + "원 \n";
    msg += "총 수익: " + total_profit.toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ",") + "원\n";
    msg += "===== 현재 가격 =====\n";
    msg += "ETH: " + Number(price_current).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ",") +"원\n";
    msg += "IDX: "+idx;
    push_channel(msg)
    }
}

setInterval(myFunc, 1000);
//서버와 1초마다 통신하여 가격을 확인합니다.

주요 로직

주요 로직은 다음과 같습니다.

  1. 현재 가격을 체크한다.
  2. 지난 주기 가격대비 변동을 체크한다. (현재는 1초)
  3. 변동이 내 한계보다 높으면 수익을 계산한다.
  4. 계산된 수익과 변동을 텔레그램으로 보내준다.
  5. 1초마다 이 루프를 확인한다.

기타

프로그래밍에 있어 제일 중요한 부분은 위와 같이 첫 로직을 잡는 일입니다.
사실상 로직만 잡게 된다면 코드를 짜는 부분은 어렵지 않습니다.

제 개인적인 로드맵은 가격 확인까지 완료 하였으니, 재정거래나 트레이딩 봇을 만들어볼까 하는데요,
개발 하면서 milestone이나 일부 결과물은 steemit에 공유하여 여러 분들도 참고가 가능하게 할 예정입니다.

부족하지만 궁금하신점 있으시면 댓글 남겨주세요 :)

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Logo
Center