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

Idiosyncratic Volatility (JP All Stocks)

slug: idiosyncratic-vol-jp-all
performance summary
Sharpe (median)
-0.04
Max DD
-15.2%
Win rate
Alpha (ann.)
p-value
0.55
backtest period: 2023-07-032026-02-02
Sharpe across 160 grid runs:median -0.04best 1.26 (not representative)worst -1.28p25–p75 -0.350.29

Hypothesis

Ang, Hodrick, Xing, Zhang (2006): stocks with high idiosyncratic volatility earn lower returns. Testing on the full Japanese stock universe.

Why it didn't work

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

Facts (5)

Best grid Sharpe ratio is 1.26 (p=0.046).
period 2023-07-03–2026-02-02; cost=5bps
sharpe_ratio1.26
Median Sharpe across 160 grid runs is -0.04.
Full grid of 160 parameter combinations.
sharpe_ratio-0.04
Median Sharpe in DOWN regime is -1.66 across 160 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-1.66
Median Sharpe in FLAT regime is 0.25 across 160 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio0.25
Median Sharpe in UP regime is -0.28 across 160 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio-0.28

Runs (30)

runparamssharpeUPFLATDOWN
estimation_window=20, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-idiosyncratic-vol-jp-all-0000
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.56-1.83+0.03+1.05
estimation_window=20, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-idiosyncratic-vol-jp-all-0001
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.05-1.01+0.03+1.05
estimation_window=20, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-idiosyncratic-vol-jp-all-0002
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.77-2.00-0.20+0.84
estimation_window=20, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True
r-idiosyncratic-vol-jp-all-0003
cost_bps: 10
n_stocks: 5
regime_gate: true
-0.28-1.23-0.20+0.84
estimation_window=20, holding_days=1, n_stocks=10, cost_bps=5, regime_gate=False
r-idiosyncratic-vol-jp-all-0004
cost_bps: 5
n_stocks: 10
regime_gate: false
-0.91-2.63-0.05-1.11
estimation_window=20, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=False
r-idiosyncratic-vol-jp-all-0006
cost_bps: 10
n_stocks: 10
regime_gate: false
-1.28-3.03-0.42-1.46
estimation_window=20, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=True
r-idiosyncratic-vol-jp-all-0019
cost_bps: 10
n_stocks: 5
regime_gate: true
+0.33+0.85+0.15-0.20
estimation_window=20, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=True
r-idiosyncratic-vol-jp-all-0033
cost_bps: 5
n_stocks: 5
regime_gate: true
+0.72+1.31+1.09-2.72
estimation_window=20, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=True
r-idiosyncratic-vol-jp-all-0039
cost_bps: 10
n_stocks: 10
regime_gate: true
+0.21+0.68+0.95-4.42
estimation_window=20, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=True
r-idiosyncratic-vol-jp-all-0053
cost_bps: 5
n_stocks: 10
regime_gate: true
+0.17+0.18+0.61-2.16
estimation_window=20, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=False
r-idiosyncratic-vol-jp-all-0064
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.11-0.08+0.55-0.87
estimation_window=20, holding_days=60, n_stocks=10, cost_bps=5, regime_gate=False
r-idiosyncratic-vol-jp-all-0068
cost_bps: 5
n_stocks: 10
regime_gate: false
-0.32-0.72+0.09-1.48
estimation_window=40, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-idiosyncratic-vol-jp-all-0082
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.35-2.43+0.97+1.13
estimation_window=40, holding_days=5, n_stocks=5, cost_bps=5, regime_gate=False
r-idiosyncratic-vol-jp-all-0096
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.35-1.56+1.32+0.63
estimation_window=40, holding_days=5, n_stocks=5, cost_bps=5, regime_gate=True
r-idiosyncratic-vol-jp-all-0097
cost_bps: 5
n_stocks: 5
regime_gate: true
+1.26+1.30+1.32+0.63
estimation_window=40, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=True
r-idiosyncratic-vol-jp-all-0103
cost_bps: 10
n_stocks: 10
regime_gate: true
+0.37+0.58+0.12+0.86
estimation_window=40, holding_days=10, n_stocks=10, cost_bps=5, regime_gate=True
r-idiosyncratic-vol-jp-all-0117
cost_bps: 5
n_stocks: 10
regime_gate: true
+0.77+0.54+1.37-2.15
estimation_window=40, holding_days=20, n_stocks=5, cost_bps=10, regime_gate=True
r-idiosyncratic-vol-jp-all-0131
cost_bps: 10
n_stocks: 5
regime_gate: true
+0.55+0.24+1.06-3.84
estimation_window=40, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=True
r-idiosyncratic-vol-jp-all-0145
cost_bps: 5
n_stocks: 5
regime_gate: true
+0.30+0.64+0.51-2.54
estimation_window=40, holding_days=60, n_stocks=10, cost_bps=10, regime_gate=True
r-idiosyncratic-vol-jp-all-0151
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.06+0.50-0.03-2.19
estimation_window=60, holding_days=1, n_stocks=10, cost_bps=5, regime_gate=True
r-idiosyncratic-vol-jp-all-0165
cost_bps: 5
n_stocks: 10
regime_gate: true
+0.03-0.77+0.43-0.07
estimation_window=60, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=True
r-idiosyncratic-vol-jp-all-0179
cost_bps: 10
n_stocks: 5
regime_gate: true
+0.36+1.30-0.09+0.19
estimation_window=60, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=True
r-idiosyncratic-vol-jp-all-0193
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.21+1.04-0.30-2.60
estimation_window=60, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=True
r-idiosyncratic-vol-jp-all-0199
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.06+0.78-0.21-2.77
estimation_window=60, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=True
r-idiosyncratic-vol-jp-all-0213
cost_bps: 5
n_stocks: 10
regime_gate: true
+0.32+0.35+0.45-0.93
estimation_window=60, holding_days=60, n_stocks=5, cost_bps=10, regime_gate=True
r-idiosyncratic-vol-jp-all-0227
cost_bps: 10
n_stocks: 5
regime_gate: true
+0.12+1.18+0.27-5.22
estimation_window=120, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-idiosyncratic-vol-jp-all-0240
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.10-1.96+1.24+1.20
estimation_window=120, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-idiosyncratic-vol-jp-all-0242
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.29-2.12+0.99+1.00
estimation_window=120, holding_days=5, n_stocks=5, cost_bps=5, regime_gate=False
r-idiosyncratic-vol-jp-all-0256
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.71-1.54+0.10-0.05
estimation_window=120, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=False
r-idiosyncratic-vol-jp-all-0262
cost_bps: 10
n_stocks: 10
regime_gate: false
-1.11-1.50-0.75-2.26

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:28

Related strategies