지난주 부터 짬짬이 gopax API 공부를 하고 있다. gopax API를 이용한 자동매매 프로그램을 이번 연휴 기간에 마무리를 하려고 했는데, gopax API예제의 부족과 HTML 방식의 메시지 전달에 대한 이해 부족으로 진도가 나가지 않았다. 그래서 일단 자동매매를 위한 최소 API만 검증하기로 했다.
for(영원히) {
if (체결) { # 1번 API
현재 주문현황을 가져온다. # 2번 API
매수 전략대로 매수 가격을 결정하고 체결된 수량만큼 매수 주문을 낸다. # 3번 API
}
wait(30초)
}
아래 URL 형식으로 만들어서 요청하면 매수/매도 호가 각각 5개씩이 반환된다. limit이 없으면 모든 호가를 받을 수 있다. 시간이 좀 더 걸릴 것 같아서 5개만 받아오는 것으로 변경하였다.
https://api.gopax.co.kr/trading-pairs/EOS-KRW/book?level=5
반환된 결과에서 매수/매도 호가를 읽어내는 소스는 아래와 같다.
req = requests.get(url = 'https://api.gopax.co.kr/trading-pairs/EOS-KRW/book?level=5')
if req.ok :
HTMLsouceGet(req)
book = req.json()
bids = book['bid'];
asks = book['ask'];
# array [0] : id, [1] : price [2] : shares
for i in range(5): # ask 즉 매도호가
print(asks[i][0], asks[i][1], asks[i][2])
print("----------------------")
for i in range(5): # bid 즉 매수호가
print(bids[i][0], bids[i][1], bids[i][2])
print("----------------------")
생각대로 동작하지 않는 API가 몇 개 있어서 이번 연휴에 자동 매매 프로그램 개발을 마무리하지 못하였다. 이번 주 퇴근 후에 기본적인 전략으로 자동 매매가 되는 코드를 완성할 계획이다. 일단은 매수 전략 중 3번 중단기 매매를 기준으로 작업할 예정이다. 이 글을 쓰고 보니 3번 전략으로 매매를 하려면 2번 주문현황이 크게 필요가 없다. 괜히 1번 전략을 욕심내다가 시간만 낭비한 것 같다. 자동매매 프로그램을 돌려보는 것을 먼저 해야겠다.