beauty in struggle

[가상화폐 트리이딩 봇 만들기 Part.2] freqtrade Backtesting 본문

After-work/Cryptocurrency

[가상화폐 트리이딩 봇 만들기 Part.2] freqtrade Backtesting

dgdeus 2021. 4. 7. 22:58
728x90
SMALL

이번에는 freqtrade에서 제공하는 Backtesting 기능을 사용해본다.

 

Backtesting을 통해 trading bot의 거래전략이 잘 working하는지 분석이 가능하다.

피같은 돈을 넣기전에 반드시 사용하려는 strategy가 잘 동작하는지 backtesting을 통해 확인하자!

 

우선, freqtrade의 Backtesting을 사용하려면 분석대상인 trading 전략 코드가 있어야한다.

 

아래의 링크에서 freqtrade에서 사용가능한 몇 가지 trading 전략을 코드로 제공하고 있으므로, 이를 사용해 Backtesting을 수행해본다.

github.com/freqtrade/freqtrade-strategies

 

freqtrade/freqtrade-strategies

Free trading strategies for Freqtrade bot. Contribute to freqtrade/freqtrade-strategies development by creating an account on GitHub.

github.com

 

 

1. 먼저, 위 링크에서 제공하는 freqtrade strategy 코드를 사용하기 위해, 해당 코드들을 freqtrade가 읽어들이는 디렉토리로 옮긴다.

>> git clone https://github.com/freqtrade/freqtrade-strategies

>> mv freqtrade-strategies/user_data/strategies/* ./user_data/strategies 

 

 

2. 다음으로 backtesting에 사용할 데이터를 freqtrade를 통해 다운받는다.

- Default: 최근 30일의 "1m"과 "5m" time frame의 데이터를 다운

- Example of relative timerange: --days 20

- Example of absolute starting point: --timerange 20200101-

- Config 설정: --config ./user (기본설정은 config.json이며, 이 파일 내에서 어떤 데이터를 다운받을지를 유저가 설정)

- binanace에서 KRW 데이터는 제공하지 않는 것으로 보임

 

>> freqtrade download-data --config ./config.json

(최근 30일의 1m, 5m frame 데이터를 config.json 파일의 configuration으로 다운로드)

 

- 데이터는 ./user_data/data/binance/ 에 저장되고, freqtrade list-data로 확인이 가능

>> freqtrade list-data

 

3. Backtesting 수행

- "--dry-run-wallet" 으로 초기자금 설정가능

- "--strategy-list"로 여러 개의 strategies를 backtesting 및 비교 가능

 

>> backtesting --strategy-list Simple AverageStrategy MACDStrategy ReinforcedQuickie --strategy-path ./user_data/strategies/berlinguyinca --ticker-interval=5m

 

ReinforcedQuickie에 대한 backtesting 결과

 

입력 strategies에 대한 backtesting 결과 비교

 

일단은 오류없이 동작은 하는데, 희안하게 전부 Total Profit %이 0에 수렴했다. 뭐지?

아직은 가상화폐 자체도 그렇고 모르는게 너무 많다.

차근차근히 공부해봐야겠다.

728x90
LIST
Comments