005: 上位足トレンド反映の修正 + 4H足追加
ステータス: active
背景
バックテスト結果(n=200相当)で方向的中率が実践レベル(55%+)に届いていない。
| TF |
+1本先 Dir |
+2本先 Dir |
| H足 |
55.0% |
45.0% |
| 30M |
47.8% |
47.8% |
| 15M |
46.3% |
53.7% |
| D足 |
54.0% |
49.0% |
調査で判明した重大な問題
問題1: trend_daily(日足トレンド)が生成されていない
direction_prediction.py が latest.get('trend_daily', np.nan) で参照
- H足config:
daily_trend: 3(最高重み)で投票に参加させようとしている
- 30M config:
daily_trend: 2 も同様
- しかし feature_engineering で
trend_daily は生成されない → 常にNaN → シグナル不発
- 意図した重み付けが全く機能していない
問題2: trend_4h が15M/30Mのexcludeリストに入っている
get_fx_feature_cols() の15M/30M分岐で trend_4h を除外
- 方向予測シグナルでは使われるが、MLモデル(回帰・分類)からは除外
- 矛盾した実装
問題3: H足にDailyトレンドが参照されていない
- H足の
_add_higher_timeframe_features_generic は4Hのみ
- 日足のRSI/MACD/Trend/Momentumが一切入っていない
- H足で最も重要な「日足の方向性」がモデルに反映されない
問題4: マルチTF RSIが30M/15Mで無効
direction_multi_tf_rsi_H: True だがデフォルトは False
- 30M/15Mでは4Hトレンドを加味したRSI判定が動かない
修正計画
5-1: 全TFで上位足Dailyを参照
- H足:
timeframes_config に ('1D', 'daily', 5, True, True) 追加
- 30M足: 同上
- 15M足: 同上
5-2: excludeリストから上位足特徴量を除去
- 15M/30Mの
trend_4h, macd_4h_normalized をexcludeから削除
trend_daily も追加されるのでexcludeしない
5-3: マルチTF RSIを30M/15Mでも有効化
- config:
direction_multi_tf_rsi_30M: True, direction_multi_tf_rsi_15M: True
5-4: バックテストで精度改善確認
実施済み
5-1~5-3: Daily上位足追加 + exclude修正 + マルチTF RSI有効化 ✅
5-5: 4H足 新規追加 ✅
- models.py: Timeframe.HOUR_4 = '4H' 追加
- data_loader.py: load_fx_4hour_data() (H足からresample)
- feature_engineering.py: create_fx_4hour_features() (95特徴量)
- predict_fx.py: BACKTEST_CONFIG/PREDICTION_CONFIG/auto対応
- views.py/urls.py: 4Hビュー・URL追加
- fetch_market.py: regenerate_4h_from_hourly()
- config.py: 4Hパラメータ追加
全TF再最適化(Daily特徴量込み)✅
- H足: 49.2%→49.2%(改善なし、daily_trend=2で有効)
- 30M: 51.8%→53.2%(+1.4%)
- 15M: 47.3%→47.3%(改善なし)
- D足: 変更なし
5-4: バックテスト結果(n=100-200)
| TF |
+1本先 Dir |
+2本先 Dir |
特徴量数 |
| 15M |
49.3% |
50.7% |
80 |
| 30M |
47.8% |
47.8% |
86 |
| 4H |
49.0% |
49.0% |
95 |
| H足 |
52.5% |
42.5% |
100 |
| D足 |
54.0% |
49.0% |
85 |
課題
方向的中率は全TFで50%前後(コイントス同等)。
実践レベル(55%+安定)には根本的な改善が必要:
- 特徴量選択(ノイズ削減)
- 分類モデルのハイパーパラメータ最適化
- 学習ウィンドウ・データ量の検討