実装戦略カタログ
このページでは、現在 registry に登録されている戦略を、実装に沿って整理します。
対象コード: src/atc/strategies/registry.py
1. 戦略インターフェース(共通)
すべての戦略は on_event(...) -> list[TargetPositionIntent] を返します。
TargetPositionIntent の重要フィールド:
target_qty_eth: 目標ポジション(最終的なETH枚数)urgency: 実行優先度reason: 変更理由(ログ/分析用)
2. Baseline戦略
2.1 最小ベース
baseline_flat- 常に
0 ETH - パイプライン検証や基準比較に使用
- 常に
2.2 短期シグナル系
-
baseline_momentum_micrologret_5sが閾値を超えた方向へ追随
-
baseline_mean_reversion_micrologret_1sの逆張り
-
baseline_regime_switch_microrv_5sで regime 判定- 低ボラ: モメンタム
- 高ボラ: リバーサル
-
baseline_flow_imbalance_pulsetrade_imbalance_1sとtrade_vol_1sのパルスを利用- 圧力低下時は早めにフラット化
-
baseline_sweep_follow- 1秒内の約定回数・出来高急増 + リターン方向一致で追随
2.3 板情報利用系
-
baseline_queue_imbalance_breakoutob_imbalance_top5とlogret_1sが同方向のときのみエントリ
-
baseline_inventory_mm- 板不均衡に応じてポジション調整
- 在庫引き戻し(inventory pull-back)を常時適用
2.4 Hold Overlay(ルールベース)
baseline_technical_hold_overlaybaseline_technical_hold_overlay_slowbaseline_technical_hold_overlay_adaptive
共通思想:
- 基本は long exposure を維持
- 下落圧力スコア(ret/imbalance/rv/spread)に応じて段階的に
- long縮小
- flat
- short hedge
- 回復スコアが十分なら long に戻す
3. ML戦略
3.1 Direction(線形/ロジスティック)
ml_direction_linearml_direction_logistic
特徴量から短期方向を推定し、目標ポジションを決定します。
3.2 Logistic Swingファミリー
ml_direction_logistic_swingml_direction_logistic_swing_tokyoml_direction_logistic_swing_europeml_direction_logistic_swing_us..._conservative / ..._defensive / ..._regime2 / ..._regime3 / ..._robust / ..._ultra_conservative
共通設計:
- 確率出力をEMA平滑
cooldownとmin_holdで過剰売買を抑制spread_bpsガード- セッション限定版は時間帯フィルタで稼働
3.3 Logistic Hold Overlayファミリー
ml_direction_logistic_hold_overlayml_direction_logistic_hold_overlay_regime_guard..._adaptive..._adaptive_strict..._derisk_only..._conservative..._fast_exit
共通思想:
- 10ETH long を基準に、下落確率が高い局面のみ de-risk
- regime guard は downside確認条件を追加してダマシを抑制
3.4 Multihorizon Ticker(ticker-onlyマルチホライズン)
ml_multihorizon_ticker
設計:
- 入力はティッカーストリームのみ(bid/ask/last/mid/spread)
- 16特徴量(logret, rv, spread_bps, zscore, acceleration, vol/spread regime等)
- 複数ホライズン(1s/5s/30s/300s)のバイナリラベルで個別ロジスティック回帰
- 温度キャリブレーション済み確率出力
- 決定層: ホライズン加重エッジ + エントロピー信頼度 + spread/volゲーティング + tanh sizing + cooldown
- 環境変数
ATC_ML_MULTIHORIZON_TICKER_MODEL_PATHでモデルパス上書き可
3.5 Hold10 Softmaxファミリー(3状態)
ml_hold10_softmax_overlayml_hold10_softmax_overlay_aggressiveml_hold10_softmax_overlay_derisk_onlyml_hold10_softmax_overlay_derisk_only_aggressiveml_hold10_softmax_overlay_cost_guardml_hold10_softmax_overlay_regime_blend
共通思想:
- クラス
{HOLD, FLAT, SHORT}をsoftmaxで推定 - 出力確率をEMA平滑
confidence / cooldown / min_hold / spreadで発注ゲート
バリエーション:
aggressive: 閾値緩和で反応を速くderisk_only: short禁止で downside 回避に専念cost_guard: コストと downside 強度を使った追加判定regime_blend: fast/slowモデルを局面で切替
4. モデルファイルの扱い
多くのML戦略はモデルJSONを参照します。既定パスは戦略ごとに異なりますが、環境変数で上書きできます。
例:
ATC_ML_LOGISTIC_MODEL_PATHATC_ML_HOLD10_SOFTMAX_MODEL_PATHATC_ML_MULTIHORIZON_TICKER_MODEL_PATH
再現実験では、実行コマンドにモデルファイルパスを明示することを推奨します。
5. 今の研究主軸
直近は次を主軸に評価しています。
ml_hold10_softmax_overlay_derisk_only_aggressive(statefulラベル学習)ml_hold10_softmax_overlay_cost_guardml_hold10_softmax_overlay_regime_blend
理由:
- 10ETH固定保有比でAlphaを評価しやすい
- 「普段は持つ、下落時に守る」という要件に素直に対応できる