qbuntuqbuntu
rejectedregime_dependent· equity· cross-sectional· factor· mean-reversion

Mean Reversion (JP Growth Stocks)

slug: mean-reversion-jp-growth
performance summary
Sharpe (median)
+0.03
Max DD
-15.2%
Win rate
Alpha (ann.)
p-value
0.51
backtest period: 2022-02-012026-06-01
Sharpe across 1024 grid runs:median 0.03best 1.88 (not representative)worst -1.08p25–p75 -0.270.36

Hypothesis

Stocks deviating from fair value (measured by z-score, RSI, Bollinger, or MRS) revert to the mean. LONG oversold, SHORT overbought. Tests 4 mean-reversion indicators in TSE Growth Market.

Why it didn't work

Across 1024 grid combinations, median Sharpe=0.03, best=1.88. 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)
correlation-0.04
Average monthly return correlation with other strategies (full period): 0.01
Pairwise Pearson correlation of monthly returns across 42 strategies, full backtest period
correlation0.01
Best grid Sharpe ratio is 1.88 (p=0.0002).
period 2022-02-01–2026-06-01; cost=5bps
sharpe_ratio1.88
Median Sharpe across 1024 grid runs is 0.03.
Full grid of 1024 parameter combinations.
sharpe_ratio0.03
Median Sharpe in DOWN regime is 1.18 across 1024 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio1.18
Median Sharpe in FLAT regime is 0.15 across 1024 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio0.15
Median Sharpe in UP regime is -0.43 across 1024 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio-0.43

Runs (30)

