본인이 만든 전략을 실전에 적용하기 전에 과거 데이터를 이용하여 수익이 나는지 시뮬레이션을 해 보아야합니다. 물론 과거 데이터로 이익이 났다고 실전에서 수익이 난다는 보장은 없습니다. 하지만 개략적인 전략의 수익 정도를 파악할 수는 있습니다.

 

우선 암호화폐 기준으로 작업을 먼저해보겠습니다. 그 후 선물/주식에 대해서도 확장하도록 하겠습니다.

 

시뮬레이션을 위하여 첫 번째로 해야할 일은 과거 데이터를 확보하는 것입니다. 최대한 많은 데이터를 확보하여야 의미있는 결과를 볼 수 있습니다만, 과거 데이터 확보하는 것이 간단하지는 않습니다.

 

일단 업비트 거래소의 과거 데이터를 받아보도록 하겠습니다.

 

업비트 거래소 API를 이용하여 과거 candle 데이터를 얻을 수 있습니다. 하지만 업비트 거래소에 얻을 수 있는 과거 데이터는 아주 제한적입니다. 그래서 업비트 거래소 데이터를 제공하는 아래 사이트에서 과거 데이터를 구해보겠습니다.

 

crix-api-endpoint.upbit.com

 

일단 일봉을 구해보겠습니다. 일봉을 구하는 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

 

multizone-quant/system-trading

logics for system trading. Contribute to multizone-quant/system-trading development by creating an account on GitHub.

github.com

첫 400개를 받은 후 마지막 일자를 보고 to 값을 만들어서 다시 보내는 방식으로 수정을 하면 자동으로 데이터를 뽑을 수는 있을 것 같습니다. 일단은 수동으로 첫 excel 파일을 열어본 후 마지막 to 값을 설정해서 다운받는 방식입니다.

 

BTC, ETH, EOS, XRP, STEEM 일봉 candle은 아래 위치에 저장되어 있습니다.

github.com/multizone-quant/system-trading/tree/master/sim_data

 

multizone-quant/system-trading

logics for system trading. Contribute to multizone-quant/system-trading development by creating an account on GitHub.

github.com

다음 글에서는 이 자료를 이용하여 Larry Williams 변동성 전략을 적용한 simulator를 만들어보겠습니다.

 

 

 

반응형

설정

트랙백

댓글