🗄️ 歴史的文書(アーカイブ) — この文書は過去の研究フェーズの記録であり、現在の結論・手法を反映していません。現在の研究状況は解説セクションを参照してください。
⚠️ CONTAMINATED — in-sample, not OOS (reclassified 2026-06-10). This document's evaluation window
2026-02-17..2026-04-19was later declared the permanent OOS holdout (2026-06-03/04), but the Phase-3d v1→v3d ladder was iterated and selected on it before that law existed. Every number here is in-sample optimization; the v3c "benchmark-parity" result must never be cited as OOS evidence, and theleveraged_rally_participantfamily is permanently barred from citing this window as OOS. Seedocs/research/phase3d-contamination.md.
Phase 3d — leveraged rally-participant(benchmark-parity 達成)
Phase 1.5-v2-final で判明した構造的課題:18 戦略すべてが hold-10-ETH(+¥510k, コスト補正後)に負ける。2026-02-17..04-19 は rally 支配 window で、10 ETH を下回る exposure は算術的に rally upside を取り逃がす。唯一の構造的解は rally 中に 10 ETH を超えるレバレッジ。
この記事は v1 失敗 → v2 再設計 → v3c benchmark-parity 達成 のイテレーション記録。v3c で alpha -¥69.80 を達成し hold-10-ETH benchmark に 99.996% 到達(v1 から +¥1.75M 改善)。
- Date: 2026-04-21
- Symbol: ETH_JPY
- Window: 2026-02-17 .. 2026-04-19(62 日)
- Initial position: 10 ETH
- Max abs position: 20 ETH(hard cap)
- Min position: 10 ETH(hard floor — NEVER shorts)
- Source:
--source s3-stream - Run tag:
phase1_5_s3_v2
1. 戦略設計
1.1 ポジションラダー
| レベル | ETH | ゲート |
|---|---|---|
| Baseline | 10 | 常時保持(benchmark-matched) |
| Mild rally | 15 | r_30m_bps > RALLY_15_THRESHOLD_BPS が PERSISTENCE_EVENTS 連続 |
| Strong rally | 20 | r_30m_bps > RALLY_20_THRESHOLD_BPS が PERSISTENCE_EVENTS 連続 |
| Fallback | 10 | r_30m_bps < EXIT_THRESHOLD_BPS OR persistence 破綻 OR down regime |
不変条件(hard):
min_position_eth = 10.0— ベースライン 10 ETH を下回らないmax_position_eth = 20.0— 20 ETH を超えない- ショートしない — 負の signal は fallback 10 ETH、ショートに転じない
1.2 Signal: r_30m_bps = 10_000 × log(mid / mid_30m_ago)
ローリング 30 分対数リターン(基点価格から現在 mid までの log-return, bps)。
- Trend continuation proxy:中期水平線(10-60 分)の realized return は弱い正の自己相関がある(rally regime で特に強い)
- Phase 2b regime 統計:rally 日 30-min return 平均 +20-40 bps、+50 bps は 60-70 パーセンタイル
2. イテレーション記録
2.1 Phase 3d-v1 — VWAP 偏差シグナル(失敗)
設計:vwap_dev_30m_bps = (mid - vwap_30m) / mid × 10_000 が +2 bps を 3 連続超過で 15 ETH、+5 bps で 20 ETH。
結果(62日):alpha -¥1,751,766
| Metric | v1 |
|---|---|
| Strategy PnL | -¥1,241,683 |
| Benchmark PnL | +¥510,083 |
| Alpha | -¥1,751,766 |
| Alpha Sharpe | -5.34 |
| Fills | 4,758 |
| Turnover | 34,400 ETH |
| Fill rate | 75.8% |
根本原因:signal polarity が mean-reverting
vwap_dev_30m_bps > 0(価格が trailing VWAP より上)は mean-reversion trigger。価格が VWAP を上抜けると VWAP へ revert する傾向があり、ここでレバレッジを 20 ETH に引き上げると反落を増幅する。
1 日 sanity(2026-03-18)の証拠:
- 戦略終値 20 ETH(フルレバレッジ long)
- 当日実際は price 下落: benchmark = -¥205k
- 戦略 pnl = -¥284k(alpha -¥79k)
- Turnover 510 ETH / 日 — 典型的 whipsaw
学び:regime classifier feature(regime label 分離に優れる)を trend signal(条件付き将来リターン期待値)として誤用した。
2.2 Phase 3d-v2 — rolling return シグナル(breakthrough)
設計変更(2026-04-21):
- Signal:
vwap_dev_30m_bps→r_30m_bps = 10_000 × log(mid / mid_30m_ago) - Thresholds: +2/+5 bps → +50/+150 bps(ノイズを確実に切る 30-min horizon)
- Exit: 0.5 → 10 bps(対称なヒステリシス)
結果(62日):alpha -¥324,585 — 全19戦略中 1 位
| Metric | v2 | v1 | Δ |
|---|---|---|---|
| Strategy PnL | +¥185,497 | -¥1,241,683 | +¥1,427,180 |
| Benchmark PnL | +¥510,083 | +¥510,083 | — |
| Alpha | -¥324,585 | -¥1,751,766 | +¥1,427,181 |
| Alpha Sharpe | -1.93 | -5.34 | +3.41 |
| Max DD | -¥415,803 | -¥1,795,748 | +¥1,379,945 |
| Fills | 691 | 4,758 | 10× 減 |
| Turnover | 3,565 ETH | 34,400 ETH | 10× 減 |
| Fill rate | 96.5% | 75.8% | +20.7pp |
2.3 Phase 3d-v3 パラメータイテレーション(breakthrough)
v2 結果を受けて v3 grid search。4 組の組み合わせを 62 日で backtest:
| Run | rally_15 | rally_20 | exit | persist | Alpha | Strat PnL | Turnover |
|---|---|---|---|---|---|---|---|
| v2 | 50 | 150 | 10 | 3 | -¥324,585 | +¥185,497 | 3,565 |
| v3a | 20 | 80 | 5 | 2 | -¥709,909 ❌ | — | 10,855 |
| v3b | 50 | 150 | 0 | 3 | -¥241,660 | +¥268,423 | 3,850 |
| v3c | 50 | 150 | 0 | 2 | -¥69.80 ✅ | +¥510,013 | 4,570 |
| v3d | 50 | 150 | 0 | 1 | -¥205,947 ❌ | +¥304,136 | 5,380 |
v3 の学び:
- v3a(entry 緩和)は完全失敗 — rally_15=20bps では chop との境界が曖昧、turnover 3x 爆増。v2 の +50/+150 bps entry thresholds が最適。
- v3b(exit=0)で +¥82k 改善 — v2 は exit=10bps で 10 分程度の pullback でも即 10 ETH に退避、rally 継続分を取り逃がす。Exit=0 で本当に negative return になるまで残留。
- v3c(persist=2)で +¥241k 改善 — v2/v3b は persistence=3(3 分連続確認)、slow-ramp rally の initial phase を取り逃がす。persist=2 で entry が 1 分早まり、rally upside を取り込む。
- v3d(persist=1)は regression — 単一 tick での upscale はノイズ過多、turnover +18%・false positive 増で v3c を下回る。Persistence=2 が sweet spot。
v3c は v1 から +¥1,751,696 alpha 改善(99.996% benchmark 到達)。
3. 21戦略リーダーボード(v3c 版)
| # | strategy | alpha | strat_pnl | bench |
|---|---|---|---|---|
| 1 | leveraged_rally_participant (Phase 3d-v3c) | -¥69.80 | +¥510,013 | +¥510,083 |
| 2 | baseline_flat | -¥509,438 | +¥645 | +¥510,083 |
| 3 | baseline_flow_imbalance_pulse | -¥519,632 | -¥9,549 | +¥510,083 |
| 4 | baseline_mean_reversion_micro | -¥522,377 | -¥12,295 | +¥510,083 |
| 5 | baseline_momentum_micro | -¥523,990 | -¥13,908 | +¥510,083 |
| 6 | baseline_regime_switch_micro | -¥525,835 | -¥15,752 | +¥510,083 |
| 7 | baseline_inventory_mm | -¥528,073 | -¥17,991 | +¥510,083 |
| 8 | baseline_queue_imbalance_breakout | -¥531,004 | -¥20,922 | +¥510,083 |
| 9 | baseline_sweep_follow | -¥531,411 | -¥21,329 | +¥510,083 |
| 10 | multiday_trend_carry_aware | -¥668,517 | -¥158,434 | +¥510,083 |
| 11 | mm_directional_zero_fee | -¥771,381 | -¥261,298 | +¥510,083 |
| 12 | regime_gated_holder | -¥812,106 | -¥302,023 | +¥510,083 |
| 13 | cvd_accel_momentum | -¥2,098,825 | -¥1,588,742 | +¥510,083 |
| 14-18 | alpha_* / imbalance_* / sweep_counter_fade | < -¥5M | < -¥4.5M | +¥510,083 |
| 19 | mm_zero_fee_inside_spread | -¥22,588,325 | -¥22,078,242 | +¥510,083 |
注: leveraged_rally_participant (v3c) は 全戦略で初の benchmark-parity 達成(alpha -¥69.80 = 0.014% gap)、かつ 全戦略で最高の strat PnL +¥510,013。v3b(+¥82k 改善)→ v3c(+¥241k 改善)で v2 から計 +¥254k の progress を得た。
4. v3c が示した構造的解法
4.1 なぜ v3c は benchmark に到達できたか
v2 では 3 つの overhead があった。v3c でそれぞれ対処:
| 課題 (v2) | v3c 修正 | 効果 |
|---|---|---|
| Exit=10bps でのアグレッシブ退避 | exit=0 → 本当に negative return で退避 | +¥82k |
| Persistence=3 (3 分) が長すぎ、slow-ramp phase を取り逃がす | persistence=2 (2 分) で早期 entry | +¥241k |
| 合計 | +¥254k |
4.2 なぜ更なる緩和(v3d: persist=1)は regression したか
v3d (persist=1) は 即 tick upscale — single-event breakout で 15 ETH に乗り換え、すぐ reversal で 10 に戻る whipsaw が発生。
- Fills: 886 → 1,038(+17%)
- Turnover: 4,570 → 5,380(+18%)
- Alpha: -¥69.80 → -¥205,947(-¥205k)
Persistence=2 が最適解 — rally 確認と反応速度のバランスポイント。
5. 実装
- 戦略:
src/atc/strategies/baselines/leveraged_rally_participant.py(~200 LOC) - Registry:
src/atc/strategies/registry.py - Tests:
tests/test_leveraged_rally_participant.py(12 unit tests, すべて pass) - v3c default parameters:
rally_15=50, rally_20=150, exit=0, persistence=2, return_window=1800s - v1 失敗診断:
research_reports/phase3d_v1_62day_diagnosis.md - v2 結果:
research_reports/phase3d_v2_62day_results.md - v3c 結果:
research_reports/phase3d_v3c_62day_results.md
6. 次のステップ
6.1 Phase 5 walk-forward 検証(unblocked)
v3c が benchmark-parity を達成したことで、Phase 5 walk-forward 検証が initiating 可能に:
- 2026-02..04 を rolling 14-day window で分割
- persistence=2 と exit=0 が regime 別に安定か検証
- Window-optimal parameters の drift を確認
6.2 構造的 positive alpha への次の一手
v3c は benchmark tie(alpha -¥69.80)だが beat できていない。positive alpha を取るには:
- 短期 alpha signal の重畳 — imbalance/sweep signal で ±2 ETH の微調整を v3c 10/15/20 ladder に加算
- Rally peak detection — 20 ETH でのホールド延長を rolling high に条件付ける
- Secondary re-entry — exit 後の pullback 底で再 upscale
7. まとめ
- v1 → v3c で alpha +¥1.75M 改善(-¥1.75M → -¥69.80)
- 全戦略で初の benchmark-parity 到達(99.996% gap closure)
- 全戦略で最高の strat PnL (+¥510,013)
- 4 イテレーション・4 日で失敗から benchmark-parity へ — framework の diagnosis→redesign→sweep loop の実証