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

実装戦略カタログ

このページでは、現在 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_micro

    • logret_5s が閾値を超えた方向へ追随
  • baseline_mean_reversion_micro

    • logret_1s の逆張り
  • baseline_regime_switch_micro

    • rv_5s で regime 判定
    • 低ボラ: モメンタム
    • 高ボラ: リバーサル
  • baseline_flow_imbalance_pulse

    • trade_imbalance_1strade_vol_1s のパルスを利用
    • 圧力低下時は早めにフラット化
  • baseline_sweep_follow

    • 1秒内の約定回数・出来高急増 + リターン方向一致で追随

2.3 板情報利用系

  • baseline_queue_imbalance_breakout

    • ob_imbalance_top5logret_1s が同方向のときのみエントリ
  • baseline_inventory_mm

    • 板不均衡に応じてポジション調整
    • 在庫引き戻し(inventory pull-back)を常時適用

2.4 Hold Overlay(ルールベース)

  • baseline_technical_hold_overlay
  • baseline_technical_hold_overlay_slow
  • baseline_technical_hold_overlay_adaptive

共通思想:

  • 基本は long exposure を維持
  • 下落圧力スコア(ret/imbalance/rv/spread)に応じて段階的に
    • long縮小
    • flat
    • short hedge
  • 回復スコアが十分なら long に戻す

3. ML戦略

3.1 Direction(線形/ロジスティック)

  • ml_direction_linear
  • ml_direction_logistic

特徴量から短期方向を推定し、目標ポジションを決定します。

3.2 Logistic Swingファミリー

  • ml_direction_logistic_swing
  • ml_direction_logistic_swing_tokyo
  • ml_direction_logistic_swing_europe
  • ml_direction_logistic_swing_us
  • ..._conservative / ..._defensive / ..._regime2 / ..._regime3 / ..._robust / ..._ultra_conservative

共通設計:

  • 確率出力をEMA平滑
  • cooldownmin_hold で過剰売買を抑制
  • spread_bps ガード
  • セッション限定版は時間帯フィルタで稼働

3.3 Logistic Hold Overlayファミリー

  • ml_direction_logistic_hold_overlay
  • ml_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_overlay
  • ml_hold10_softmax_overlay_aggressive
  • ml_hold10_softmax_overlay_derisk_only
  • ml_hold10_softmax_overlay_derisk_only_aggressive
  • ml_hold10_softmax_overlay_cost_guard
  • ml_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_PATH
  • ATC_ML_HOLD10_SOFTMAX_MODEL_PATH
  • ATC_ML_MULTIHORIZON_TICKER_MODEL_PATH

再現実験では、実行コマンドにモデルファイルパスを明示することを推奨します。

5. 今の研究主軸

直近は次を主軸に評価しています。

  1. ml_hold10_softmax_overlay_derisk_only_aggressive(statefulラベル学習)
  2. ml_hold10_softmax_overlay_cost_guard
  3. ml_hold10_softmax_overlay_regime_blend

理由:

  • 10ETH固定保有比でAlphaを評価しやすい
  • 「普段は持つ、下落時に守る」という要件に素直に対応できる