← Issues一覧 完了 暗号資産

Issue #005: 方向予測パラメータ最適化

報告日

2026-02-23


開発ルール

# コマンド実行は必ず poetry run を使うこと
poetry run python manage.py predict_ohlc ...

# 精度検証・バックテストは自律実行OK(ユーザーレビュー不要)
# コーディング・設計変更はユーザーレビューを求める

関連issue

003 予測アーキテクチャ刷新  完了done
004 方向予測の強化  完了予定精度検証済み
005 方向予測パラメータ最適化  このissueactive

背景

004の精度検証で方向予測の的中率が低い(D:50.4%, 30M:54.6%)ことが判明。 主因はテクニカル閾値のハードコードとシグナル重みの未調整。

根本的な問題: - pred(モデル予測)が8-9シグナルの中で1票しかなく、テクニカル指標に負ける - RSI/Stoch閾値がハードコード(35/65, 25/75)で最適化されていない - 信頼度スコアが的中率と相関しない


実施内容

Step 1: direction_prediction.py の閾値をconfig.py参照に変更
  
Step 2: tool_optimize_direction.py 作成(Optunaでパラメータ探索
  
Step 3: D/30M で最適化実行し、結果をconfig.pyに反映

Step 1: 閾値のconfig化

config.py 追加パラメータ

"direction_rsi_buy": 35,      # RSI買い閾値(未満で買い)
"direction_rsi_sell": 65,     # RSI売り閾値(超で売り)
"direction_stoch_buy": 25,    # Stoch買い閾値
"direction_stoch_sell": 75,   # Stoch売り閾値
"direction_pred_weight": 1,   # pred投票の重み(他シグナルは1)
"direction_confidence_signal_ratio": 70,  # 信頼度のシグナル配分(残りは変化率)

direction_prediction.py 変更箇所


Step 2: tool_optimize_direction.py 作成

既存の tool_optimize_weights.py パターンに従う Optuna 最適化ツール。

最適化パラメータ(6次元)

パラメータ 探索範囲 ステップ 現在値
direction_rsi_buy 20-45 5 35
direction_rsi_sell 55-80 5 65
direction_stoch_buy 15-40 5 25
direction_stoch_sell 60-85 5 75
direction_pred_weight 1-5 1 1
direction_confidence_signal_ratio 40-80 10 70

目的関数

バックテスト実行 → 実績OHLCVと照合 → 方向的中率を最大化

高速化


Step 3: 最適化実行 & 反映

  1. D, 30M, H それぞれで最適化実行
  2. 結果をconfig.pyに反映
  3. 反映後に精度再検証
  4. .docs/004_方向予測精度レポート.md を更新

対象ファイル

ファイル 変更内容
_predict_ohlc/config.py 6パラメータ追加
_predict_ohlc/direction_prediction.py ハードコード → config参照(3関数)
commands/tool_optimize_direction.py 新規作成(Optuna最適化ツール)

検証

# Step 1: config化の回帰テスト(変更前と同じ結果になること)
poetry run python manage.py predict_ohlc -t D --backtest --periods 50 --step 5 --save
poetry run python test_scripts/analyze_direction.py

# Step 2: 最適化実行
poetry run python manage.py tool_optimize_direction -t D --trials 100
poetry run python manage.py tool_optimize_direction -t 30M --trials 100

# Step 3: 最適値反映後の精度検証
poetry run python manage.py predict_ohlc -t D --backtest --periods 50 --step 5 --save
poetry run python test_scripts/analyze_direction.py