短期リバーサル(東証グロース)のバックテスト
Short-Term Reversal (JP Growth Stocks)
slug: short-term-reversal-jp-growth
東証グロース(約495銘柄)で短期リバーサルをバックテストした。320通りの中央値 Sharpe は +0.33。p-value は 0.34。Max DD は -23.3%。期間は 2022-01-24〜2026-09-14。最良 Sharpe +2.07 は代表値ではない。
判定は marginal。どこかのパラメータでは p-value が 0.10 を下回るが、中央値自体は promising の基準(Sharpe > 0.5 かつ p-value < 0.05)に届いていない。主因は no_edge。レジーム・取引回数・コストには分類されず、中央値が採用ラインに届いていない。
成績の中央値
Sharpe(中央値)
+0.33
Max DD
-23.3%
勝率
—
Alpha(年率)
—
p-value
0.34
期間: 2022-01-24 → 2026-09-14
320通りの Sharpe:中央値 0.33最良 2.07 (代表値ではない)最悪 -1.51p25–p75 -0.06–0.64
仮説
原文は英語。
Jegadeesh (1990): stocks that dropped most over past N days tend to bounce back (and vice versa). LONG worst performers, SHORT best. Tests raw past-return reversal in TSE Growth Market.
採用しなかった理由
Across 320 grid combinations, median Sharpe=0.33, best=2.07. Primary failure mode: no_edge.
検証ファクト (5)
Best grid Sharpe ratio is 2.07 (p=1.2e-05).
period 2022-01-24–2026-09-14; cost=5bps
cite ↗ /cite/short-term-reversal-jp-growth-fact-best-sharpevia r-short-term-reversal-jp-growth-0208
Median Sharpe across 320 grid runs is 0.33.
Full grid of 320 parameter combinations.
Median Sharpe in DOWN regime is 1.76 across 320 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
Median Sharpe in FLAT regime is 0.93 across 320 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
Median Sharpe in UP regime is -1.50 across 320 runs.
Regime=UP, N225 SMA20/SMA60 classification.
検証ラン (30)
| run | params | sharpe | UP | FLAT | DOWN |
|---|---|---|---|---|---|
reversal_days=1, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False r-short-term-reversal-jp-growth-0000 | cost_bps: 5 n_stocks: 5 regime_gate: false | +1.09 | +0.12 | +1.64 | +0.84 |
reversal_days=1, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True r-short-term-reversal-jp-growth-0001 | cost_bps: 5 n_stocks: 5 regime_gate: true | +0.77 | -1.85 | +1.64 | +0.84 |
reversal_days=1, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False r-short-term-reversal-jp-growth-0002 | cost_bps: 10 n_stocks: 5 regime_gate: false | +0.89 | -0.05 | +1.43 | +0.59 |
reversal_days=1, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True r-short-term-reversal-jp-growth-0003 | cost_bps: 10 n_stocks: 5 regime_gate: true | +0.58 | -2.00 | +1.43 | +0.59 |
reversal_days=1, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=False r-short-term-reversal-jp-growth-0012 | cost_bps: 5 n_stocks: 50 regime_gate: false | +0.59 | -0.28 | +1.05 | +0.28 |
reversal_days=1, holding_days=3, n_stocks=5, cost_bps=10, regime_gate=False r-short-term-reversal-jp-growth-0018 | cost_bps: 10 n_stocks: 5 regime_gate: false | +0.84 | +0.48 | +0.90 | +2.28 |
reversal_days=1, holding_days=5, n_stocks=5, cost_bps=5, regime_gate=False r-short-term-reversal-jp-growth-0032 | cost_bps: 5 n_stocks: 5 regime_gate: false | +0.75 | +0.11 | +0.89 | +2.33 |
reversal_days=1, holding_days=5, n_stocks=50, cost_bps=10, regime_gate=False r-short-term-reversal-jp-growth-0046 | cost_bps: 10 n_stocks: 50 regime_gate: false | -0.27 | -1.68 | +0.28 | +2.05 |
reversal_days=1, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=False r-short-term-reversal-jp-growth-0048 | cost_bps: 5 n_stocks: 5 regime_gate: false | -0.55 | -1.93 | -0.04 | +0.98 |
reversal_days=1, holding_days=10, n_stocks=50, cost_bps=5, regime_gate=True r-short-term-reversal-jp-growth-0061 | cost_bps: 5 n_stocks: 50 regime_gate: true | +0.27 | -0.36 | +0.65 | +0.11 |
reversal_days=2, holding_days=1, n_stocks=20, cost_bps=10, regime_gate=True r-short-term-reversal-jp-growth-0075 | cost_bps: 10 n_stocks: 20 regime_gate: true | -0.46 | -2.71 | +0.63 | -0.96 |
reversal_days=2, holding_days=3, n_stocks=20, cost_bps=5, regime_gate=True r-short-term-reversal-jp-growth-0089 | cost_bps: 5 n_stocks: 20 regime_gate: true | +0.88 | -1.54 | +1.87 | +1.92 |
reversal_days=2, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=True r-short-term-reversal-jp-growth-0103 | cost_bps: 10 n_stocks: 10 regime_gate: true | +0.30 | -3.16 | +1.14 | +1.62 |
reversal_days=2, holding_days=10, n_stocks=10, cost_bps=5, regime_gate=True r-short-term-reversal-jp-growth-0117 | cost_bps: 5 n_stocks: 10 regime_gate: true | +0.46 | -1.97 | +1.04 | +8.49 |
reversal_days=3, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True r-short-term-reversal-jp-growth-0131 | cost_bps: 10 n_stocks: 5 regime_gate: true | +0.48 | -2.98 | +1.45 | +0.16 |
reversal_days=3, holding_days=3, n_stocks=5, cost_bps=5, regime_gate=True r-short-term-reversal-jp-growth-0145 | cost_bps: 5 n_stocks: 5 regime_gate: true | +0.89 | -3.23 | +1.89 | +1.19 |
reversal_days=3, holding_days=3, n_stocks=50, cost_bps=10, regime_gate=True r-short-term-reversal-jp-growth-0159 | cost_bps: 10 n_stocks: 50 regime_gate: true | -0.42 | -1.65 | +0.16 | +0.67 |
reversal_days=3, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=True r-short-term-reversal-jp-growth-0173 | cost_bps: 5 n_stocks: 50 regime_gate: true | +0.14 | -1.83 | +0.96 | +1.63 |
reversal_days=3, holding_days=10, n_stocks=20, cost_bps=10, regime_gate=True r-short-term-reversal-jp-growth-0187 | cost_bps: 10 n_stocks: 20 regime_gate: true | +0.64 | -0.64 | +0.82 | +3.38 |
reversal_days=5, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=True r-short-term-reversal-jp-growth-0201 | cost_bps: 5 n_stocks: 20 regime_gate: true | +0.06 | -2.59 | +1.14 | +0.97 |
reversal_days=5, holding_days=3, n_stocks=5, cost_bps=5, regime_gate=False r-short-term-reversal-jp-growth-0208 | cost_bps: 5 n_stocks: 5 regime_gate: false | +2.07 | +1.46 | +2.29 | +3.65 |
reversal_days=5, holding_days=3, n_stocks=20, cost_bps=5, regime_gate=False r-short-term-reversal-jp-growth-0216 | cost_bps: 5 n_stocks: 20 regime_gate: false | +0.78 | -0.23 | +1.43 | +1.05 |
reversal_days=5, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=False r-short-term-reversal-jp-growth-0230 | cost_bps: 10 n_stocks: 10 regime_gate: false | +0.48 | -0.27 | +0.70 | +2.13 |
reversal_days=5, holding_days=10, n_stocks=10, cost_bps=5, regime_gate=False r-short-term-reversal-jp-growth-0244 | cost_bps: 5 n_stocks: 10 regime_gate: false | -0.18 | -2.07 | +0.28 | +2.56 |
reversal_days=10, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False r-short-term-reversal-jp-growth-0256 | cost_bps: 5 n_stocks: 5 regime_gate: false | +1.08 | -0.10 | +1.25 | +5.60 |
reversal_days=10, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True r-short-term-reversal-jp-growth-0259 | cost_bps: 10 n_stocks: 5 regime_gate: true | +0.59 | -2.38 | +1.03 | +5.34 |
reversal_days=10, holding_days=1, n_stocks=50, cost_bps=10, regime_gate=True r-short-term-reversal-jp-growth-0271 | cost_bps: 10 n_stocks: 50 regime_gate: true | -1.51 | -2.49 | -1.33 | +3.36 |
reversal_days=10, holding_days=3, n_stocks=5, cost_bps=10, regime_gate=False r-short-term-reversal-jp-growth-0274 | cost_bps: 10 n_stocks: 5 regime_gate: false | +1.14 | +0.11 | +1.35 | +3.61 |
reversal_days=10, holding_days=5, n_stocks=5, cost_bps=5, regime_gate=False r-short-term-reversal-jp-growth-0288 | cost_bps: 5 n_stocks: 5 regime_gate: false | +0.83 | -0.15 | +0.98 | +3.84 |
reversal_days=10, holding_days=5, n_stocks=50, cost_bps=10, regime_gate=False r-short-term-reversal-jp-growth-0302 | cost_bps: 10 n_stocks: 50 regime_gate: false | -0.82 | -2.16 | -0.49 | +2.98 |
対象ユニバース
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-24T02:22:14