メインコンテンツまでスキップ

Strategy Canvas (ETH_JPY / GMO Coin)

このドキュメントは、ATC の戦略研究を継続的に進めるためのプロジェクトオーナー向け設計書です。

1. ミッション

  • WebSocketイベント駆動で、ETH_JPY 信用取引のロング/ショート両対応戦略を開発する。
  • 1分足依存を避け、TRADE / TICKER / ORDERBOOK_SNAPSHOT を主トリガーにする。
  • 戦略を同一インターフェース (TargetPositionIntent) で比較可能にする。

2. 評価の原則

  • 主指標は Alpha PnL 系 (pnl_alpha = pnl_strat - pnl_bench)。
  • ベンチPnLは「保有エクスポージャが受ける市場ドリフト」を差し引く。
  • 収益だけでなく、次を必ず記録する:
  • alpha_sharpe, alpha_max_dd
  • turnover, fill_rate, adverse_selection
  • 約定品質(spread cross率、想定 vs 実約定乖離)

3. 戦略ポートフォリオ(研究対象)

3.1 Microstructure: 超短期(優先度: 高)

  1. momentum_micro(実装済み baseline)
  • シグナル: logret_1s/5s, trade flow偏り
  • 狙い: 短期トレンド継続
  1. mean_reversion_micro(実装済み baseline)
  • シグナル: 秒足リターンの過熱
  • 狙い: 短期反転
  1. inventory_mm(実装済み baseline)
  • シグナル: ob_imbalance_top1/top5, spread
  • 狙い: 在庫制御 + 板歪み優位
  1. queue_imbalance_breakout(実装済み baseline)
  • シグナル: top5 imbalance急変 + trade連続性
  • 狙い: 板主導のブレイク捕捉
  1. sweep_follow(実装済み baseline)
  • シグナル: 大口連続約定、best価格ジャンプ
  • 狙い: sweep後の短期追随
  1. regime_switch_micro(実装済み baseline)
  • シグナル: rv_5s を使って短期レジームを判定
  • ロジック: 低ボラ時は momentum、高ボラ時は mean-reversion
  • 狙い: 同一ルール固定による regime mismatch を抑える
  1. flow_imbalance_pulse(実装済み baseline)
  • シグナル: trade_imbalance_1s + trade_vol_1s + logret_1s
  • ロジック: フロー偏りが閾値超過のときのみエントリーし、圧力が弱まれば即フラット
  • 狙い: trade-only データでも高頻度な無駄トレードを抑制

3.2 Regime/Hybrid: 短中期(優先度: 中)

  1. vol_regime_switch
  • シグナル: rv_5s/30s, spread regime
  • ロジック: 高ボラ時はMR、低ボラ時はMMなど切替
  1. time_of_day_policy
  • シグナル: 時間帯別の流動性と約定品質
  • ロジック: 東京/欧州/米国セッションで閾値変更
  1. event_coalesced_trend
  • シグナル: 20-100ms coalescing後の変化率
  • ロジック: 過剰反応ノイズを落として執行頻度を制御

3.3 ML/Optimization(優先度: 中〜高)

  1. ml_direction_1s_5s
  • 目的: 短期方向確率を推定し target position に写像
  • 特徴量: 既存 FeatureEngine + microstructure派生
  • モデル候補: LightGBM / 小型MLP
  1. meta_policy_allocator
  • 目的: 複数戦略の重み最適化
  • 入力: 各戦略の直近 alpha / drawdown / 約定品質
  1. ga_param_search
  • 目的: ルール戦略の閾値を遺伝的に探索
  • 制約: 過学習抑制(walk-forward必須)
  1. llm_research_assist(オンライン執行には使わない)
  • 目的: 特徴量案・失敗要因分析の補助
  • 注意: 推論遅延があるため本番シグナル生成には不使用

4. 実装優先順位(次スプリント)

  1. queue_imbalance_breakout を baseline 群に追加
  2. sweep_follow を baseline 群に追加
  3. vol_regime_switch を追加
  4. ml_direction_1s_5s のオフライン学習パイプライン初版

5. 採用ゲート(昇格条件)

戦略の昇格は以下の段階を順に満たすこと:

  1. Backtest gate
  • 期間分割で alpha が一貫(単一期間依存でない)
  • 取引コスト仮定を変えても致命的劣化がない
  1. Replay gate
  • イベント再生で意図した意思決定が再現される
  • 過剰発注(order rate)とリスク拒否率が許容範囲
  1. Paper gate
  • 2週間以上の paper/live-sim で安定
  • kill-switch 発火要因が説明可能
  1. Production canary gate
  • 小ロットで限定運用
  • alpha悪化時に即時ロールバック可能

6. 研究運用ルール

  • 1戦略 = 1ドキュメント(docs/experiments/
  • 1変更 = 1仮説(多変量同時変更を避ける)
  • 結果は「勝ち理由」より「負け方」を優先記録
  • 実験前に停止条件(max DD, max loss streak)を明記

7. すぐ着手する具体タスク

  1. src/atc/strategies/baselines/queue_imbalance_breakout.py を追加
  2. src/atc/strategies/baselines/sweep_follow.py を追加
  3. src/atc/strategies/registry.py に登録
  4. 各戦略の最小テストを tests/ に追加
  5. 比較用バッチ実行コマンドを justfile に追加