ボラティリティ・ブレイクアウト(東証全銘柄)のバックテスト
Volatility Breakout (JP All Stocks)
slug: volatility-breakout-jp-all
東証全銘柄(約3,747銘柄)でボラティリティ・ブレイクアウトをバックテストした。720通りの中央値 Sharpe は -0.93。p-value は 0.05。Max DD は -46.5%。期間は 2022-02-01〜2026-09-01。最良 Sharpe +0.04 は代表値ではない。
判定は rejected。中央値は promising(Sharpe > 0.5 かつ p-value < 0.05)にも marginal(Sharpe > 0.05 かつ最良 p-value < 0.10)にも届いていない。主因は no_edge。レジーム・取引回数・コストには分類されず、中央値が採用ラインに届いていない。
成績の中央値
Sharpe(中央値)
-0.93
Max DD
-46.5%
勝率
—
Alpha(年率)
—
p-value
0.05
期間: 2022-02-01 → 2026-09-01
720通りの Sharpe:中央値 -0.93最良 0.04 (代表値ではない)最悪 -2.11p25–p75 -1.17–-0.65
仮説
原文は英語。
Stocks with rising short-term ATR relative to long-term ATR are experiencing volatility expansion. Testing on the full Japanese stock universe.
採用しなかった理由
Across 720 grid combinations, median Sharpe=-0.93, best=0.04. Primary failure mode: no_edge.
検証ファクト (5)
Best grid Sharpe ratio is 0.04 (p=0.93).
period 2022-02-01–2026-09-01; cost=5bps
cite ↗ /cite/volatility-breakout-jp-all-fact-best-sharpevia r-volatility-breakout-jp-all-0576
Median Sharpe across 720 grid runs is -0.93.
Full grid of 720 parameter combinations.
Median Sharpe in DOWN regime is -0.06 across 720 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
Median Sharpe in FLAT regime is -0.96 across 720 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
Median Sharpe in UP regime is -1.40 across 720 runs.
Regime=UP, N225 SMA20/SMA60 classification.
検証ラン (30)
| run | params | sharpe | UP | FLAT | DOWN |
|---|---|---|---|---|---|
atr_short=5, atr_long=20, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False r-volatility-breakout-jp-all-0000 | atr_long: 20 cost_bps: 5 n_stocks: 5 | -0.87 | -1.28 | -1.00 | +0.05 |
atr_short=5, atr_long=20, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True r-volatility-breakout-jp-all-0001 | atr_long: 20 cost_bps: 5 n_stocks: 5 | -1.14 | -2.03 | -1.00 | +0.05 |
atr_short=5, atr_long=20, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False r-volatility-breakout-jp-all-0002 | atr_long: 20 cost_bps: 10 n_stocks: 5 | -1.01 | -1.47 | -1.11 | -0.09 |
atr_short=5, atr_long=20, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True r-volatility-breakout-jp-all-0003 | atr_long: 20 cost_bps: 10 n_stocks: 5 | -1.24 | -2.11 | -1.11 | -0.09 |
atr_short=5, atr_long=20, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=False r-volatility-breakout-jp-all-0008 | atr_long: 20 cost_bps: 5 n_stocks: 20 | -0.72 | -0.48 | -1.41 | +0.01 |
atr_short=5, atr_long=20, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False r-volatility-breakout-jp-all-0036 | atr_long: 20 cost_bps: 5 n_stocks: 5 | -0.65 | -0.23 | -1.82 | +0.53 |
atr_short=5, atr_long=20, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=True r-volatility-breakout-jp-all-0037 | atr_long: 20 cost_bps: 5 n_stocks: 5 | -0.72 | -0.44 | -1.82 | +0.53 |
atr_short=5, atr_long=40, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=True r-volatility-breakout-jp-all-0069 | atr_long: 40 cost_bps: 5 n_stocks: 20 | -0.43 | -1.29 | +0.13 | -0.56 |
atr_short=5, atr_long=60, holding_days=1, n_stocks=10, cost_bps=5, regime_gate=True r-volatility-breakout-jp-all-0101 | atr_long: 60 cost_bps: 5 n_stocks: 10 | -0.83 | -0.98 | -1.07 | +0.15 |
atr_short=5, atr_long=60, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=True r-volatility-breakout-jp-all-0133 | atr_long: 60 cost_bps: 5 n_stocks: 5 | -1.41 | -1.40 | -2.27 | +0.13 |
atr_short=5, atr_long=120, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False r-volatility-breakout-jp-all-0144 | atr_long: 120 cost_bps: 5 n_stocks: 5 | -1.03 | -1.61 | -1.25 | +0.41 |
atr_short=5, atr_long=120, holding_days=5, n_stocks=20, cost_bps=10, regime_gate=False r-volatility-breakout-jp-all-0166 | atr_long: 120 cost_bps: 10 n_stocks: 20 | -0.87 | -1.11 | -1.03 | +0.01 |
atr_short=10, atr_long=20, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=False r-volatility-breakout-jp-all-0198 | atr_long: 20 cost_bps: 10 n_stocks: 10 | -1.16 | -1.98 | -0.87 | -0.64 |
atr_short=10, atr_long=20, holding_days=20, n_stocks=5, cost_bps=10, regime_gate=False r-volatility-breakout-jp-all-0230 | atr_long: 20 cost_bps: 10 n_stocks: 5 | -1.16 | -2.51 | -1.13 | +0.54 |
atr_short=10, atr_long=40, holding_days=5, n_stocks=20, cost_bps=10, regime_gate=False r-volatility-breakout-jp-all-0262 | atr_long: 40 cost_bps: 10 n_stocks: 20 | -0.64 | -0.94 | -0.63 | -0.03 |
atr_short=10, atr_long=60, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=False r-volatility-breakout-jp-all-0294 | atr_long: 60 cost_bps: 10 n_stocks: 10 | -1.34 | -1.41 | -1.85 | -0.41 |
atr_short=10, atr_long=60, holding_days=20, n_stocks=5, cost_bps=10, regime_gate=False r-volatility-breakout-jp-all-0326 | atr_long: 60 cost_bps: 10 n_stocks: 5 | -1.15 | -1.59 | -1.33 | +0.25 |
atr_short=10, atr_long=120, holding_days=5, n_stocks=20, cost_bps=10, regime_gate=False r-volatility-breakout-jp-all-0358 | atr_long: 120 cost_bps: 10 n_stocks: 20 | -0.90 | -1.25 | -1.23 | +0.63 |
atr_short=14, atr_long=20, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=False r-volatility-breakout-jp-all-0390 | atr_long: 20 cost_bps: 10 n_stocks: 10 | -1.05 | -2.06 | -0.70 | -0.52 |
atr_short=14, atr_long=20, holding_days=20, n_stocks=5, cost_bps=10, regime_gate=False r-volatility-breakout-jp-all-0422 | atr_long: 20 cost_bps: 10 n_stocks: 5 | -0.30 | -3.75 | +0.52 | +0.19 |
atr_short=14, atr_long=40, holding_days=5, n_stocks=20, cost_bps=10, regime_gate=False r-volatility-breakout-jp-all-0454 | atr_long: 40 cost_bps: 10 n_stocks: 20 | -1.19 | -2.14 | -0.78 | -0.32 |
atr_short=14, atr_long=60, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=False r-volatility-breakout-jp-all-0486 | atr_long: 60 cost_bps: 10 n_stocks: 10 | -0.91 | -1.97 | -0.33 | -0.83 |
atr_short=14, atr_long=60, holding_days=20, n_stocks=5, cost_bps=10, regime_gate=False r-volatility-breakout-jp-all-0518 | atr_long: 60 cost_bps: 10 n_stocks: 5 | -0.63 | -1.95 | +0.01 | +0.08 |
atr_short=14, atr_long=120, holding_days=5, n_stocks=20, cost_bps=10, regime_gate=False r-volatility-breakout-jp-all-0550 | atr_long: 120 cost_bps: 10 n_stocks: 20 | -1.09 | -1.30 | -0.97 | -0.63 |
atr_short=14, atr_long=120, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=True r-volatility-breakout-jp-all-0559 | atr_long: 120 cost_bps: 10 n_stocks: 10 | -2.11 | -3.40 | -1.71 | -0.79 |
atr_short=20, atr_long=40, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False r-volatility-breakout-jp-all-0576 | atr_long: 40 cost_bps: 5 n_stocks: 5 | +0.04 | +0.83 | -0.14 | -0.78 |
atr_short=20, atr_long=40, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=False r-volatility-breakout-jp-all-0584 | atr_long: 40 cost_bps: 5 n_stocks: 20 | -1.13 | -1.48 | -0.54 | -2.05 |
atr_short=20, atr_long=40, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=False r-volatility-breakout-jp-all-0616 | atr_long: 40 cost_bps: 5 n_stocks: 10 | -1.29 | -1.59 | -0.98 | -1.38 |
atr_short=20, atr_long=60, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=False r-volatility-breakout-jp-all-0648 | atr_long: 60 cost_bps: 5 n_stocks: 5 | -1.13 | -1.25 | -1.28 | -0.28 |
atr_short=20, atr_long=120, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=False r-volatility-breakout-jp-all-0680 | atr_long: 120 cost_bps: 5 n_stocks: 20 | -0.24 | +0.24 | +0.08 | -1.73 |
対象ユニバース
Tokyo Stock Exchange all listed (Prime/Standard/Growth), ~3747 stocks
関連する戦略
source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-09-26T05:46:56