Upbit 자동 투자 봇 개발 (#2)
업비트에서 제공하는 API의 경우 주문 요청에 대해 제한 기준이 있어 1초 당 8번 이상의 매수/매도 주문을 날릴 수가 없습니다.
- 주문 요청
초당 8회, 분당 200회 - 주문 요청 외 API
초당 30회, 분당 900회
그렇다고 API에서 한번 요청에 여러개의 코인을 매수/매도할 수 있는 기능을 제공하고 있지도 않은데요. 따라서 초당 8회 미만의 주문 요청을 날리는 코드를 작성하였습니다.
const _sleep = (d) => new Promise((res) => setTimeout(res, d));
let _job = [];
const cronbot = async () => {
const job = _job.shift();
if (job) job();
await _sleep(200);
return cronbot();
};
cronbot();
const orderbot = {
addJob: (e) => {
_job.push(e);
},
};
cronbot 이란 함수에서 _job이란 배열에 들어있는 놈을 하나씩 꺼내서 실행을 하고 200ms 간 딜레이를 발생 시킨뒤 재귀함수로 데이터를 반복하여 체크를 합니다.
orderbot의 addJob을 통해 함수 형태의 데이터를 입력받아 _job 배열에 데이터를 저장합니다.
위 기능을 통해서 1초에 최대 8개의 코인을 동시 매수 할 수 있습니다...만 불장이 아닌 요즘같은 타이밍에 매수를 할 경우 8개의 코인이 동시에 하락하는 경험을 할 수 있습니다... ㅋㅋ
Upvoted! Thank you for supporting witness @jswit.
