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

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

Phase 1.5 — Big-Size Loser Diagnosis

本ページは Phase 1.5 の大口戦略損失診断 research_reports/phase1_5_bigsize_loser_diagnosis.md を整理したもの。 リーダーボード最下位 2 戦略 sweep_counter_fade (-¥7.07M) と imbalance_momentum_micro (-¥5.36M) が、なぜ百万円スケールの損失を出したのかを分解し、具体的な改善案まで定量化する。基となるリーダーボードは leaderboard.md、レジーム別挙動は regime-decomposition.md を参照。

対象ラン

  • 62 日, 2026-02-17 〜 2026-04-19, ETH_JPY, 12.03M events, max_abs_position_eth=10.0
  • 被験戦略: sweep_counter_fade, imbalance_momentum_micro
  • コントロール: baseline_flow_imbalance_pulse (target_abs_qty=0.01 ETH, -¥9.5k)

Reports:

  • data/derived/reports/backtest_ETH_JPY_2026-02-17_2026-04-19_sweep_counter_fade_phase1_5_s3.json
  • data/derived/reports/backtest_ETH_JPY_2026-02-17_2026-04-19_imbalance_momentum_micro_phase1_5_s3.json
  • data/derived/reports/backtest_ETH_JPY_2026-02-17_2026-04-19_baseline_flow_imbalance_pulse_phase1_5_s3.json

Daily breakdowns: data/derived/reports/phase1_5_logs_s3/{strategy}.log(progress line に daily pnl, cum, pos, fills が出力される;JSON レポート本体は summary-only)。

1. ヘッドライン数値

Metricsweep_counter_fadeimbalance_momentum_microflow_imbalance_pulse (control)
Strategy PnL (JPY)−7,070,981−5,357,135−9,549
Alpha PnL (vs hold-10 ETH)−7,662,136−5,948,290−600,704
Benchmark PnL (hold 10 ETH, 62d)+591,155+591,155+591,155
Fills13,52211,7455,492
Orders17,90915,8587,025
Fill rate0.7550.7410.782
Holding cost21,10110,69949
Turnover (sum ETH traded)77,41565,17079.67
max_abs_position_eth10.010.00.05
base_qty_eth (per-trade size)5.05.00.01
Neg-PnL days / total60/6156/6152/61

Holding cost は損失全体の 0.2〜0.3% — ドライバーではない。ラリーのドリフトも比較的小さい — 62 日で 10 ETH ベンチマーク +¥591k なので、全期間 -5 ETH ネットショートでも損失は ~¥295k(sweep の損失の ~4%)。

2. 損失分解

2a. Per-fill economics

StrategyPnL / fillHolding / fillPnL / ETH traded
sweep_counter_fade−522.9 ¥1.56 ¥−91.3 ¥/ETH
imbalance_momentum_micro−456.1 ¥0.91 ¥−82.2 ¥/ETH
baseline_flow_imbalance_pulse−1.74 ¥0.01 ¥−119.9 ¥/ETH

キーファインディング: ETH あたりの損失は 3 戦略で近似(flow_pulse が実際に最悪)。ビッグサイズ戦略は定性的に悪いのではなく、線形スケーリングしているだけ。

2b. サイズ・スケール寄与分解

flow_imbalance_pulse を per-ETH loss で 0.01 ETH → 5 ETH にスケール:

  • −9,549 ¥ × (5 / 0.01) = −¥4,774,500 等価
  • 観測: sweep_counter_fade @ 5 ETH = −¥7,070,981 → サイズスケーリングに対し +48% 残差
  • 観測: imbalance_momentum_micro @ 5 ETH = −¥5,357,135 → サイズスケーリングに対し +12% 残差

損失の ~85% は同程度に悪いシグナルのピュアな線形サイズ・スケーリング。 残りは構造的:

  • sweep_counter_fade はサイズスケール等価比で約 48% 悪い — SL/TP 非対称性と churn 増幅
  • imbalance_momentum_micro はサイズスケール等価比で約 12% 悪い — セッション・クローズと favourable SL/TP 比が部分的にオフセット

2c. SL/TP ペイオフ幾何(sweep_counter_fade)

