Short-Term Reversal (JP Growth Stocks)
slug: short-term-reversal-jp-growth
Short-Term Reversal (JP Growth Stocks) backtest. Median Sharpe across 320 parameter sets is +0.33. p-value is 0.34. Max DD is -23.3%. Period: 2022-01-24 to 2026-09-14. Best Sharpe +2.07 is not the representative figure.
Verdict: marginal. Some parameter set has a p-value under 0.10, but the median itself misses promising (Sharpe > 0.5 and p-value < 0.05). Primary reason: no_edge. It is not regime, frequency, or cost, and the median does not clear the bar.
Performance summary
Sharpe (median)
+0.33
Max DD
-23.3%
Win rate
—
Alpha (ann.)
—
p-value
0.34
backtest period: 2022-01-24 → 2026-09-14
Sharpe across 320 grid runs:median 0.33best 2.07 (not representative)worst -1.51p25–p75 -0.06–0.64
Hypothesis
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.
Why it didn't work
Across 320 grid combinations, median Sharpe=0.33, best=2.07. Primary failure mode: no_edge.
Facts (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.
Runs (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 |
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-09-24T02:22:14