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

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

Phase 1.5 — Regime Decomposition (rally / chop / down)

本ページは Phase 1.5 のレジーム分解レポート research_reports/phase1_5_regime_decomposition.md を整理したもの。 62 日の単一窓 P&L を rally / chop / down のレジーム別に分解し、各戦略が特定レジームで真のエッジを持つかを検証する。基となるリーダーボードは leaderboard.md を参照。

メソドロジ概要

  • Symbol: ETH_JPY | Window: 2026-02-17 → 2026-04-19(62 日)
  • Benchmark: fixed_hold_eth = 10(+¥591,155 over the full window)
  • Daily return = (close_D − close_D-1) / close_D-1close_D は営業日 JST Parquet の最終約定価格
  • 戦略 daily P&L は data/derived/reports/phase1_5_logs_s3/<strategy>.log からパース;62 日目(2026-04-19)は JSON レポート対比の残差として補完(06:00 JST rollover で 1 行 emit、61 行の log tail)
  • レコンサイル: 各戦略はリーダーボード α と ¥425 以内(sub-bp)で一致

レジーム分類

閾値: rally = 日次リターン > +0.3%、down < −0.3%、それ以外は chop

regimedaystotal bench P&L (10 ETH hold)
rally31+¥2,940,550
chop4+¥16,580
down27-¥2,366,400
total62+¥590,730

解釈: ラリー 31 日が +¥2.94M 寄与、ダウン 27 日が −¥2.37M 吐き出し、chop 4 日が +¥16k。ネット +¥591k はラリーがドローダウンを約 ¥574k 上回った結果。

レジーム別 α(戦略 − ベンチマーク)、rally α でソート(less-negative = better)

strategyrally α (31d)chop α (4d)down α (27d)total α
multiday_trend_carry_aware-¥2,540,310-¥31,815+¥1,822,961-¥749,164
mm_zero_fee_inside_spread-¥2,914,583-¥16,580+¥2,366,400-¥564,763
baseline_flat-¥2,939,905-¥16,580+¥2,366,400-¥590,085
baseline_flow_imbalance_pulse-¥2,947,301-¥16,805+¥2,363,827-¥600,279
baseline_mean_reversion_micro-¥2,947,358-¥17,104+¥2,361,437-¥603,025
baseline_inventory_mm-¥2,949,072-¥17,356+¥2,357,707-¥608,721
baseline_momentum_micro-¥2,949,789-¥16,977+¥2,362,128-¥604,638
baseline_sweep_follow-¥2,953,117-¥17,234+¥2,358,292-¥612,059
baseline_queue_imbalance_breakout-¥2,953,502-¥17,339+¥2,359,189-¥611,652
baseline_regime_switch_micro-¥2,954,515-¥16,880+¥2,364,913-¥606,482
imbalance_momentum_micro-¥6,131,637-¥164,411+¥348,183-¥5,947,865
sweep_counter_fade-¥6,982,266-¥149,554-¥529,891-¥7,661,711

レジーム別 生 P&L(ベンチ差し引きなし)

strategyrally pnlchop pnldown pnltotal pnl
mm_zero_fee_inside_spread+¥25,967¥0¥0+¥25,967
baseline_flat+¥645¥0¥0+¥645
baseline_flow_imbalance_pulse-¥6,751-¥225-¥2,573-¥9,549
baseline_mean_reversion_micro-¥6,808-¥524-¥4,963-¥12,295
baseline_momentum_micro-¥9,239-¥397-¥4,272-¥13,908
baseline_regime_switch_micro-¥13,965-¥300-¥1,487-¥15,752
baseline_inventory_mm-¥8,522-¥776-¥8,693-¥17,991
baseline_queue_imbalance_breakout-¥12,952-¥759-¥7,211-¥20,922
baseline_sweep_follow-¥12,567-¥654-¥8,108-¥21,329
multiday_trend_carry_aware+¥400,240-¥15,235-¥543,439-¥158,434
imbalance_momentum_micro-¥3,191,087-¥147,831-¥2,018,217-¥5,357,135
sweep_counter_fade-¥4,041,716-¥132,974-¥2,896,291-¥7,070,981

判定: 特定レジームにエッジを持つ戦略はあるか?

