Short-Term Reversal (JP Growth Stocks)
slug: short-term-reversal-jp-growth
performance summary
Sharpe (median)
+0.30
Max DD
-22.4%
Win rate
—
Alpha (ann.)
—
p-value
0.36
backtest period: 2022-01-24 → 2026-06-08
Sharpe across 320 grid runs:median 0.30best 1.98 (not representative)worst -1.53p25–p75 -0.07–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.30, best=1.98. Primary failure mode: no_edge.
Facts (7)
Average monthly return correlation with other strategies in DOWN regime: -0.22
Pairwise Pearson correlation of monthly returns across 42 strategies, filtered to DOWN regime months (N=3, N225 < SMA20 < SMA60)
Average monthly return correlation with other strategies (full period): -0.08
Pairwise Pearson correlation of monthly returns across 42 strategies, full backtest period
Best grid Sharpe ratio is 1.98 (p=4.6e-05).
period 2022-01-24–2026-06-08; 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.30.
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.95 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.10 | +0.12 | +1.75 | +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.76 | -1.85 | +1.75 | +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.90 | -0.05 | +1.53 | +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.57 | -2.00 | +1.53 | +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.11 | +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.87 | +0.48 | +0.95 | +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.67 | +0.11 | +0.77 | +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.30 | -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.69 | -2.51 | -0.09 | +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.39 | -0.12 | +0.74 | +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.51 | -2.71 | +0.71 | -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.90 | -1.54 | +1.99 | +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.21 | +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.67 | -1.67 | +1.27 | +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.25 | -2.98 | +1.29 | +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.82 | -3.23 | +1.90 | +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.49 | -1.65 | +0.09 | +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.09 | -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.91 | -0.40 | +1.15 | +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.03 | -2.59 | +1.13 | +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 | +1.98 | +1.46 | +2.16 | +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.77 | -0.23 | +1.48 | +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.36 | -0.27 | +0.52 | +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.22 | -2.07 | +0.20 | +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.14 | -0.10 | +1.38 | +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.62 | -2.38 | +1.15 | +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.53 | -2.49 | -1.34 | +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.30 | +0.11 | +1.70 | +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.87 | -0.15 | +1.07 | +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.83 | -2.16 | -0.48 | +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-07-27T03:36:14