Earnings Reversal (JP All Stocks)
slug: earnings-reversal-short-jp-all
performance summary
Sharpe (median)
-3.15
Max DD
-57.0%
Win rate
—
Alpha (ann.)
—
p-value
0.11
backtest period: 2023-12-18 → 2026-05-19
Sharpe across 2880 grid runs:median -3.15best -0.76 (not representative)worst -7.82p25–p75 -4.09–-2.23
Hypothesis
Post-earnings price reactions tend to overshoot. Testing on the full Japanese stock universe.
Why it didn't work
Across 2880 grid combinations, median Sharpe=-3.15, best=-0.76. Primary failure mode: no_edge.
Facts (5)
Best grid Sharpe ratio is -0.76 (p=0.66).
period 2023-12-18–2026-05-19; cost=5bps; side=LONG_ONLY
cite ↗ /cite/earnings-reversal-short-jp-all-fact-best-sharpevia r-earnings-reversal-short-jp-all-1741
Median Sharpe across 2880 grid runs is -3.15.
Full grid of 2880 parameter combinations.
Median Sharpe in DOWN regime is 4.09 across 2880 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
Median Sharpe in FLAT regime is -5.26 across 2880 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
Median Sharpe in UP regime is -2.86 across 2880 runs.
Regime=UP, N225 SMA20/SMA60 classification.
Runs (30)
| run | params | sharpe | UP | FLAT | DOWN |
|---|---|---|---|---|---|
holding_period=1, reaction_threshold=0.03, n_positions=1, cost_bps=5, side=SHORT_ONLY r-earnings-reversal-short-jp-all-0000 | side: "SHORT_ONLY" cost_bps: 5 n_positions: 1 | -4.02 | -3.44 | -5.40 | -1.97 |
holding_period=1, reaction_threshold=0.03, n_positions=1, cost_bps=5, side=LONG_ONLY r-earnings-reversal-short-jp-all-0001 | side: "LONG_ONLY" cost_bps: 5 n_positions: 1 | -3.09 | -4.49 | -3.86 | +8.35 |
holding_period=1, reaction_threshold=0.03, n_positions=1, cost_bps=5, side=BOTH r-earnings-reversal-short-jp-all-0002 | side: "BOTH" cost_bps: 5 n_positions: 1 | -3.84 | -4.09 | -5.80 | +0.37 |
holding_period=1, reaction_threshold=0.03, n_positions=1, cost_bps=20, side=SHORT_ONLY r-earnings-reversal-short-jp-all-0009 | side: "SHORT_ONLY" cost_bps: 20 n_positions: 1 | -4.36 | -3.89 | -5.71 | -2.22 |
holding_period=1, reaction_threshold=0.03, n_positions=10, cost_bps=5, side=SHORT_ONLY r-earnings-reversal-short-jp-all-0036 | side: "SHORT_ONLY" cost_bps: 5 n_positions: 10 | -4.03 | -2.90 | -5.71 | -0.16 |
holding_period=1, reaction_threshold=0.03, n_positions=10, cost_bps=5, side=BOTH r-earnings-reversal-short-jp-all-0134 | side: "BOTH" cost_bps: 5 n_positions: 10 | -3.52 | -2.64 | -5.70 | +2.06 |
holding_period=1, reaction_threshold=0.05, n_positions=5, cost_bps=5, side=SHORT_ONLY r-earnings-reversal-short-jp-all-0264 | side: "SHORT_ONLY" cost_bps: 5 n_positions: 5 | -3.64 | -3.44 | -4.91 | +0.26 |
holding_period=1, reaction_threshold=0.07, n_positions=1, cost_bps=20, side=LONG_ONLY r-earnings-reversal-short-jp-all-0394 | side: "LONG_ONLY" cost_bps: 20 n_positions: 1 | -3.71 | -4.82 | -5.33 | +17.66 |
holding_period=1, reaction_threshold=0.1, n_positions=10, cost_bps=15, side=BOTH r-earnings-reversal-short-jp-all-0524 | side: "BOTH" cost_bps: 15 n_positions: 10 | -4.85 | -5.67 | -7.17 | +5.91 |
holding_period=1, reaction_threshold=0.15, n_positions=1, cost_bps=5, side=SHORT_ONLY r-earnings-reversal-short-jp-all-0576 | side: "SHORT_ONLY" cost_bps: 5 n_positions: 1 | -5.07 | -4.89 | -8.28 | +8.32 |
holding_period=1, reaction_threshold=0.15, n_positions=5, cost_bps=15, side=LONG_ONLY r-earnings-reversal-short-jp-all-0655 | side: "LONG_ONLY" cost_bps: 15 n_positions: 5 | -6.28 | -6.51 | -5.07 | — |
holding_period=2, reaction_threshold=0.03, n_positions=3, cost_bps=10, side=BOTH r-earnings-reversal-short-jp-all-0785 | side: "BOTH" cost_bps: 10 n_positions: 3 | -4.05 | -3.46 | -5.56 | -0.16 |
holding_period=2, reaction_threshold=0.05, n_positions=1, cost_bps=10, side=SHORT_ONLY r-earnings-reversal-short-jp-all-0915 | side: "SHORT_ONLY" cost_bps: 10 n_positions: 1 | -3.42 | -3.12 | -4.64 | -1.64 |
holding_period=2, reaction_threshold=0.07, n_positions=10, cost_bps=5, side=LONG_ONLY r-earnings-reversal-short-jp-all-1045 | side: "LONG_ONLY" cost_bps: 5 n_positions: 10 | -1.17 | -1.77 | -2.49 | +18.43 |
holding_period=2, reaction_threshold=0.1, n_positions=3, cost_bps=20, side=BOTH r-earnings-reversal-short-jp-all-1175 | side: "BOTH" cost_bps: 20 n_positions: 3 | -4.27 | -4.94 | -6.93 | +7.27 |
holding_period=2, reaction_threshold=0.15, n_positions=1, cost_bps=20, side=SHORT_ONLY r-earnings-reversal-short-jp-all-1305 | side: "SHORT_ONLY" cost_bps: 20 n_positions: 1 | -7.82 | -7.48 | -11.29 | +8.47 |
holding_period=2, reaction_threshold=0.15, n_positions=1, cost_bps=20, side=LONG_ONLY r-earnings-reversal-short-jp-all-1306 | side: "LONG_ONLY" cost_bps: 20 n_positions: 1 | -3.49 | -0.72 | -10.43 | — |
holding_period=2, reaction_threshold=0.15, n_positions=10, cost_bps=15, side=BOTH r-earnings-reversal-short-jp-all-1436 | side: "BOTH" cost_bps: 15 n_positions: 10 | -5.75 | -3.42 | -10.96 | +8.50 |
holding_period=3, reaction_threshold=0.03, n_positions=5, cost_bps=15, side=SHORT_ONLY r-earnings-reversal-short-jp-all-1566 | side: "SHORT_ONLY" cost_bps: 15 n_positions: 5 | -3.28 | -0.87 | -5.39 | +0.82 |
holding_period=3, reaction_threshold=0.05, n_positions=3, cost_bps=10, side=LONG_ONLY r-earnings-reversal-short-jp-all-1696 | side: "LONG_ONLY" cost_bps: 10 n_positions: 3 | -1.33 | -2.01 | -1.59 | +6.28 |
holding_period=3, reaction_threshold=0.07, n_positions=3, cost_bps=5, side=LONG_ONLY r-earnings-reversal-short-jp-all-1741 | side: "LONG_ONLY" cost_bps: 5 n_positions: 3 | -0.76 | -1.74 | -0.95 | +18.58 |
holding_period=3, reaction_threshold=0.07, n_positions=1, cost_bps=10, side=SHORT_ONLY r-earnings-reversal-short-jp-all-1827 | side: "SHORT_ONLY" cost_bps: 10 n_positions: 1 | -3.10 | -1.32 | -6.59 | +1.18 |
holding_period=3, reaction_threshold=0.1, n_positions=10, cost_bps=5, side=LONG_ONLY r-earnings-reversal-short-jp-all-1957 | side: "LONG_ONLY" cost_bps: 5 n_positions: 10 | -2.15 | -3.65 | -2.08 | +18.58 |
holding_period=3, reaction_threshold=0.15, n_positions=3, cost_bps=20, side=BOTH r-earnings-reversal-short-jp-all-2087 | side: "BOTH" cost_bps: 20 n_positions: 3 | -4.21 | -3.34 | -6.29 | +8.47 |
holding_period=5, reaction_threshold=0.03, n_positions=1, cost_bps=5, side=SHORT_ONLY r-earnings-reversal-short-jp-all-2160 | side: "SHORT_ONLY" cost_bps: 5 n_positions: 1 | -1.91 | +0.21 | -4.55 | +1.82 |
holding_period=5, reaction_threshold=0.03, n_positions=1, cost_bps=20, side=LONG_ONLY r-earnings-reversal-short-jp-all-2218 | side: "LONG_ONLY" cost_bps: 20 n_positions: 1 | -1.14 | -1.78 | -0.62 | +0.51 |
holding_period=5, reaction_threshold=0.05, n_positions=10, cost_bps=15, side=BOTH r-earnings-reversal-short-jp-all-2348 | side: "BOTH" cost_bps: 15 n_positions: 10 | -2.07 | -1.81 | -3.70 | +2.86 |
holding_period=5, reaction_threshold=0.07, n_positions=5, cost_bps=15, side=SHORT_ONLY r-earnings-reversal-short-jp-all-2478 | side: "SHORT_ONLY" cost_bps: 15 n_positions: 5 | -2.71 | -0.38 | -5.82 | +3.71 |
holding_period=5, reaction_threshold=0.1, n_positions=3, cost_bps=10, side=LONG_ONLY r-earnings-reversal-short-jp-all-2608 | side: "LONG_ONLY" cost_bps: 10 n_positions: 3 | -1.81 | -3.12 | -1.19 | +18.50 |
holding_period=5, reaction_threshold=0.15, n_positions=1, cost_bps=5, side=BOTH r-earnings-reversal-short-jp-all-2738 | side: "BOTH" cost_bps: 5 n_positions: 1 | -3.73 | -2.35 | -6.25 | -0.68 |
Target universe
Tokyo Stock Exchange all listed (Prime/Standard/Growth), ~3747 stocks
Related strategies
source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-07-27T03:36:48