글
[시스템트레이딩] 전략 시뮬레이션(9) - 과거 데이터(체결, tick데이타) 연속으로 가져오기
BTC 불장으로 암호화폐 시장이 활황입니다. 이 흐름이 알트 코인으로 넘어오지는 않았지만 100% 넘게 오르는 코인도 자주나옵니다.
이런 종목이 오르기 시작하는 시점에 잡아서 쭉~~ 들고 있으면 수익이 많이 나겠죠.
암호화폐 종목은 특이하게도 아침 9시 이후에 급등하는 경우가 많습니다.
그렇다면 아침 9시 근처에 체결정보를 보다가 급등하는 종목이 나오면 냉큼 매수하면 대박이 나는 종목을 모두 매수할 수 있을 것입니다. 물론 오르다 마는 종목도 있을테니 손절 종목도 나오겠지만 기프트 같이 100% 오르는 종목에서 손해를 만회할 수 있겠죠.
이런 전략을 개발하기 위해서는 과거 tick 정보를 가져와서 시뮬레이션을 해봐야 합니다.
이번에는 과거 tick 정보를 연속으로 가져오는 방법을 기술합니다.
업빗에서 tick 정보를 가져오는 url은 아래와 같은 형식을 가지고 있습니다.
api.upbit.com/v1/trades/ticks?market=KRW-BTC&count=500&daysAgo=0&to=10:00:00
받은 데이터의 형태는 아래와 같습니다.
기존 과거 candle 정보와는 형식이 틀립니다. 각 인자는 아래와 같은 의미를 가지고 있습니다.
- dayAgo : 오늘 기준으로 며칠 전 (0: 오늘 1 : 어제 최대 7일 전 )
- to : 몇시 까지 가져올지 결정 (형식 : HH:mm:ss)
- count : 최대 tick 수 (최대 : 500)
tick 자료를 연속으로 가져올 때 주의할 사항은 한번에 받는 데이터의 크기가 500개로 제한되므로, 제일 마지막 sec 자료는 모두 받지 못하는 경우가 있습니다. 따라서 연속으로 tick 정보를 받아서 합치는 경우에는 이 점을 고려해서 코딩을 해야 합니다.
또한 tick 데이터는 utc 기준으로 일자를 계산합니다. 따라서 dayAgo 값이 0이면 오늘 tick 값을 받을 수 있는데, utc 기준임을 꼭 염두에 두시고 처리하시기 바랍니다.
프로그램을 실행시킬 때 아래 인자를 수정하면 됩니다.
utc 기준으로 오늘 08시 부터 09시 BTC tick 데이터를 얻는 방법입니다.
COIN = 'KRW-BTC' # 원하는 코인 정보
TICK_AGO = 0 # tick정보는 ago를 to 개념으로 봐야함 ( 0: 오늘 1 : 어제 최대 7일 전 )
TICK_FROM = '08:00:00' # HH:mm:ss (utc 기준임) or None (00:00:00)
TICK_TO = '09:00:00' # HH:mm:ss (utc 기준임) or None (최근)
TICK_AGO 값이 0이면 오늘입니다. 최대 7일 전까지만 검색이 가능하므로, 1주일에 한 번씩은 tick 데이터를 받아야 오랜 기간 데이터를 확보할 수 있습니다.
최근 시간까지 tick 정보를 원하면 TICK_TO 값을 None으로, 0시까지 tick 정보를 원하면 TICK_FROM 값을 None으로 하면 됩니다.
파이썬 소스코드는 아래 github에 있습니다.
github.com/multizone-quant/System_trading_ex/blob/main/get_upbit_ticks.py
'시스템트레이딩' 카테고리의 다른 글
[시스템트레이딩] 김프를 먹는 자동매매 (5) | 2021.04.30 |
---|---|
[시스템트레이딩] API를 이용한 자동매매(4) (13) | 2021.03.28 |
[시스템트레이딩] 전략 시뮬레이션(8) - 과거 데이터(분봉) 연속으로 가져오기 (18) | 2021.01.12 |
[시스템트레이딩] API를 이용한 자동매매(3) (0) | 2020.12.12 |
[시스템트레이딩] API를 이용한 자동매매(2) (10) | 2020.12.12 |