qbuntuqbuntu

Earnings Reversal (JP All Stocks)

slug: earnings-reversal-short-jp-all

Earnings Reversal (JP All Stocks) backtest. Median Sharpe across 2,880 parameter sets is -0.79. p-value is 0.18. Max DD is -83.4%. Period: 2023-12-12 to 2026-05-29. Best Sharpe +1.65 is not the representative figure.

Verdict: rejected. The median reaches neither promising (Sharpe > 0.5 and p-value < 0.05) nor marginal (Sharpe > 0.05 and best p-value < 0.10). Primary reason: no_edge. It is not regime, frequency, or cost, and the median does not clear the bar.

Performance summary

Sharpe (median)
-0.79
Max DD
-83.4%
Win rate
—
Alpha (ann.)
—
p-value
0.18
backtest period: 2023-12-12 → 2026-05-29
Sharpe across 2880 grid runs:median -0.79best 1.65 (not representative)worst -5.87p25–p75 -2.72–0.62

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=-0.79, best=1.65. Primary failure mode: no_edge.

Facts (5)

Best grid Sharpe ratio is 1.65 (p=0.032).
period 2023-12-12–2026-05-29; cost=5bps; side=SHORT_ONLY
sharpe_ratio1.65
Median Sharpe across 2880 grid runs is -0.79.
Full grid of 2880 parameter combinations.
sharpe_ratio-0.79
Median Sharpe in DOWN regime is -2.86 across 2880 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-2.86
Median Sharpe in FLAT regime is -1.11 across 2880 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-1.11
Median Sharpe in UP regime is 0.02 across 2880 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio0.02

Runs (30)

runparamssharpeUPFLATDOWN
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
+1.22+1.68+0.92+0.29
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
-2.54-0.48-4.70-4.06
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
+0.67+1.63+0.01-2.15
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
+0.86+1.32+0.60-0.13
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
+1.10+1.44+0.89+0.45
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
-0.74+0.52-2.07-3.76
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
+1.03+1.42+0.75+0.38
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.93-1.31-6.85-6.50
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
-1.33+0.33-2.48-5.14
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
+1.42+2.10+0.28+2.60
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
-5.53-2.67-8.60-7.41
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
-0.86-0.43-0.93-3.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
+1.01+1.21+1.49-1.40
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
-4.69-3.70-5.64-5.12
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
-1.17-0.47-1.30-4.80
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
+1.08+0.68+1.54+1.52
holding_period=2, reaction_threshold=0.15, n_positions=10, cost_bps=20, side=LONG_ONLY
r-earnings-reversal-short-jp-all-1342
side: "LONG_ONLY"
cost_bps: 20
n_positions: 10
-5.87-4.23-7.24-7.31
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
-0.91-0.04-1.64-2.89
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
+0.26+0.47+0.30-0.93
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
-3.43-2.35-4.20-4.41
holding_period=3, reaction_threshold=0.07, n_positions=1, cost_bps=5, side=BOTH
r-earnings-reversal-short-jp-all-1826
side: "BOTH"
cost_bps: 5
n_positions: 1
+0.35+0.33+0.98-1.62
holding_period=3, reaction_threshold=0.1, n_positions=10, cost_bps=5, side=SHORT_ONLY
r-earnings-reversal-short-jp-all-1956
side: "SHORT_ONLY"
cost_bps: 5
n_positions: 10
+0.98+1.18+0.93+0.36
holding_period=3, reaction_threshold=0.15, n_positions=3, cost_bps=20, side=LONG_ONLY
r-earnings-reversal-short-jp-all-2086
side: "LONG_ONLY"
cost_bps: 20
n_positions: 3
-3.73-2.01-4.43-7.43
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.10+1.03+1.73-0.20
holding_period=5, reaction_threshold=0.03, n_positions=1, cost_bps=20, side=SHORT_ONLY
r-earnings-reversal-short-jp-all-2217
side: "SHORT_ONLY"
cost_bps: 20
n_positions: 1
+0.90+0.84+1.51-0.39
holding_period=5, reaction_threshold=0.05, n_positions=10, cost_bps=15, side=LONG_ONLY
r-earnings-reversal-short-jp-all-2347
side: "LONG_ONLY"
cost_bps: 15
n_positions: 10
-2.69-1.38-3.68-4.02
holding_period=5, reaction_threshold=0.07, n_positions=5, cost_bps=10, side=BOTH
r-earnings-reversal-short-jp-all-2477
side: "BOTH"
cost_bps: 10
n_positions: 5
-0.81-0.61-1.01-2.43
holding_period=5, reaction_threshold=0.1, n_positions=3, cost_bps=10, side=SHORT_ONLY
r-earnings-reversal-short-jp-all-2607
side: "SHORT_ONLY"
cost_bps: 10
n_positions: 3
+1.10+0.93+2.35-1.00
holding_period=5, reaction_threshold=0.15, n_positions=1, cost_bps=5, side=LONG_ONLY
r-earnings-reversal-short-jp-all-2737
side: "LONG_ONLY"
cost_bps: 5
n_positions: 1
-2.31-0.61-3.61-5.14
holding_period=5, reaction_threshold=0.15, n_positions=10, cost_bps=5, side=SHORT_ONLY
r-earnings-reversal-short-jp-all-2772
side: "SHORT_ONLY"
cost_bps: 5
n_positions: 10
+1.65+1.23+2.99+0.41

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-09-26T05:50:51

Related strategies