글
[시스템트레이딩] 전략 시뮬레이션(1)
본인이 만든 전략을 실전에 적용하기 전에 과거 데이터를 이용하여 수익이 나는지 시뮬레이션을 해 보아야합니다. 물론 과거 데이터로 이익이 났다고 실전에서 수익이 난다는 보장은 없습니다. 하지만 개략적인 전략의 수익 정도를 파악할 수는 있습니다.
우선 암호화폐 기준으로 작업을 먼저해보겠습니다. 그 후 선물/주식에 대해서도 확장하도록 하겠습니다.
시뮬레이션을 위하여 첫 번째로 해야할 일은 과거 데이터를 확보하는 것입니다. 최대한 많은 데이터를 확보하여야 의미있는 결과를 볼 수 있습니다만, 과거 데이터 확보하는 것이 간단하지는 않습니다.
일단 업비트 거래소의 과거 데이터를 받아보도록 하겠습니다.
업비트 거래소 API를 이용하여 과거 candle 데이터를 얻을 수 있습니다. 하지만 업비트 거래소에 얻을 수 있는 과거 데이터는 아주 제한적입니다. 그래서 업비트 거래소 데이터를 제공하는 아래 사이트에서 과거 데이터를 구해보겠습니다.
일단 일봉을 구해보겠습니다. 일봉을 구하는 REST API는 아래와 같습니다.
crix-api-endpoint.upbit.com/v1/crix/candles/days
여기에 필요한 정보를 추가하면 됩니다.
- 코인명
- candle의 수량
- 범위
예를들어 가장 최근 KRW-BTC 일봉 10개를 받고 싶으면 아래 url을 보내면 됩니다.
crix-api-endpoint.upbit.com/v1/crix/candles/days?code=CRIX.UPBIT.KRW-BTC&count=10
그 결과는 아래와 같습니다.
한번에 얻을 수 있는 최대 candle의 수는 400개 입니다. 따라서 400개를 얻은 후 범위를 조정하여 이전 400개를 받는 방식으로 하면 최대 2017년 9월 말 자료까지 얻을 수 있습니다.
관련 코드는 아래 github에 올려놓았습니다.
github.com/multizone-quant/system-trading/blob/master/get_upbit_day_candles.py
첫 400개를 받은 후 마지막 일자를 보고 to 값을 만들어서 다시 보내는 방식으로 수정을 하면 자동으로 데이터를 뽑을 수는 있을 것 같습니다. 일단은 수동으로 첫 excel 파일을 열어본 후 마지막 to 값을 설정해서 다운받는 방식입니다.
BTC, ETH, EOS, XRP, STEEM 일봉 candle은 아래 위치에 저장되어 있습니다.
github.com/multizone-quant/system-trading/tree/master/sim_data
다음 글에서는 이 자료를 이용하여 Larry Williams 변동성 전략을 적용한 simulator를 만들어보겠습니다.
'시스템트레이딩' 카테고리의 다른 글
[시스템트레이딩] 전략 시뮬레이션(3) (0) | 2020.11.19 |
---|---|
[시스템트레이딩] 전략 시뮬레이션(2) (0) | 2020.11.18 |
차트 그릴 때 진입 위치를 표시하는 방법 (2) | 2020.07.22 |
웹크롤링으로 관리종목, 거래중지 종목 구하기 (0) | 2020.06.05 |
[파이썬] 요일 찾기에서 주말 건너뛰기 (0) | 2020.05.30 |