デフォルト: sl_bps=8, tp_bps=3, base_qty_eth=5, ETH mid ≈ ¥330k:

  • SL hit: −264 ¥/ETH × 5 ETH = −¥1,320 / trade
  • TP hit: +99 ¥/ETH × 5 ETH = +¥495 / trade
  • 比: 2.67 : 1 adverse
  • Break-even 勝率: 72.7%(62 日上昇トレンドで mean-reversion fade では実現不可能)
  • 40% TP hit rate(トレンド中の fade で典型)での EV: 0.4·495 − 0.6·1,320 = −¥594 / round-trip
  • Round-trips ≈ 13,522/2 = 6,761 ⇒ EV 寄与 ≈ −¥4.02M(損失合計の 57%)

2d. Churn プロファイル

StrategyAvg fills/dayIntents/dayIntent→Order ratio
sweep_counter_fade220.05281.80
imbalance_momentum_micro190.65622.16
baseline_flow_imbalance_pulse89.11,0399.02

flow_pulse は 9× 多くの intent を少ない order へフィルタ(300s throttle vs 2s/15s)。ビッグサイズ戦略は 2〜3× 多いフィル × 500× per-ETH notional。

2e. End-of-day positions

StrategyFlatAt ±5 ETH
sweep_counter_fade2932
imbalance_momentum_micro4516
flow_imbalance_pulse610

Sweep の無制限 overnight exposure はダメージ増幅の一因 — ただし holding cost は依然ネグリジブル、全て mark-to-market drift。

2f. 最悪単日(同期間、同暦日で複数戦略がヒット)

sweep_counter_fade top-5 loss days: 2026-03-16: −¥350,313 / 520 fills, 03-13: −¥296,870, 03-02: −¥278,076, 03-04: −¥277,210, 03-05: −¥273,855

imbalance_momentum_micro top-5: 2026-03-04: −¥277,190 / 371 fills, 03-13: −¥258,997, 02-28: −¥243,252, 02-24: −¥216,210, 02-26: −¥197,302

3 月 2〜5 日と 3 月 13/16 日は共通 blowup 日 → 両戦略を同時に壊すレジーム / トレンド日。単日キルスイッチを −¥50k に設定すれば、最悪日の損失を −¥50k にバウンドできる(−¥350k → −¥50k)、約 8〜10 日 × 平均 ¥250k = ~¥2M のドローダウンを保護。

3. なぜこれらの戦略はビッグサイズで吹き飛ぶのか

sweep_counter_fade

  1. SL/TP 非対称性 (8 bps / 3 bps = 2.67× adverse) — 72%+ 勝率が必要;観測トレンド・レジームでの counter-trend fade は ~40% 勝率 ⇒ 構造的 −EV / trade。5 ETH で −¥594/RT × 6,761 RT = 損失の −¥4M / ¥7M
  2. 速い churn、サーキットブレーカーなしmin_order_interval_sec=2.0, cooldown_sec=5, max_hold_sec=45。5 ETH で 220 fills/日は negative EV を monotonic に複利(60/61 日で負け)。
  3. トレンドフィルタなし + シグナル強度スケール・サイジングなし — z-score ≥ 2.5 で full 5 ETH 発火、上昇トレンド中にトレンド継続 sweep を fade する。session_close も disabled → ポジション overnight 32/61 日。

imbalance_momentum_micro

  1. シグナル強度に関わらず固定 5 ETH サイジング (default sizing_mode="fixed")。imb5=0.25(閾値)のエントリーが imb5=0.6 のエントリーと同じ 5 ETH エクスポージャを得る。ImbalanceMomentumMicroSignalScaled サブクラスは存在するが未使用。
  2. マルチミニット・モメンタム・シグナルに hard 15 bps stop — SL=~495 ¥/ETH ≈ 1.5× 典型 minute-bar range;whipsaw out、シグナル反転、再エントリ、再ストップ。Churn × 5 ETH = 大コスト。
  3. max_hold_sec=600ob_imbalance_top5 + trade_imbalance_1s(サブ秒特徴量)から派生するシグナルに 10 分ホールド。シグナルは数秒で減衰、ポジションは exit 発火を待つ間ほぼ drifting dead weight。

