😀

FreqTradeのDocumentを読み込む【データダウンロード】

に公開

当記事の概要

FreqTradeのデータダウンロードページのアウトプットになります。

データダウンロードページの記載内容

  • バックテストに必要なデータをダウンロードする方法
  • バックテストの結果を読み取る方法
  • バックテストの精度を向上させる方法

バックテストに必要なデータをダウンロードする方法

コマンドを実行し、データをダウンロードする

freqtrade download-data --exchange <exchange> --pairs .*/USDT"

上記のコマンドにより、<exchange>内に指定されている取引所からUSDTを含むの全てのペアデータをダウンロードすることができます。

すべての通貨ペアのOHLCV(始値、高値、安値、終値、出来高)がダウンロードされます。
現在は、日付を指定していないので、過去30日間の1分足・5分足のデータを対象として、ダウンロードされます。

なお、ファイルは下記の命名規則に従って、データディレクトリに保存されます。

<pair>-trades.feather( ETH_BTC-trades.feather )

基礎コマンド

基礎となるコマンドは、下記になります。下記に対してオプションを設定していきます。
オプションの指定がない場合は、過去30日間の1分足・5分足のデータを対象として、ダウンロードされます。

freqtrade download-data

コマンドオプション一覧

--timeframes 1m 5m
--days<daynumber>
--timerange <yyyymmdd>-
--prepend--timerange <yyyymmdd>-<yyyymmdd>
--exchange <exchange>
--paris <paris>
--data-format-ohlcv <json,jsongz,feather,parquet>
--data-format-trades <json,jsongz,feather,parquet>
--trading-mode <spot,margin,futures>
  • timeframes:ダウンロードする時間足を指定します。
  • days:ダウンロードする日付を相対指定します。最新日から過去<daysnumber>日のデータを取得
  • timerange <yyyymmdd>-:yyyymmddから最新日までのデータを取得
  • prepend--timerange<yyyymmdd>-<yyyymmdd>:<yyyymmdd>-<yyyymmdd>までの期間のデータを取得
  • exchange <exchange> : <exchange>からデータを取得します。
  • paris <paris>:<paris>のデータを取得します。正規表現の利用が可能です。

データ形式の指定

FreqTradeがサポートしているデータ形式

  • feather
  • json
  • jsongz
  • parquet

デフォルトでは、OHLCVデータと取引データの両方が、「feather形式」で保存されます。
前述した、--data-format-ohlcv <json,jsongz,feather,parquet>と
--data-format-trades <json,jsongz,feather,parquet>で、データのファイル形式を指定したうえでダウンロードすることも可能です。

著者コメント
JSONのほうが、LLMとの相性はよさそうだなと思ったけど、ダウンロード速度がJSONは遅い・ファイルサイズがでかくなるようで、freqtradeは、featherを推奨してました。

ダウンロードしたデータの確認方法

list-dataコマンドを使うことで、ダウンロードしたデータのリストを取得することができます。

freqtrade list-data --userdir ~/.freqtrade/user_data/
以下、出力例です。
┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━┓
┃          Pair ┃                                 Timeframe ┃ Type ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━┩
│       ADA/BTC │     5m, 15m, 30m, 1h, 2h, 4h, 6h, 12h, 1d │ spot │
│       ADA/ETH │     5m, 15m, 30m, 1h, 2h, 4h, 6h, 12h, 1d │ spot │
│       ETH/BTC │     5m, 15m, 30m, 1h, 2h, 4h, 6h, 12h, 1d │ spot │
│      ETH/USDT │                  5m, 15m, 30m, 1h, 2h, 4h │ spot │
└───────────────┴───────────────────────────────────────────┴──────┘

オプション

--exchange <EXCHANGE>
--show-timerange
--trading-mode
-p PAIRS <PAIRS ...>

詰まりそうだなというポイント

  • データダウンロード時に、binaceのAPIに引っかかってしまいダウンロードが止まる
  • feahterファイルを簡単に参照できるローカル構成にしておく(データの検証)

Discussion