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_ddturnover,fill_rate,adverse_selection- 約定品質(spread cross率、想定 vs 実約定乖離)
3. 戦略ポートフォリオ(研究対象)
3.1 Microstructure: 超短期(優先度: 高)
momentum_micro(実装済み baseline)
- シグナル:
logret_1s/5s, trade flow偏り - 狙い: 短期トレンド継続
mean_reversion_micro(実装済み baseline)
- シグナル: 秒足リターンの過熱
- 狙い: 短期反転
inventory_mm(実装済み baseline)
- シグナル:
ob_imbalance_top1/top5, spread - 狙い: 在庫制御 + 板歪み優位
queue_imbalance_breakout(実装済み baseline)
- シグナル: top5 imbalance急変 + trade連続性
- 狙い: 板主導のブレイク捕捉
sweep_follow(実装済み baseline)
- シグナル: 大口連続約定、best価格ジャンプ
- 狙い: sweep後の短期追随
regime_switch_micro(実装済み baseline)
- シグナル:
rv_5sを使って短期レジームを判定 - ロジック: 低ボラ時は momentum、高ボラ時は mean-reversion
- 狙い: 同一ルール固定による regime mismatch を抑える
flow_imbalance_pulse(実装済み baseline)
- シグナル:
trade_imbalance_1s+trade_vol_1s+logret_1s - ロジック: フロー偏りが閾値超過のときのみエントリーし、圧力が弱まれば即フラット
- 狙い: trade-only データでも高頻度な無駄トレードを抑制
3.2 Regime/Hybrid: 短中期(優先度: 中)
vol_regime_switch
- シグナル:
rv_5s/30s, spread regime - ロジック: 高ボラ時はMR、低ボラ時はMMなど切替
time_of_day_policy
- シグナル: 時間帯別の流動性と約定品質
- ロジック: 東京/欧州/米国セッションで閾値変更
event_coalesced_trend
- シグナル: 20-100ms coalescing後の変化率
- ロジック: 過剰反応ノイズを落として執行頻度を制御
3.3 ML/Optimization(優先度: 中〜高)
ml_direction_1s_5s
- 目的: 短期方向確率を推定し target position に写像
- 特徴量: 既存 FeatureEngine + microstructure派生
- モデル候補: LightGBM / 小型MLP
meta_policy_allocator
- 目的: 複数戦略の重み最適化
- 入力: 各戦略の直近 alpha / drawdown / 約定品質
ga_param_search
- 目的: ルール戦略の閾値を遺伝的に探索
- 制約: 過学習抑制(walk-forward必須)
llm_research_assist(オンライン執行には使わない)
- 目的: 特徴量案・失敗要因分析の補助
- 注意: 推論遅延があるため本番シグナル生成には不使用
4. 実装優先順位(次スプリント)
queue_imbalance_breakoutを baseline 群に追加sweep_followを baseline 群に追加vol_regime_switchを追加ml_direction_1s_5sのオフライン学習パイプライン初版
5. 採用ゲート(昇格条件)
戦略の昇格は以下の段階を順に満たすこと:
- Backtest gate
- 期間分割で alpha が一貫(単一期間依存でない)
- 取引コスト仮定を変えても致命的劣化がない
- Replay gate
- イベント再生で意図した意思決定が再現される
- 過剰発注(order rate)とリスク拒否率が許容範囲
- Paper gate
- 2週間以上の paper/live-sim で安定
- kill-switch 発火要因が説明可能
- Production canary gate
- 小ロットで限定運用
- alpha悪化時に即時ロールバック可能
6. 研究運用ルール
- 1戦略 = 1ドキュメント(
docs/experiments/) - 1変更 = 1仮説(多変量同時変更を避ける)
- 結果は「勝ち理由」より「負け方」を優先記録
- 実験前に停止条件(max DD, max loss streak)を明記
7. すぐ着手する具体タスク
src/atc/strategies/baselines/queue_imbalance_breakout.pyを追加src/atc/strategies/baselines/sweep_follow.pyを追加src/atc/strategies/registry.pyに登録- 各戦略の最小テストを
tests/に追加 - 比較用バッチ実行コマンドを
justfileに追加