qbuntuqbuntu
marginalregime_dependent· equity· breakout· momentum· volatility

Volatility Breakout (JP All Stocks)

slug: volatility-breakout-jp-all
performance summary
Sharpe (median)
+0.16
Max DD
-14.5%
Win rate
Alpha (ann.)
p-value
0.58
backtest period: 2022-02-012026-02-02
Sharpe across 480 grid runs:median 0.16best 1.35 (not representative)worst -1.02p25–p75 -0.080.44

Hypothesis

Stocks with rising short-term ATR relative to long-term ATR are experiencing volatility expansion. Testing on the full Japanese stock universe.

Why it didn't work

Across 480 grid combinations, median Sharpe=0.16, best=1.35. Primary failure mode: regime_dependent.

Facts (7)

Average monthly return correlation with other strategies in DOWN regime: 0.04
Pairwise Pearson correlation of monthly returns across 42 strategies, filtered to DOWN regime months (N=3, N225 < SMA20 < SMA60)
correlation0.04
Average monthly return correlation with other strategies (full period): 0.02
Pairwise Pearson correlation of monthly returns across 42 strategies, full backtest period
correlation0.02
Best grid Sharpe ratio is 1.35 (p=0.01).
period 2022-02-01–2026-02-02; cost=5bps
sharpe_ratio1.35
Median Sharpe across 480 grid runs is 0.16.
Full grid of 480 parameter combinations.
sharpe_ratio0.16
Median Sharpe in DOWN regime is 0.77 across 480 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio0.77
Median Sharpe in FLAT regime is -0.20 across 480 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.20
Median Sharpe in UP regime is 1.25 across 480 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio1.25

Runs (30)

runparamssharpeUPFLATDOWN
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.35+0.55-0.63-0.56
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
-0.36+0.67-0.63-0.56
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
-0.58+0.35-0.86-0.92
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
-0.56+0.56-0.86-0.92
atr_short=5, atr_long=20, holding_days=1, n_stocks=10, cost_bps=5, regime_gate=False
r-volatility-breakout-jp-all-0004
atr_long: 20
cost_bps: 5
n_stocks: 10
-0.16-0.14-0.20+0.42
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.01+1.13-0.18-0.36
atr_short=5, atr_long=20, holding_days=20, n_stocks=5, cost_bps=10, regime_gate=True
r-volatility-breakout-jp-all-0039
atr_long: 20
cost_bps: 10
n_stocks: 5
+0.05+1.67-0.25-0.46
atr_short=5, atr_long=40, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=True
r-volatility-breakout-jp-all-0073
atr_long: 40
cost_bps: 5
n_stocks: 5
+0.54+1.21+0.22+2.73
atr_short=5, atr_long=60, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=True
r-volatility-breakout-jp-all-0103
atr_long: 60
cost_bps: 10
n_stocks: 10
-0.25+0.70-0.57+0.37
atr_short=5, atr_long=60, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=True
r-volatility-breakout-jp-all-0137
atr_long: 60
cost_bps: 5
n_stocks: 10
+0.26+0.54+0.16+0.45
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
+0.34+0.64+0.09+2.24
atr_short=5, atr_long=120, holding_days=10, n_stocks=10, cost_bps=5, regime_gate=False
r-volatility-breakout-jp-all-0172
atr_long: 120
cost_bps: 5
n_stocks: 10
+0.21-0.75+0.74-1.06
atr_short=10, atr_long=20, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=False
r-volatility-breakout-jp-all-0206
atr_long: 20
cost_bps: 10
n_stocks: 5
+0.53+1.47+0.01+1.83
atr_short=10, atr_long=40, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-volatility-breakout-jp-all-0240
atr_long: 40
cost_bps: 5
n_stocks: 5
+0.17+1.22-0.31+1.05
atr_short=10, atr_long=40, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=False
r-volatility-breakout-jp-all-0270
atr_long: 40
cost_bps: 10
n_stocks: 10
+0.25+1.43-0.28+2.77
atr_short=10, atr_long=60, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=False
r-volatility-breakout-jp-all-0304
atr_long: 60
cost_bps: 5
n_stocks: 10
+0.47+1.53+0.16-0.55
atr_short=10, atr_long=120, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-volatility-breakout-jp-all-0338
atr_long: 120
cost_bps: 10
n_stocks: 5
+0.66+2.12+0.12+0.05
atr_short=10, atr_long=120, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False
r-volatility-breakout-jp-all-0372
atr_long: 120
cost_bps: 5
n_stocks: 5
+0.30+1.75-0.58+12.05
atr_short=14, atr_long=20, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=False
r-volatility-breakout-jp-all-0402
atr_long: 20
cost_bps: 10
n_stocks: 10
-0.25+0.69-0.72+1.07
atr_short=14, atr_long=40, holding_days=1, n_stocks=10, cost_bps=5, regime_gate=False
r-volatility-breakout-jp-all-0436
atr_long: 40
cost_bps: 5
n_stocks: 10
-0.69-0.37-0.79-0.49
atr_short=14, atr_long=40, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=False
r-volatility-breakout-jp-all-0438
atr_long: 40
cost_bps: 10
n_stocks: 10
-1.02-0.68-1.13-0.71
atr_short=14, atr_long=40, holding_days=20, n_stocks=5, cost_bps=10, regime_gate=True
r-volatility-breakout-jp-all-0471
atr_long: 40
cost_bps: 10
n_stocks: 5
+0.01+1.36-0.75+7.65
atr_short=14, atr_long=60, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=True
r-volatility-breakout-jp-all-0505
atr_long: 60
cost_bps: 5
n_stocks: 5
+0.10+1.32-0.41+0.89
atr_short=14, atr_long=120, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=True
r-volatility-breakout-jp-all-0535
atr_long: 120
cost_bps: 10
n_stocks: 10
-0.45+0.24-0.56-1.28
atr_short=14, atr_long=120, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=True
r-volatility-breakout-jp-all-0569
atr_long: 120
cost_bps: 5
n_stocks: 10
-0.17+1.32-0.75+0.95
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.40+1.00+0.21-0.16
atr_short=20, atr_long=40, holding_days=10, n_stocks=10, cost_bps=5, regime_gate=False
r-volatility-breakout-jp-all-0604
atr_long: 40
cost_bps: 5
n_stocks: 10
+0.94+2.31+0.35+1.90
atr_short=20, atr_long=60, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=False
r-volatility-breakout-jp-all-0638
atr_long: 60
cost_bps: 10
n_stocks: 5
+0.35+1.44-0.01-0.47
atr_short=20, atr_long=120, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-volatility-breakout-jp-all-0672
atr_long: 120
cost_bps: 5
n_stocks: 5
+0.85+1.41+0.79-1.11
atr_short=20, atr_long=120, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=True
r-volatility-breakout-jp-all-0689
atr_long: 120
cost_bps: 5
n_stocks: 10
+1.35+2.26+0.91+2.38

Target universe

Tokyo Stock Exchange all listed (Prime/Standard/Growth), ~3747 stocks

Related strategies

source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-07-28T01:10:01

Related strategies