🗄️ 歴史的文書(アーカイブ) — この文書は過去の研究フェーズの記録であり、現在の結論・手法を反映していません。現在の研究状況は解説セクションを参照してください。
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.01ETH, -¥9.5k)
Reports:
data/derived/reports/backtest_ETH_JPY_2026-02-17_2026-04-19_sweep_counter_fade_phase1_5_s3.jsondata/derived/reports/backtest_ETH_JPY_2026-02-17_2026-04-19_imbalance_momentum_micro_phase1_5_s3.jsondata/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. ヘッドライン数値
| Metric | sweep_counter_fade | imbalance_momentum_micro | flow_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 |
| Fills | 13,522 | 11,745 | 5,492 |
| Orders | 17,909 | 15,858 | 7,025 |
| Fill rate | 0.755 | 0.741 | 0.782 |
| Holding cost | 21,101 | 10,699 | 49 |
| Turnover (sum ETH traded) | 77,415 | 65,170 | 79.67 |
| max_abs_position_eth | 10.0 | 10.0 | 0.05 |
| base_qty_eth (per-trade size) | 5.0 | 5.0 | 0.01 |
| Neg-PnL days / total | 60/61 | 56/61 | 52/61 |
Holding cost は損失全体の 0.2〜0.3% — ドライバーではない。ラリーのドリフトも比較的小さい — 62 日で 10 ETH ベンチマーク +¥591k なので、全期間 -5 ETH ネットショートでも損失は ~¥295k(sweep の損失の ~4%)。
2. 損失分解
2a. Per-fill economics
| Strategy | PnL / fill | Holding / fill | PnL / 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 プロファイル
| Strategy | Avg fills/day | Intents/day | Intent→Order ratio |
|---|---|---|---|
| sweep_counter_fade | 220.0 | 528 | 1.80 |
| imbalance_momentum_micro | 190.6 | 562 | 2.16 |
| baseline_flow_imbalance_pulse | 89.1 | 1,039 | 9.02 |
flow_pulse は 9× 多くの intent を少ない order へフィルタ(300s throttle vs 2s/15s)。ビッグサイズ戦略は 2〜3× 多いフィル × 500× per-ETH notional。
2e. End-of-day positions
| Strategy | Flat | At ±5 ETH |
|---|---|---|
| sweep_counter_fade | 29 | 32 |
| imbalance_momentum_micro | 45 | 16 |
| flow_imbalance_pulse | 61 | 0 |
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
- 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。
- 速い churn、サーキットブレーカーなし —
min_order_interval_sec=2.0,cooldown_sec=5,max_hold_sec=45。5 ETH で 220 fills/日は negative EV を monotonic に複利(60/61 日で負け)。 - トレンドフィルタなし + シグナル強度スケール・サイジングなし — z-score ≥ 2.5 で full 5 ETH 発火、上昇トレンド中にトレンド継続 sweep を fade する。
session_closeも disabled → ポジション overnight 32/61 日。
imbalance_momentum_micro
- シグナル強度に関わらず固定 5 ETH サイジング (default
sizing_mode="fixed")。imb5=0.25(閾値)のエントリーがimb5=0.6のエントリーと同じ 5 ETH エクスポージャを得る。ImbalanceMomentumMicroSignalScaledサブクラスは存在するが未使用。 - マルチミニット・モメンタム・シグナルに hard 15 bps stop — SL=~495 ¥/ETH ≈ 1.5× 典型 minute-bar range;whipsaw out、シグナル反転、再エントリ、再ストップ。Churn × 5 ETH = 大コスト。
max_hold_sec=600—ob_imbalance_top5+trade_imbalance_1s(サブ秒特徴量)から派生するシグナルに 10 分ホールド。シグナルは数秒で減衰、ポジションは exit 発火を待つ間ほぼ drifting dead weight。
4. コントロール比較(imbalance_momentum_micro vs baseline_flow_imbalance_pulse)
両方とも trade_imbalance_1s をコアシグナルとするが、サイズだけでなく構造的に異なる:
flow_imbalance_pulseは bps SL/TP なし — シグナル・フェード(|imb| ≤ 0.10)または logret 反転で exit。ストップ駆動の whipsaw を回避。flow_imbalance_pulseはcooldown_ms=400とmin_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_ethcap: 10.0 → 2.0 を両戦略に
B. sweep_counter_fade の SL/TP 非対称性修正(構造的、2 番目に大きいインパクト)
tp_bps: 3.0 → 8.0(sl_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 ETHimb5=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で ~¥2M、imbalance_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 テーブルが必要。
関連ページ
- Leaderboard (62-day, s3-stream) — 元リーダーボード
- Regime Decomposition (rally / chop / down) — レジーム別損失分解
- Benchmark Audit —
hold 10 ETHベンチの公正性