qbuntuqbuntu
rejectedregime_dependent· equity· anomaly· factor· low-volatility

Low Volatility Anomaly (JP All Stocks)

slug: low-volatility-anomaly-jp-all
performance summary
Sharpe (median)
-0.17
Max DD
-22.9%
Win rate
Alpha (ann.)
p-value
0.48
backtest period: 2022-02-012026-02-02
Sharpe across 160 grid runs:median -0.17best 0.91 (not representative)worst -0.98p25–p75 -0.400.14

Hypothesis

Baker, Bradley, Wurgler (2011): low-volatility stocks earn higher risk-adjusted returns. Testing on the full Japanese stock universe.

Why it didn't work

Across 160 grid combinations, median Sharpe=-0.17, best=0.91. Primary failure mode: regime_dependent.

Facts (5)

Best grid Sharpe ratio is 0.91 (p=0.071).
period 2022-02-01–2026-02-02; cost=5bps
sharpe_ratio0.91
Median Sharpe across 160 grid runs is -0.17.
Full grid of 160 parameter combinations.
sharpe_ratio-0.17
Median Sharpe in DOWN regime is -1.38 across 160 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-1.38
Median Sharpe in FLAT regime is 0.08 across 160 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio0.08
Median Sharpe in UP regime is -0.20 across 160 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio-0.20

Runs (30)

runparamssharpeUPFLATDOWN
vol_window=20, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-low-volatility-anomaly-jp-all-0000
cost_bps: 5
n_stocks: 5
vol_window: 20
-0.29-2.05+0.32+0.38
vol_window=20, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-low-volatility-anomaly-jp-all-0001
cost_bps: 5
n_stocks: 5
vol_window: 20
+0.11-1.34+0.32+0.38
vol_window=20, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-low-volatility-anomaly-jp-all-0002
cost_bps: 10
n_stocks: 5
vol_window: 20
-0.51-2.23+0.07+0.13
vol_window=20, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True
r-low-volatility-anomaly-jp-all-0003
cost_bps: 10
n_stocks: 5
vol_window: 20
-0.13-1.56+0.07+0.13
vol_window=20, holding_days=1, n_stocks=10, cost_bps=5, regime_gate=False
r-low-volatility-anomaly-jp-all-0004
cost_bps: 5
n_stocks: 10
vol_window: 20
-0.48-2.08-0.03-0.73
vol_window=20, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=False
r-low-volatility-anomaly-jp-all-0018
cost_bps: 10
n_stocks: 5
vol_window: 20
-0.29-1.51+0.28+0.44
vol_window=20, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=False
r-low-volatility-anomaly-jp-all-0032
cost_bps: 5
n_stocks: 5
vol_window: 20
+0.21-0.42+0.72-4.23
vol_window=20, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=False
r-low-volatility-anomaly-jp-all-0038
cost_bps: 10
n_stocks: 10
vol_window: 20
+0.10-0.87+0.74-3.79
vol_window=20, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=False
r-low-volatility-anomaly-jp-all-0052
cost_bps: 5
n_stocks: 10
vol_window: 20
-0.06-1.15+0.31-1.55
vol_window=20, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=False
r-low-volatility-anomaly-jp-all-0064
cost_bps: 5
n_stocks: 5
vol_window: 20
+0.10+0.54+0.16-2.46
vol_window=20, holding_days=60, n_stocks=5, cost_bps=10, regime_gate=True
r-low-volatility-anomaly-jp-all-0067
cost_bps: 10
n_stocks: 5
vol_window: 20
+0.07+0.72+0.13-2.49
vol_window=40, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-low-volatility-anomaly-jp-all-0081
cost_bps: 5
n_stocks: 5
vol_window: 40
+0.75-0.68+0.96+0.76
vol_window=40, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=True
r-low-volatility-anomaly-jp-all-0087
cost_bps: 10
n_stocks: 10
vol_window: 40
-0.17-1.32+0.14-0.16
vol_window=40, holding_days=5, n_stocks=5, cost_bps=5, regime_gate=True
r-low-volatility-anomaly-jp-all-0097
cost_bps: 5
n_stocks: 5
vol_window: 40
+0.91+1.69+0.82+0.68
vol_window=40, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=False
r-low-volatility-anomaly-jp-all-0102
cost_bps: 10
n_stocks: 10
vol_window: 40
-0.52-2.19+0.00+1.11
vol_window=40, holding_days=10, n_stocks=10, cost_bps=5, regime_gate=False
r-low-volatility-anomaly-jp-all-0116
cost_bps: 5
n_stocks: 10
vol_window: 40
+0.05-0.81+0.35-0.52
vol_window=40, holding_days=20, n_stocks=5, cost_bps=10, regime_gate=False
r-low-volatility-anomaly-jp-all-0130
cost_bps: 10
n_stocks: 5
vol_window: 40
+0.13-0.76+0.52-1.89
vol_window=40, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=False
r-low-volatility-anomaly-jp-all-0144
cost_bps: 5
n_stocks: 5
vol_window: 40
-0.08+1.08-0.24-5.30
vol_window=40, holding_days=60, n_stocks=10, cost_bps=10, regime_gate=False
r-low-volatility-anomaly-jp-all-0150
cost_bps: 10
n_stocks: 10
vol_window: 40
-0.42+0.15-0.49-1.25
vol_window=60, holding_days=1, n_stocks=10, cost_bps=5, regime_gate=False
r-low-volatility-anomaly-jp-all-0164
cost_bps: 5
n_stocks: 10
vol_window: 60
-0.08-2.22+0.77-0.03
vol_window=60, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=False
r-low-volatility-anomaly-jp-all-0178
cost_bps: 10
n_stocks: 5
vol_window: 60
-0.22-1.08+0.24+0.50
vol_window=60, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=False
r-low-volatility-anomaly-jp-all-0192
cost_bps: 5
n_stocks: 5
vol_window: 60
-0.28-0.52-0.04-2.47
vol_window=60, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=False
r-low-volatility-anomaly-jp-all-0198
cost_bps: 10
n_stocks: 10
vol_window: 60
-0.48-0.63-0.31-2.32
vol_window=60, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=False
r-low-volatility-anomaly-jp-all-0212
cost_bps: 5
n_stocks: 10
vol_window: 60
-0.29-0.60-0.11-2.52
vol_window=60, holding_days=60, n_stocks=5, cost_bps=10, regime_gate=False
r-low-volatility-anomaly-jp-all-0226
cost_bps: 10
n_stocks: 5
vol_window: 60
-0.03+1.54-0.24-8.33
vol_window=120, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-low-volatility-anomaly-jp-all-0240
cost_bps: 5
n_stocks: 5
vol_window: 120
-0.12-1.44+0.42+1.53
vol_window=120, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-low-volatility-anomaly-jp-all-0241
cost_bps: 5
n_stocks: 5
vol_window: 120
+0.43+0.17+0.42+1.53
vol_window=120, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=True
r-low-volatility-anomaly-jp-all-0247
cost_bps: 10
n_stocks: 10
vol_window: 120
+0.10-1.18+0.30+2.18
vol_window=120, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=True
r-low-volatility-anomaly-jp-all-0261
cost_bps: 5
n_stocks: 10
vol_window: 120
0.00+0.51-0.11-0.06
vol_window=120, holding_days=20, n_stocks=5, cost_bps=10, regime_gate=False
r-low-volatility-anomaly-jp-all-0290
cost_bps: 10
n_stocks: 5
vol_window: 120
-0.98-0.63-1.00-2.19

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-30T01:21:32

Related strategies