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

平均回帰(東証グロース)のバックテスト

Mean Reversion (JP Growth Stocks)

slug: mean-reversion-jp-growth

東証グロース(約495銘柄)で平均回帰をバックテストした。1,024通りの中央値 Sharpe は -0.03。p-value は 0.50。Max DD は -18.3%。期間は 2022-02-01〜2026-09-01。最良 Sharpe +1.60 は代表値ではない。

判定は rejected。中央値は promising(Sharpe > 0.5 かつ p-value < 0.05)にも marginal(Sharpe > 0.05 かつ最良 p-value < 0.10)にも届いていない。上昇・横ばい・下落で結果が割れ、中央値としては安定しない。

成績の中央値

Sharpe(中央値)
-0.03
Max DD
-18.3%
勝率
—
Alpha(年率)
—
p-value
0.50
期間: 2022-02-01 → 2026-09-01
1024通りの Sharpe:中央値 -0.03最良 1.60 (代表値ではない)最悪 -1.08p25–p75 -0.32–0.29

仮説

原文は英語。

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.

採用しなかった理由

Across 1024 grid combinations, median Sharpe=-0.03, best=1.60. Primary failure mode: regime_dependent.

検証ファクト (5)

Best grid Sharpe ratio is 1.60 (p=0.00089).
period 2022-02-01–2026-09-01; cost=5bps
sharpe_ratio1.60
Median Sharpe across 1024 grid runs is -0.03.
Full grid of 1024 parameter combinations.
sharpe_ratio-0.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.06 across 1024 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio0.06
Median Sharpe in UP regime is -0.50 across 1024 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio-0.50

検証ラン (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.23-0.94-0.20+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.23-1.71-0.20+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.36-1.08-0.34+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.36-1.85-0.34+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.26+0.11-0.41+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.64-1.43-0.75+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.63-1.71-0.65+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.05-0.07-0.00-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.09-0.57+0.16+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.36+0.12+0.38+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.01-0.41+0.10+2.88
indicator=zscore, lookback=60, holding_days=20, n_stocks=10, cost_bps=10, regime_gate=False
r-mean-reversion-jp-growth-0246
cost_bps: 10
lookback: 60
n_stocks: 10
-0.04-0.96+0.22+1.27
indicator=rsi, lookback=10, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=False
r-mean-reversion-jp-growth-0294
cost_bps: 10
lookback: 10
n_stocks: 10
+0.54+1.17+0.41+0.02
indicator=rsi, lookback=20, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=False
r-mean-reversion-jp-growth-0342
cost_bps: 10
lookback: 20
n_stocks: 10
+0.64+0.84+0.45+1.78
indicator=rsi, lookback=40, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=False
r-mean-reversion-jp-growth-0390
cost_bps: 10
lookback: 40
n_stocks: 10
+0.71-0.06+1.06+0.41
indicator=rsi, lookback=40, holding_days=20, n_stocks=10, cost_bps=10, regime_gate=False
r-mean-reversion-jp-growth-0438
cost_bps: 10
lookback: 40
n_stocks: 10
+0.54-0.34+0.71+6.31
indicator=rsi, lookback=60, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=False
r-mean-reversion-jp-growth-0486
cost_bps: 10
lookback: 60
n_stocks: 10
-0.03-1.74+0.52+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.23-0.94-0.20+2.39
indicator=bollinger_pct, lookback=10, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-growth-0535
cost_bps: 10
lookback: 10
n_stocks: 10
-0.83-0.89-0.98+1.31
indicator=bollinger_pct, lookback=20, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-growth-0583
cost_bps: 10
lookback: 20
n_stocks: 10
0.00-0.84+0.14+1.07
indicator=bollinger_pct, lookback=20, holding_days=20, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-growth-0631
cost_bps: 10
lookback: 20
n_stocks: 10
+0.02-0.26-0.02+2.71
indicator=bollinger_pct, lookback=40, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-growth-0679
cost_bps: 10
lookback: 40
n_stocks: 10
-0.13-0.62-0.05+0.78
indicator=bollinger_pct, lookback=60, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-growth-0727
cost_bps: 10
lookback: 60
n_stocks: 10
-0.33-1.17-0.40+3.89
indicator=mrs, lookback=10, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-growth-0775
cost_bps: 10
lookback: 10
n_stocks: 10
+0.13-0.15+0.27-1.06
indicator=mrs, lookback=10, holding_days=1, n_stocks=50, cost_bps=10, regime_gate=False
r-mean-reversion-jp-growth-0782
cost_bps: 10
lookback: 10
n_stocks: 50
-1.08-0.07-1.63-3.41
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.50-1.79-0.20-0.07
indicator=mrs, lookback=20, holding_days=1, n_stocks=10, cost_bps=5, regime_gate=False
r-mean-reversion-jp-growth-0836
cost_bps: 5
lookback: 20
n_stocks: 10
+1.60+0.87+1.85+2.84
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.78-0.09+1.10+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.68-0.23+0.82+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.13-0.94+0.49+8.40

対象ユニバース

Tokyo Stock Exchange Growth Market, ~495 stocks, tv >= 30M JPY
source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-09-24T21:54:26

関連する戦略