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

🗄️ 歴史的文書(アーカイブ) — この文書は過去の研究フェーズの記録であり、現在の結論・手法を反映していません。現在の研究状況は解説セクションを参照してください。

Phase 1.5-v2 — 62 日間リーダーボード(Fix-1 + Fix-2 適用、15 戦略)

本ページは Phase 1.5-v2 のリーダーボード・レポート research_reports/phase1_5_v2_leaderboard.md を整理したもの。 v1 (phase1_5/leaderboard.md) で明らかになった 2 つのバグを修正し、Phase 2 (phase2/alpha-signal-candidates.md) で提案された 3 つの microstructure alpha 候補戦略を実装した上で、2026-02-17 → 2026-04-19 の 62 日ストリーム窓で 15 戦略を並走させた。結果は 15 戦略全てが cost-adjusted hold-10-ETH ベンチマーク(+¥510,082)に負ける — v1 の結論を追認しつつ、新しい失敗モードを 3 つ露呈した。

ラン条件

  • Symbol: ETH_JPY
  • Window: 2026-02-17 → 2026-04-19(62 日、両端含む)
  • Initial position: 10 ETHstart_cash = 0
  • Holding cost: 0.04%/日 06:00 JST 課金 — 戦略・ベンチマーク両方に適用(Fix-2)
  • Benchmark: hold 10 ETH cost-adjusted = +¥510,082(v1 の +¥591,155 から -¥81k 補正)
  • Source: --source s3-stream
  • Maker-quote fill simulator: 動作(Fix-1)— mm_zero_fee_inside_spread が 95,945 回の実 fill を生成
  • Run tag: phase1_5_s3_v2
  • 完了日時: 2026-04-21 ~06:15 JST

v1 から v2 への変更点

v1 を走らせて発覚した 2 つのバグと、Phase 2 からの追加シグナル 3 本を反映した。

  • Fix-1: Maker-quote fill simulator を実装phase1_5/mm-zero-fee-simulator-bug.md の Option A を採用)。v1 では mm_zero_fee_inside_spread が 62 日で 1 fill しか生成せず、沈黙したままリーダーボード 1 位に誤ランクされていた。src/atc/cli/backtest.py の resting-quote fill ループを追加し、trade event が resting quote を cross したら fill をブックするようにした。
  • Fix-2: ベンチマーク側にも holding cost を課金phase1_5/benchmark-audit.md で定量化された 13.7% の非対称性を解消)。v1 のベンチマーク +¥591,155 は pre-cost、戦略は post-cost という非対称性を持っていたため、今回は両方に 0.04%/日 を課して +¥510,082 に統一。
  • +3 新 Phase 3 alpha 戦略phase2/alpha-signal-candidates.md の top-3 候補を実装): alpha_top1_vs_deep, alpha_deep_imbalance_reversion, alpha_big_trade_follow。Phase 2 の signal-theoretic 推定では 3-5× 楽観的と注意書きがあった通り、実戦では big loser 圏に着地した。

フル・ランキング(15 戦略、alpha_total_pnl_jpy 降順)

#strategyalphastrat_pnlbenchfillshold costmax|pos|
1baseline_flat-¥509,437+¥645+¥510,0821¥010
2baseline_flow_imbalance_pulse-¥519,631-¥9,548+¥510,0825,492¥490.05
3baseline_mean_reversion_micro-¥522,377-¥12,294+¥510,08211,070¥320.05
4baseline_momentum_micro-¥523,990-¥13,907+¥510,08211,561¥530.05
5baseline_regime_switch_micro-¥525,835-¥15,752+¥510,0823,986¥500.05
6baseline_inventory_mm-¥528,073-¥17,990+¥510,08211,905¥1160.05
7baseline_queue_imbalance_breakout-¥531,004-¥20,921+¥510,08211,095¥900.05
8baseline_sweep_follow-¥531,411-¥21,328+¥510,0829,469¥800.05
9multiday_trend_carry_aware-¥668,517-¥158,434+¥510,082230¥24,13710
10alpha_big_trade_follow (new Phase 3)-¥5,041,583-¥4,531,500+¥510,08212,155¥16,01510
11imbalance_momentum_micro-¥5,867,217-¥5,357,134+¥510,08211,745¥10,69910
12alpha_deep_imbalance_reversion (new Phase 3)-¥7,191,127-¥6,681,045+¥510,08217,826¥15,40510
13sweep_counter_fade-¥7,581,063-¥7,070,980+¥510,08213,522¥21,10010
14alpha_top1_vs_deep (new Phase 3)-¥12,265,576-¥11,755,493+¥510,08235,716¥21,89810
15mm_zero_fee_inside_spread (Fix-1 now working)-¥22,588,324-¥22,078,241+¥510,08295,945¥1,29210

