2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FreqAI-LSTM:Freqtradeユーザー向けのPyTorch LSTMモデル実装

Posted at

FreqAI-LSTM:Freqtradeユーザー向けのPyTorch LSTMモデル実装

はじめに

Freqtradeを利用している方の中には、標準的なインジケータベースの戦略を超えて機械学習モデルを組み込みたいと考える方も多いはずです。そのための仕組みが FreqAI であり、任意のMLモデルを差し込んで、学習・再学習・推論を運用できるようになっています。

今回紹介する FreqAI-LSTM (Netanelshoshan/freqAI-LSTM) は、まさにその枠組みに「LSTM回帰モデル」を差し込むためのオープンソースです。FreqAIのフォークではなく、独自のPyTorchモデルとサンプル戦略の実装集と位置づけられます。

:package: このリポジトリの概要

目的

FreqAIで利用可能なPyTorchベースのLSTM回帰器を提供

主な特徴

  • LSTMによる時系列予測(窓サイズ・層数・隠れ次元など柔軟に設定可能)
  • 多因子ターゲット生成(複数インジケータをz-score化→重み付け→スコア集約)
  • レジームフィルタ(強気/弱気/中立)やボラティリティ調整の例示
  • サンプル戦略・サンプルconfigを同梱

ライセンス

MIT License

:gear: 技術的な中身

モデル構成

要素 説明
LSTM層 複数層のLSTMで時系列依存を捉える
正則化 BatchNorm、Dropout、AlphaDropoutを利用
出力層 全結合層 + ReLU活性化
ハイパーパラメータ config.jsonから柔軟に設定可能

設定可能なハイパーパラメータ

  • num_lstm_layers: LSTM層数
  • hidden_dim: 隠れ次元数
  • dropout_percent: ドロップアウト率
  • window_size: 時系列窓サイズ
  • batch_size: バッチサイズ
  • n_epochs: エポック数

:computer: 導入手順(コマンド例付き)

以下は簡単な導入フローです:

1. リポジトリのクローン

git clone https://github.com/Netanelshoshan/freqAI-LSTM.git
cd freqAI-LSTM

2. モデル・トレーナーを配置

cp torch/BasePyTorchModel.py freqtrade/freqai/base_models/
cp torch/PyTorchLSTMModel.py freqtrade/freqai/torch/
cp torch/PyTorchModelTrainer.py freqtrade/freqai/torch/
cp torch/PyTorchLSTMRegressor.py user_data/freqaimodels/

3. 戦略・configをコピー

cp strategies/freqai_LSTM_strategy.py user_data/strategies/
cp config-example.json user_data/config-lstm.json

4. データダウンロード

freqtrade download-data --config user_data/config-lstm.json --timeframes 1h 4h

5. 学習

freqtrade freqai-train --config user_data/config-lstm.json

6. バックテスト

freqtrade backtesting --config user_data/config-lstm.json -s freqai_LSTM_strategy

:link: 公式FreqAIとの関係

FreqAIは「モデル運用のフレームワーク」であり、アルゴリズム本体はユーザーが実装します。本リポジトリはその実装例にあたり、

  • FreqAIのコアではなく
  • 外部からプラグイン的に利用できるLSTM実装

として機能します。つまり「FreqAI派生」ではなく「FreqAI対応モデル集」と表現するのが正確です。

:warning: 運用上の注意点

PyTorch移行の背景

TensorFlow版で最新Freqtrade (2024.02以降) と相性問題が出たため、PyTorchへ移行。

タイムフレーム制限

既定の config_validation.py が5m足までに制限しており、修正が必要な場合がある。

過学習リスク

小規模データで高精度を出せるが、実運用ではOOS検証やウォークフォワードが必須。

再現性の確保

シード固定、DataLoaderのシャッフル制御、検証データ分割に注意。

機械学習モデルは過学習しやすいため、必ず十分な検証期間でのテストを行ってください。

:chart_with_upwards_trend: 既存戦略との比較検証方法

LSTMを導入した場合の効果を確認するには、既存のインジケータベース戦略との比較が重要です。以下の流れで比較を行うとよいでしょう。

1. ベースライン戦略を選定

例:単純なEMAクロスオーバー戦略

2. 同一データセットで検証

# ベースライン戦略
freqtrade backtesting --config user_data/config-baseline.json -s EmaCrossStrategy

# LSTM戦略
freqtrade backtesting --config user_data/config-lstm.json -s freqai_LSTM_strategy

3. 評価指標を比較

以下の指標で両戦略を比較します:

  • 勝率 (Win Rate)
  • シャープレシオ (Sharpe Ratio)
  • プロフィットファクター (Profit Factor)
  • ドローダウン (Max Drawdown)

4. OOS検証(ウォークフォワード)

堅牢性を確認するため、以下の設定で検証:

  • 学習期間: 2年
  • 検証期間: 半年
  • これをずらしながら反復

5. 可視化

freqtrade plot-dataframe --config user_data/config-lstm.json -s freqai_LSTM_strategy

freqtrade plot-dataframe を用いて、予測シグナルと価格の関係をグラフ化。

:bust_in_silhouette: どんな人に向いているか?

このツールは以下のような方におすすめです:

:white_check_mark: 推奨する人

  • Freqtradeユーザーで、FreqAIを使ってディープラーニング(LSTM)を試したい
  • 既存のインジケータや特徴量設計をそのまま活かしつつ、予測モデルを差し替えてみたい
  • 多因子スコアリング手法(インジケータを集約してターゲット生成)を参考にしたい人

:x: 注意が必要な人

  • 機械学習の基礎知識がない方(過学習やバイアスの概念理解が重要)
  • すぐに利益を出したい方(十分な検証期間が必要)

:bulb: まとめ

FreqAI-LSTMは、Freqtrade環境でLSTMを気軽に試せる実装例です。単なるサンプルではなく、

  • 実際に運用を見据えた構造
  • 多因子ターゲット生成の工夫
  • PyTorch移行でのGPU対応

といった要素が揃っています。

Freqtradeユーザーにとって「機械学習で一歩先へ」進む入り口として、チェックしてみる価値のあるリポジトリと言えるでしょう。

:link: 関連リンク

タグ

#Freqtrade #FreqAI #LSTM #PyTorch #機械学習 #自動売買 #暗号資産 #時系列予測

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?