どの戦略も、どのレジーム・バケットにおいても hold-10-ETH ベンチマークに勝っていない。 レジーム別 α は 12 戦略すべてで一様にマイナス — 以下 1 つのエッジケースを除いて。

  • Down days: mm_zero_fee_inside_spreadbaseline_flat が α = +¥2,366,400 を記録 — ただしこれは機械的な結果。両戦略とも実質フラット(0〜1 フィル、正味 P&L ゼロ)なので、10 ETH ベンチが ¥88k 失う日には「何もしない」が定義上それに勝つ。戦略エッジではない。対称に、ラリー日には同じ 2 戦略がインベントリを持たないことで α −¥2.91M / −¥2.94M を失っている。
  • 全マイクロサイズ・ベースライン(0.05 ETH cap)はラリーで α ≈ −¥2.95M、ダウンで ≈ +¥2.36M。β = 1 ベンチに対して事実上 β = 0 なので α ≡ −bench_pnl。実際のアルファ貢献は chop バケット(4 日、¥16k ムーブ) — 全て −¥16k 〜 −¥17k にクラスタリングし、1 日あたり均一に −¥500 〜 −¥1k の slippage/fees で方向性エッジなし。
  • アクティブに 10 ETH インベントリを保有しようとする戦略(multiday_trend_carry_aware, imbalance_momentum_micro, sweep_counter_fade)は全レジームでフラット・スタンスにすらアンダーパフォーム:
    • multiday_trend_carry_aware: rally α −¥2.54M(マイクロよりはマシ — +¥400k の生ラリー pnl)、ただし down α +¥1.82M vs ベンチ −¥2.37M = down days でまだ −¥543k 生 P&L。Holding cost(¥24k/62d)がドラッグ。
    • imbalance_momentum_micro, sweep_counter_fade: 全レジームで壊滅的;ラリー (−¥3-4M) / ダウン (−¥2-3M) どちらでも誤った側をホールド。レジームエッジゼロ。

Chop-day リーダーボード(β 寄与がほぼゼロ → α ≈ 戦略スキル)

chop バケット生 P&L でランキング(ゼロに近い / 正が勝ち):

strategychop pnl (4d)
mm_zero_fee_inside_spread¥0
baseline_flat¥0
baseline_flow_imbalance_pulse-¥225
baseline_regime_switch_micro-¥300
baseline_momentum_micro-¥397
baseline_mean_reversion_micro-¥524
baseline_sweep_follow-¥654
baseline_queue_imbalance_breakout-¥759
baseline_inventory_mm-¥776
multiday_trend_carry_aware-¥15,235
sweep_counter_fade-¥132,974
imbalance_momentum_micro-¥147,831

chop レジームでも 全戦略がマネーを失う。最善のアクティブ戦略(baseline_flow_imbalance_pulse, −¥225)は chop 1 日あたり「1 杯のラテ」未満の損失。最悪(imbalance_momentum_micro, −¥147,831)は chop 1 日あたり ¥37k を出血。

Phase 3/4 への結論

  1. 単一レジームで独立したエッジを持つ戦略は存在しない。 62 日窓はバケット分解では救えない — マイクロサイズ戦略は全て flat のノイジー・クローン(方向性スキルゼロ)、ビッグサイズ戦略は全てレジーム両側で adverse selection。
  2. hold 10 ETH ベンチマークが支配的シグナル。 ラリー日は +¥95k/日、ダウン日は −¥88k/日。α を生成するには、アクティブにラリーでロング・インベントリを carry し、ダウン日で flatten(またはショート)する必要がある。12 戦略のどれもこれをスキルフルに実行していない。
  3. マイクロサイズ戦略(0.05 ETH cap)は情報量ゼロ。 レジーム・プロフィールは baseline_flat(何も保有しない)とほぼ同一。Phase 3/4 ではイナーシャと区別できるように ≥1 ETH にサイズアップする必要あり。
  4. Chop 日(62 中 4)はサンプル不足。 chop エッジ戦略を統計的に識別するには、より長い窓または chop-selected 訓練期間が必要(ラリー/ダウンのノイズでミーンリバージョン / マーケットメーキング戦略が溺死しないように)。
  5. Walk-forward ではレジームを明示的に分割する必要あり(Phase 1.5 implication #1 通り)。rally/chop/down ホールドアウトの 3-fold train/test で戦略をレジーム別に surface できる — ただし Phase 1.5 戦略にはそれを意味あるレベルで使える生 pnl は存在しない。

メソドロジ・注意点

  • ETH close prices は s3://historical-source/market_stream/symbol=ETH_JPY/business_date_jst=<day>/trades.parquet営業日 JST Parquet あたり初期 / 最終約定価格。これはバックテストが消費した正確なデータ・ソース。
  • Daily return 系列は last_price[D] / last_price[D-1] - 1(day-0 prev は first_price[0] を使用 → day-0 return = 2026-02-17 intraday move)。
  • Daily chaining によるベンチマーク合計(¥590,730)はリーダーボードの ¥591,155 と ¥425 以内 — 残差は参照 tick の選択(初期約定 vs 06:00-JST ticker)。
  • Strategy daily P&L は stdout log([backtest] YYYY-MM-DD ... pnl=...¥)から。これらは 06:00-JST rollover で emit されるため、各エントリは rollover 時点の前営業日 realized P&L。62 日目(2026-04-19)は rollover エントリがないため report_strategy_total_pnl - sum(log_days) として imputed。戦略毎に ¥425 以内でレコンサイル。
  • アーティファクト: /tmp/regime_decomp_data.json に全 per-day × per-strategy frame。

アーティファクト

  • Reports: data/derived/reports/backtest_ETH_JPY_2026-02-17_2026-04-19_<strategy>_phase1_5_s3.json
  • Logs: data/derived/reports/phase1_5_logs_s3/<strategy>.log

関連ページ