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

平均回帰(東証全銘柄)のバックテスト

Mean Reversion (JP All Stocks)

slug: mean-reversion-jp-all

東証全銘柄(約3,747銘柄)で平均回帰をバックテストした。1,024通りの中央値 Sharpe は +0.01。p-value は 0.46。Max DD は -17.4%。期間は 2022-02-01〜2026-09-01。最良 Sharpe +1.26 は代表値ではない。

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

成績の中央値

Sharpe(中央値)
+0.01
Max DD
-17.4%
勝率
—
Alpha(年率)
—
p-value
0.46
期間: 2022-02-01 → 2026-09-01
1024通りの Sharpe:中央値 0.01最良 1.26 (代表値ではない)最悪 -1.20p25–p75 -0.31–0.38

仮説

原文は英語。

Stocks deviating from fair value revert to the mean. Testing 4 mean-reversion indicators on the full Japanese stock universe.

採用しなかった理由

Across 1024 grid combinations, median Sharpe=0.01, best=1.26. Primary failure mode: regime_dependent.

検証ファクト (5)

Best grid Sharpe ratio is 1.26 (p=0.0086).
period 2022-02-01–2026-09-01; cost=5bps
sharpe_ratio1.26
Median Sharpe across 1024 grid runs is 0.01.
Full grid of 1024 parameter combinations.
sharpe_ratio0.01
Median Sharpe in DOWN regime is 0.74 across 1024 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio0.74
Median Sharpe in FLAT regime is -0.26 across 1024 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.26
Median Sharpe in UP regime is -0.00 across 1024 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio0

検証ラン (30)

runparamssharpeUPFLATDOWN
indicator=zscore, lookback=10, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-mean-reversion-jp-all-0000
cost_bps: 5
lookback: 10
n_stocks: 5
-0.20-0.74-0.32+1.04
indicator=zscore, lookback=10, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-mean-reversion-jp-all-0001
cost_bps: 5
lookback: 10
n_stocks: 5
+0.22+0.21-0.32+1.04
indicator=zscore, lookback=10, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-mean-reversion-jp-all-0002
cost_bps: 10
lookback: 10
n_stocks: 5
-0.35-0.88-0.53+0.92
indicator=zscore, lookback=10, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True
r-mean-reversion-jp-all-0003
cost_bps: 10
lookback: 10
n_stocks: 5
+0.06+0.04-0.53+0.92
indicator=zscore, lookback=10, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=False
r-mean-reversion-jp-all-0012
cost_bps: 5
lookback: 10
n_stocks: 50
-0.21-0.57-0.01+0.06
indicator=zscore, lookback=10, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False
r-mean-reversion-jp-all-0048
cost_bps: 5
lookback: 10
n_stocks: 5
-0.29-0.33-0.20-0.88
indicator=zscore, lookback=10, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=True
r-mean-reversion-jp-all-0053
cost_bps: 5
lookback: 10
n_stocks: 10
-0.17+1.20-0.45-1.82
indicator=zscore, lookback=20, holding_days=5, n_stocks=50, cost_bps=10, regime_gate=False
r-mean-reversion-jp-all-0094
cost_bps: 10
lookback: 20
n_stocks: 50
-1.20-1.20-1.51-0.30
indicator=zscore, lookback=20, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=False
r-mean-reversion-jp-all-0102
cost_bps: 10
lookback: 20
n_stocks: 10
-0.01+0.16-0.28+0.36
indicator=zscore, lookback=40, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=False
r-mean-reversion-jp-all-0150
cost_bps: 10
lookback: 40
n_stocks: 10
+0.20+0.71-0.34+0.94
indicator=zscore, lookback=60, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-mean-reversion-jp-all-0192
cost_bps: 5
lookback: 60
n_stocks: 5
+0.40+0.98-0.03+1.39
indicator=zscore, lookback=60, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-all-0199
cost_bps: 10
lookback: 60
n_stocks: 10
-0.15-1.35-0.07+1.55
indicator=zscore, lookback=60, holding_days=20, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-all-0247
cost_bps: 10
lookback: 60
n_stocks: 10
+0.37-0.30+0.84-0.28
indicator=rsi, lookback=10, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-all-0295
cost_bps: 10
lookback: 10
n_stocks: 10
0.00-0.40-0.02+1.03
indicator=rsi, lookback=20, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-all-0343
cost_bps: 10
lookback: 20
n_stocks: 10
0.00-0.09-0.34+1.02
indicator=rsi, lookback=40, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-all-0391
cost_bps: 10
lookback: 40
n_stocks: 10
+0.18+0.05-0.24+1.31
indicator=rsi, lookback=40, holding_days=20, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-all-0439
cost_bps: 10
lookback: 40
n_stocks: 10
+0.32-0.25-0.19+3.62
indicator=rsi, lookback=60, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=True
r-mean-reversion-jp-all-0487
cost_bps: 10
lookback: 60
n_stocks: 10
+0.64+0.50+0.61+1.16
indicator=bollinger_pct, lookback=10, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-mean-reversion-jp-all-0512
cost_bps: 5
lookback: 10
n_stocks: 5
-0.20-0.74-0.32+1.04
indicator=bollinger_pct, lookback=10, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=False
r-mean-reversion-jp-all-0536
cost_bps: 5
lookback: 10
n_stocks: 20
-0.33-0.49-0.66+0.95
indicator=bollinger_pct, lookback=20, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=False
r-mean-reversion-jp-all-0584
cost_bps: 5
lookback: 20
n_stocks: 20
+0.19+0.60-0.14+0.17
indicator=bollinger_pct, lookback=20, holding_days=20, n_stocks=20, cost_bps=5, regime_gate=False
r-mean-reversion-jp-all-0632
cost_bps: 5
lookback: 20
n_stocks: 20
+0.12+0.49+0.04-1.85
indicator=bollinger_pct, lookback=40, holding_days=10, n_stocks=20, cost_bps=5, regime_gate=False
r-mean-reversion-jp-all-0680
cost_bps: 5
lookback: 40
n_stocks: 20
+0.17-0.07-0.12+1.58
indicator=bollinger_pct, lookback=60, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=False
r-mean-reversion-jp-all-0728
cost_bps: 5
lookback: 60
n_stocks: 20
-0.01+0.02+0.02-0.13
indicator=mrs, lookback=10, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=False
r-mean-reversion-jp-all-0776
cost_bps: 5
lookback: 10
n_stocks: 20
-0.19-0.26-0.59+1.73
indicator=mrs, lookback=10, holding_days=20, n_stocks=20, cost_bps=5, regime_gate=False
r-mean-reversion-jp-all-0824
cost_bps: 5
lookback: 10
n_stocks: 20
-0.43-0.80-0.55+2.90
indicator=mrs, lookback=20, holding_days=10, n_stocks=20, cost_bps=5, regime_gate=False
r-mean-reversion-jp-all-0872
cost_bps: 5
lookback: 20
n_stocks: 20
+0.63-0.63+1.79+1.96
indicator=mrs, lookback=20, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False
r-mean-reversion-jp-all-0880
cost_bps: 5
lookback: 20
n_stocks: 5
+1.26+1.37+1.07+1.73
indicator=mrs, lookback=40, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=True
r-mean-reversion-jp-all-0921
cost_bps: 5
lookback: 40
n_stocks: 20
-0.11+0.64-1.23+1.75
indicator=mrs, lookback=60, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=True
r-mean-reversion-jp-all-0969
cost_bps: 5
lookback: 60
n_stocks: 20
+0.22+0.83-0.26-0.16

対象ユニバース

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

関連する戦略

source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-09-26T05:46:56

関連する戦略