Portfolio/습작

코인원-코인플러그 재정거래 (17.4.1) / 현재 동작 안됨.

Foo 2018. 12. 12. 00:06
728x90

현재 동작 안됨.

사유 : 코인플러그 사이트 JSON 데이터 구조가 변경


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 전역 패키지를 사용





텔레그램으로 오는 메시지