4. コントロール比較(imbalance_momentum_micro vs baseline_flow_imbalance_pulse

両方とも trade_imbalance_1s をコアシグナルとするが、サイズだけでなく構造的に異なる:

  • flow_imbalance_pulsebps SL/TP なし — シグナル・フェード(|imb| ≤ 0.10)または logret 反転で exit。ストップ駆動の whipsaw を回避。
  • flow_imbalance_pulsecooldown_ms=400min_order_interval_sec=300 を enforce;imb_mom_micro は 15s interval。300s vs 15s は 20× スロットル差(fill count 差を説明)。
  • imb_mom_micro はトレンド・レジーム・ゲート(|logret_30s|>0.0005 OR rv_30s>0.0003)とスプレッド・ゲートを追加(flow_pulse より概念的に厳しい)— ただしゲートが fire しても SL/TP 機構は依然 P&L を削り取る。

結論: per-ETH loss は imbalance_momentum_micro のほうが 実際にはわずかに低い(82 ¥/ETH vs 120 ¥/ETH)。imb_mom_micro を 0.01 ETH にダウンスケールすれば、62 日で ~¥10〜15k の損失にとどまる — flow_pulse と同等。

5. 推奨パラメータ変更(インパクト順)

A. base_qty_eth をカット(即座、最大インパクト)

  • sweep_counter_fade.base_qty_eth: 5.0 → 1.0 → 予想損失 −¥1.41M(5× 削減、linear scaling 仮定、コントロールで確認済み)
  • imbalance_momentum_micro.base_qty_eth: 5.0 → 1.0 → 予想損失 −¥1.07M
  • または runner レベルで max_abs_position_eth cap: 10.0 → 2.0 を両戦略に

B. sweep_counter_fade の SL/TP 非対称性修正(構造的、2 番目に大きいインパクト)

  • tp_bps: 3.0 → 8.0sl_bps=8 と対称)— 損益分岐勝率を 72.7% → 50%
  • 代替: sl_bps: 8.0 → 4.0 — 最悪トレード損失を半減(−¥1,320 → −¥660)
  • 勝率 40% & 対称ペイオフでの期待改善: EV ≈ 0(今日の −¥594/RT 比)⇒ 5-ETH ランで ~¥4M 節約

C. imbalance_momentum_micro でシグナル・スケール・サイジング有効化

ImbalanceMomentumMicroSignalScaled を登録し base_qty_eth=2.0 で使用:

  • imb5=0.25(閾値): size = 2·min(1, 0.25/0.5) = 1.0 ETH
  • imb5=0.5: size = 2.0 ETH
  • 平均エクスポージャ ~1 ETH(典型 imb5≈0.3)vs 今日の固定 5 ETH ⇒ 勝率最低の弱シグナルで ~5× loss reduction

D.(オプション、高価値)Daily loss kill switch

ポートフォリオ・レベル・ガード: 現 JST 営業日の累積戦略 PnL < −¥50,000 で全新規エントリ停止

  • §2f の 8〜10 最悪日で発動、各日を −¥50k にバウンド(200〜350k から)
  • 10-ETH config 節約: sweep_counter_fade~¥2Mimbalance_momentum_micro~¥1.3M

E. (sweep_counter_fade のみ) トレンド・フィルタ追加

EMA-30m slope でエントリ・ゲート: sweep 方向が prevailing 30-minute トレンド符号と align する場合は fade エントリをスキップ。62 日上昇トレンド中は大半の "buy sweep → short entry" セットアップ(系統的負けクラス)をスキップ。

6. 合計予想効果

A + B + C + D を合わせた場合:

Strategy現損失 (5 ETH)予想 (A+B+C+D)
sweep_counter_fade−¥7,070,981~−¥400,000(5× size × 2× SL/TP × 1.4× kill-switch ≈ 14× 改善)
imbalance_momentum_micro−¥5,357,135~−¥500,000(5× size × ~2× signal-scaled × 1.3× kill-switch ≈ 11× 改善)

これらはコントロール戦略の per-ETH economics から外挿したオーダー・マグニチュード予測 — 実バックテストで検証必要だが、これらの変更だけで ≥10× の blowup マグニチュード削減は妥当。

7. 注意点

  • 損失分解は per-fill averages とペイオフ幾何に依拠;tick-level fills ダンプでは検証していない。Postgres backtest_order_events は本調査ではリーチ不能(ローカルクラスタ停止中);必要なら ATC_POSTGRES_WRITE_ENABLED=true で再ラン → 正確な per-trade PnL 属性用のイベントレベルデータを永続化可能。
  • "サイズ・スケーリング" 論法は fill rate とシグナル品質がポジション・サイズで顕著に変化しないことを前提 — ETH_JPY のような流動的ペアで 0.01 → 5 ETH なら valid、ただし実取引では partial fill 挙動が異なる可能性あり。
  • SL/TP EV 計算の "40% 勝率" は、トレンド・レジームでの fade 戦略で典型的な仮定;正式な実証測定には order-events テーブルが必要。

関連ページ