ヘッドライン・ファインディング

  1. どの戦略も hold-10-ETH に勝てない。 ベンチマークを修正(Fix-2, -¥81k)し maker-quote fill を有効化(Fix-1)しても、正のアルファを出す戦略はゼロ。

  2. mm_zero_fee_inside_spread は実約定が走った瞬間に壊滅的に負ける。 v1 では silent で +¥25,967(ランク 1 誤認)だったのが、Fix-1 で fill が有効化された瞬間 -¥22.6M に転落(ランク 15)。

    • 95,945 fills(他戦略の 10 倍以上)
    • -¥22.6M strategy PnL
    • ゼロ手数料下でも逆選択(adverse selection)は機能する。 スプレッド内に刺した resting quote は informed flow に喰われ、戦略は毎回間違った側のポジションを抱える。これは「zero-fee → quote inside spread = free money」という素朴な仮説を棄却する。
  3. Phase 3 の signal-theoretic alpha 戦略は実戦で失敗した。

    • Phase 2 が提案した 3 候補(top1_vs_deep, deep_reversion, big_trade_follow)はそれぞれランク #10, #12, #14 に着地。
    • Phase 2 の caveats どおり signal-theoretic P&L は 3-5× 楽観的で、実現 P&L は遥かに悪い。最も善戦した big_trade_follow ですら -¥5M。
    • 確認: microstructure correlation ≠ tradeable alpha。スプレッド・クロスの規律と逆選択緩和がなければ成立しない。
  4. 悪いシグナルを 10 ETH にスケールすれば決定論的に -¥M 損失を出す。

    • 10 ETH max position の big-size 戦略は全て ≥¥5M の損失。
    • マイクロ(0.05 ETH)版は互いに ±¥22k 以内でクラスタリング — エッジがないからスケールでのみ差がついている。
  5. 保有コストは無視できないライン・アイテム:

    • ベンチマークは 62 日で ¥81k 支払う(10 ETH 保持の真のコスト)
    • sweep_counter_fade, alpha_top1_vs_deep は ¥21-22k の戦略側 carry を支払う
    • multiday_trend_carry_aware は ¥24k — 設計上最長保有のため 1 戦略当たり最大

Phase 2+ への決定的な教訓

根本的な問題は、ラリー・レジームでベンチマークが強すぎること。Hold-10-ETH は 2-3% の ETH ラリーから +¥510k を稼いだ。これを上回るには以下のいずれかが必要:

  • ラリー期間のみの集中エクスポージャ(regime filter → トレンド・アップ時のみ 10 ETH、それ以外 flat)
  • 別軸からの非相関アルファ(cross-venue arb、funding-rate arb 等)— 単一 venue spot では利用不能
  • 強いシグナルへのレバレッジ(10 ETH max → 20 ETH max にすればシグナルが本物であれば利得倍増)

現在の 15 戦略はいずれもこれらをしていない。Phase 3 alpha シグナルは microstructure correlation を持つが、spread cost × turnover を覆すだけのエッジがない。

次フェーズへの示唆

  • Phase 3 継続: alpha_* の閾値をより高くチューン;--min-order-interval-sec 30 でターンオーバーを削減;--max-abs-position-eth 2 でダウンサイドを制限。
  • Phase 3b — regime-conditional strategy: 5m trend でラリー日を intraday 識別し、ラリー日は 10 ETH を保有、ダウン日は flat する trivial なメタ戦略。ベンチマークのホーム・グラウンドで構造的に勝てるはず。
  • Phase 5 walk-forward: 延期。現 15 戦略は全て 62 日 alpha が負であり、負け組に walk-forward をかけても情報価値は乏しい。
  • mm_zero_fee 深掘り: inside-spread quote がなぜ負けるのかを詳細調査。純粋な逆選択か、それとも fill simulator が over-fill しているのか。trade-level ログで非対称 fill 分布を監査する。

アーティファクト

  • Reports: data/derived/reports/backtest_ETH_JPY_2026-02-17_2026-04-19_<strategy>_phase1_5_s3_v2.json
  • Source changes: Fix-1(src/atc/cli/backtest.py resting-quote fill loop)、Fix-2(同ファイル、ベンチマーク holding cost)
  • Phase 3 strategies: src/atc/strategies/baselines/alpha_*.py + registry
  • Run tag: phase1_5_s3_v2
  • 完了日時: 2026-04-21 ~06:15 JST

関連ページ