runparamssharpeUPFLATDOWN
indicator=zscore, lookback=10, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-mean-reversion-jp-growth-0000
cost_bps: 5
lookback: 10
n_stocks: 5
-0.17-0.94-0.12+2.39
indicator=zscore, lookback=10, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-mean-reversion-jp-growth-0001
cost_bps: 5
lookback: 10
n_stocks: 5
-0.16-1.71-0.12+2.39
indicator=zscore, lookback=10, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-mean-reversion-jp-growth-0002
cost_bps: 10
lookback: 10
n_stocks: 5
-0.30-1.08-0.25+2.25
indicator=zscore, lookback=10, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True
r-mean-reversion-jp-growth-0003
cost_bps: 10
lookback: 10
n_stocks: 5
-0.29-1.85-0.25+2.25
indicator=zscore, lookback=10, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=False
r-mean-reversion-jp-growth-0012
cost_bps: 5
lookback: 10
n_stocks: 50
-0.31+0.11-0.49+2.58
indicator=zscore, lookback=10, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False
r-mean-reversion-jp-growth-0048
cost_bps: 5
lookback: 10
n_stocks: 5
-0.60-1.48-0.68+3.03
indicator=zscore, lookback=10, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=True
r-mean-reversion-jp-growth-0053
cost_bps: 5
lookback: 10
n_stocks: 10
-0.51-1.48-0.55+2.64
indicator=zscore, lookback=20, holding_days=10, n_stocks=10, cost_bps=5, regime_gate=True
r-mean-reversion-jp-growth-0101
cost_bps: 5
lookback: 20
n_stocks: 10
+0.16+0.08+0.24-1.94
indicator=zscore, lookback=40, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=True
r-mean-reversion-jp-growth-0149
cost_bps: 5
lookback: 40
n_stocks: 10
+0.13-0.57+0.22+4.21
indicator=zscore, lookback=60, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-mean-reversion-jp-growth-0192
cost_bps: 5
lookback: 60
n_stocks: 5
+0.49+0.12+0.56+0.92
indicator=zscore, lookback=60, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=False
r-mean-reversion-jp-growth-0198
cost_bps: 10
lookback: 60
n_stocks: 10
+0.13-0.41+0.28+2.88
indicator=zscore, lookback=60, holding_days=10, n_stocks=50, cost_bps=10, regime_gate=False
r-mean-reversion-jp-growth-0238
cost_bps: 10
lookback: 60
n_stocks: 50
-1.08-1.63-0.95-0.01
indicator=zscore, lookback=60, holding_days=20, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-growth-0247
cost_bps: 10
lookback: 60
n_stocks: 10
+0.08-0.95+0.12+1.27
indicator=rsi, lookback=10, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-growth-0295
cost_bps: 10
lookback: 10
n_stocks: 10
+0.48+0.21+0.58+0.02
indicator=rsi, lookback=20, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-growth-0343
cost_bps: 10
lookback: 20
n_stocks: 10
+0.67+0.66+0.58+1.78
indicator=rsi, lookback=40, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-growth-0391
cost_bps: 10
lookback: 40
n_stocks: 10
+0.48-0.79+0.90+0.41
indicator=rsi, lookback=40, holding_days=20, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-growth-0439
cost_bps: 10
lookback: 40
n_stocks: 10
+0.61+0.02+0.63+6.31
indicator=rsi, lookback=60, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-growth-0487
cost_bps: 10
lookback: 60
n_stocks: 10
+0.25-0.67+0.34+1.24
indicator=bollinger_pct, lookback=10, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-mean-reversion-jp-growth-0512
cost_bps: 5
lookback: 10
n_stocks: 5
-0.17-0.94-0.12+2.39
indicator=bollinger_pct, lookback=10, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=False
r-mean-reversion-jp-growth-0536
cost_bps: 5
lookback: 10
n_stocks: 20
-0.44-0.93-0.43+2.11
indicator=bollinger_pct, lookback=20, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=False
r-mean-reversion-jp-growth-0584
cost_bps: 5
lookback: 20
n_stocks: 20
+0.38+0.40+0.27+3.02
indicator=bollinger_pct, lookback=20, holding_days=20, n_stocks=20, cost_bps=5, regime_gate=False
r-mean-reversion-jp-growth-0632
cost_bps: 5
lookback: 20
n_stocks: 20
+0.28-0.96+0.51+3.07
indicator=bollinger_pct, lookback=40, holding_days=10, n_stocks=20, cost_bps=5, regime_gate=False
r-mean-reversion-jp-growth-0680
cost_bps: 5
lookback: 40
n_stocks: 20
-0.69-1.15-0.64+0.58
indicator=bollinger_pct, lookback=60, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=False
r-mean-reversion-jp-growth-0728
cost_bps: 5
lookback: 60
n_stocks: 20
-0.18-0.36-0.25+3.10
indicator=mrs, lookback=10, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=False
r-mean-reversion-jp-growth-0776
cost_bps: 5
lookback: 10
n_stocks: 20
+0.39+0.69+0.24+1.43
indicator=mrs, lookback=10, holding_days=20, n_stocks=20, cost_bps=5, regime_gate=False
r-mean-reversion-jp-growth-0824
cost_bps: 5
lookback: 10
n_stocks: 20
-0.44-1.87-0.09-0.07
indicator=mrs, lookback=20, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=False
r-mean-reversion-jp-growth-0852
cost_bps: 5
lookback: 20
n_stocks: 10
+1.88+0.92+2.01+7.42
indicator=mrs, lookback=20, holding_days=10, n_stocks=20, cost_bps=5, regime_gate=True
r-mean-reversion-jp-growth-0873
cost_bps: 5
lookback: 20
n_stocks: 20
+0.91+0.13+1.22+0.84
indicator=mrs, lookback=40, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=True
r-mean-reversion-jp-growth-0921
cost_bps: 5
lookback: 40
n_stocks: 20
+0.83-0.23+1.10+2.20
indicator=mrs, lookback=60, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=True
r-mean-reversion-jp-growth-0969
cost_bps: 5
lookback: 60
n_stocks: 20
+0.16-0.94+0.58+8.40

Target universe

Tokyo Stock Exchange Growth Market, ~495 stocks, tv >= 30M JPY
source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-07-27T03:36:14

Related strategies