Notice
Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

BitEth

[#Trading Idea-1, 코드공개시 주의] 코인원-코인플러그 재정거래 본문

Projects

[#Trading Idea-1, 코드공개시 주의] 코인원-코인플러그 재정거래

Foo 2017. 4. 1. 23:30

1. 거래가 활발한 코인원에서 급락한 비트코인을 구입.

2. 바로 코인플러그로 전송

3. 코인플러그에서 3컨펌(코인플러그 기준)이 나면 판매

4. 수익


위 상황을 만들기위해선 지속적인 모니터링이 필요함.

가격 차이는 많이 날수록 좋겠지만 코인원의 가격정보는 마지막으로 거래가 발생한 가격을 기준으로 삼았고,

코인플러그는 Buy Order를 더해가면서 1.5 BTC 이상을 가지는 가격을 기준으로 삼았다.


위 상황을 모니터링 하기 위해 스크립트를 작성했음.



const request = require('request'); const Bot = require('node-telegram-bot-api'); const myTelegramId = TELEGRAMID; let bot = new Bot('API_KEY', { polling: true }); let sendRequest = function() { request.get('https://api.coinone.co.kr/ticker/', function(err, response, body) { let coinOneLastPrice = JSON.parse(body).last; request.get('https://www.coinplug.com/web/recent_orders_ex?_=1490536959543&menu=order', function(err, response, body){ let coinPlugOrderArray = JSON.parse(body).list[0]; let btcSum = 0; let coinPlugLowBtcPrice = 0; for(let i = 0; i < coinPlugOrderArray.length; i++) { btcSum += coinPlugOrderArray[i].btcAmount; if(btcSum > 1.5) { coinPlugLowBtcPrice = coinPlugOrderArray[i].unitPrice; break; } } let priceDiff = coinPlugLowBtcPrice - coinOneLastPrice; let currentTime = new Date(); if(priceDiff > 15000) { bot.sendMessage(myTelegramId, 'coinone - ' + coinOneLastPrice + ' coinplug - ' + coinPlugLowBtcPrice + ' 가격차이 : ' + priceDiff, {}); console.log(currentTime + '알림 차이 ' + priceDiff); } console.log(currentTime + ' 안알림 차이 ' + priceDiff); }); }); } sendRequest(); setInterval(sendRequest, 1000 * 30);



백그라운드에서 실행시키기 위해 nohup를 사용하였고, 에러발생시(주로 코인플러그에 가격 정보 요청 시 에러 발생)를 대처하기 위해 forever 전역 패키지를 사용