qbuntuqbuntu
rejectedno_edge· equity· gap· intraday· mean-reversion

Gap Reversal (JP All Stocks)

slug: gap-reversal-short-jp-all

Gap Reversal (JP All Stocks) backtest. Median Sharpe across 1,728 parameter sets is -0.74. p-value is 0.11. Max DD is -4.6%. Period: 2022-01-07 to 2026-09-14. Best Sharpe +0.63 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.

What was tested

Gap reversal is a short-horizon bet that an opening gap fills. The gap is easy to see. After costs, only the median counts. A large best Sharpe with a negative median stays rejected.

Performance summary

Sharpe (median)
-0.74
Max DD
-4.6%
Win rate
—
Alpha (ann.)
—
p-value
0.11
backtest period: 2022-01-07 → 2026-09-14
Sharpe across 1728 grid runs:median -0.74best 0.63 (not representative)worst -1.74p25–p75 -1.09–-0.18

Hypothesis

Overnight gaps across all Japanese stocks tend to reverse. Testing the same gap-reversal signal on the full universe.

Why it didn't work

Across 1728 grid combinations, median Sharpe=-0.74, best=0.63. Primary failure mode: no_edge.

Facts (5)

Best grid Sharpe ratio is 0.63 (p=0.18).
period 2022-01-07–2026-09-14; cost=3bps; side=LONG
sharpe_ratio0.63
Median Sharpe across 1728 grid runs is -0.74.
Full grid of 1728 parameter combinations.
sharpe_ratio-0.74
Median Sharpe in DOWN regime is -2.06 across 1728 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-2.06
Median Sharpe in FLAT regime is -2.89 across 1728 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-2.89
Median Sharpe in UP regime is -8.87 across 1728 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio-8.87

Runs (30)

runparamssharpeUPFLATDOWN
top_n=10, min_gap_size=0.03, hold_days=1, side=SHORT, cost_bps=3
r-gap-reversal-short-jp-all-0000
side: "SHORT"
top_n: 10
cost_bps: 3
-0.96-0.35-2.33-4.38
top_n=10, min_gap_size=0.03, hold_days=1, side=SHORT, cost_bps=5
r-gap-reversal-short-jp-all-0001
side: "SHORT"
top_n: 10
cost_bps: 5
-1.01-0.49-2.47-4.49
top_n=10, min_gap_size=0.03, hold_days=1, side=SHORT, cost_bps=10
r-gap-reversal-short-jp-all-0002
side: "SHORT"
top_n: 10
cost_bps: 10
-1.14-0.84-2.81-4.75
top_n=10, min_gap_size=0.03, hold_days=1, side=BOTH, cost_bps=3
r-gap-reversal-short-jp-all-0006
side: "BOTH"
top_n: 10
cost_bps: 3
-1.11-2.84-2.67+0.80
top_n=10, min_gap_size=0.03, hold_days=1, regime_gate=nikkei-sma20, side=SHORT, cost_bps=3
r-gap-reversal-short-jp-all-0009
side: "SHORT"
top_n: 10
cost_bps: 3
-1.00—-2.33-4.38
top_n=10, min_gap_size=0.03, hold_days=1, regime_gate=nikkei-sma60, side=SHORT, cost_bps=3
r-gap-reversal-short-jp-all-0018
side: "SHORT"
top_n: 10
cost_bps: 3
-0.65+5.08-1.87-4.38
top_n=10, min_gap_size=0.03, hold_days=5, side=SHORT, cost_bps=3
r-gap-reversal-short-jp-all-0081
side: "SHORT"
top_n: 10
cost_bps: 3
-1.69-3.55-3.75-9.23
top_n=10, min_gap_size=0.03, hold_days=5, side=SHORT, cost_bps=10
r-gap-reversal-short-jp-all-0083
side: "SHORT"
top_n: 10
cost_bps: 10
-1.74-3.66-3.91-9.42
top_n=10, min_gap_size=0.03, hold_days=5, regime_gate=nikkei-sma20, side=SHORT, cost_bps=10
r-gap-reversal-short-jp-all-0092
side: "SHORT"
top_n: 10
cost_bps: 10
-1.59—-3.91-9.42
top_n=10, min_gap_size=0.05, hold_days=3, regime_gate=nikkei-sma20, side=BOTH, cost_bps=3
r-gap-reversal-short-jp-all-0177
side: "BOTH"
top_n: 10
cost_bps: 3
-0.97-6.02-2.98-2.69
top_n=10, min_gap_size=0.07, hold_days=2, regime_gate=nikkei-sma60, side=SHORT, cost_bps=5
r-gap-reversal-short-jp-all-0262
side: "SHORT"
top_n: 10
cost_bps: 5
-1.09-53.28-5.94-11.80
top_n=10, min_gap_size=0.07, hold_days=5, side=LONG, cost_bps=3
r-gap-reversal-short-jp-all-0300
side: "LONG"
top_n: 10
cost_bps: 3
+0.63-13.21+4.10+15.61
top_n=10, min_gap_size=0.1, hold_days=1, side=SHORT, cost_bps=3
r-gap-reversal-short-jp-all-0324
side: "SHORT"
top_n: 10
cost_bps: 3
-0.11+7.65+3.91-5.73
top_n=10, min_gap_size=0.1, hold_days=1, regime_gate=nikkei-sma60, side=BOTH, cost_bps=5
r-gap-reversal-short-jp-all-0349
side: "BOTH"
top_n: 10
cost_bps: 5
-0.49-6.48+3.46-4.79
top_n=20, min_gap_size=0.03, hold_days=1, side=SHORT, cost_bps=10
r-gap-reversal-short-jp-all-0434
side: "SHORT"
top_n: 20
cost_bps: 10
-1.14-0.84-2.81-4.75
top_n=20, min_gap_size=0.03, hold_days=5, side=BOTH, cost_bps=3
r-gap-reversal-short-jp-all-0519
side: "BOTH"
top_n: 20
cost_bps: 3
-0.85-3.84-1.89+1.73
top_n=20, min_gap_size=0.05, hold_days=3, regime_gate=nikkei-sma20, side=SHORT, cost_bps=5
r-gap-reversal-short-jp-all-0604
side: "SHORT"
top_n: 20
cost_bps: 5
-1.08—-4.36-8.38
top_n=20, min_gap_size=0.07, hold_days=2, regime_gate=nikkei-sma20, side=LONG, cost_bps=10
r-gap-reversal-short-jp-all-0689
side: "LONG"
top_n: 20
cost_bps: 10
+0.12-13.14-1.05+9.64
top_n=20, min_gap_size=0.1, hold_days=1, regime_gate=nikkei-sma60, side=SHORT, cost_bps=3
r-gap-reversal-short-jp-all-0774
side: "SHORT"
top_n: 20
cost_bps: 3
-0.10—+3.91-5.73
top_n=20, min_gap_size=0.1, hold_days=5, regime_gate=nikkei-sma60, side=LONG, cost_bps=5
r-gap-reversal-short-jp-all-0859
side: "LONG"
top_n: 20
cost_bps: 5
+0.53-12.11+2.96+12.56
top_n=50, min_gap_size=0.03, hold_days=3, regime_gate=nikkei-sma60, side=BOTH, cost_bps=10
r-gap-reversal-short-jp-all-0944
side: "BOTH"
top_n: 50
cost_bps: 10
-1.11-5.31-1.65-2.46
top_n=50, min_gap_size=0.05, hold_days=3, side=LONG, cost_bps=3
r-gap-reversal-short-jp-all-1029
side: "LONG"
top_n: 50
cost_bps: 3
-0.07-6.02+0.79+7.72
top_n=50, min_gap_size=0.07, hold_days=2, side=BOTH, cost_bps=5
r-gap-reversal-short-jp-all-1114
side: "BOTH"
top_n: 50
cost_bps: 5
-0.77-8.97-4.49+1.54
top_n=50, min_gap_size=0.1, hold_days=1, regime_gate=nikkei-sma20, side=SHORT, cost_bps=10
r-gap-reversal-short-jp-all-1199
side: "SHORT"
top_n: 50
cost_bps: 10
-0.29—+3.44-5.96
top_n=50, min_gap_size=0.1, hold_days=5, regime_gate=nikkei-sma20, side=BOTH, cost_bps=3
r-gap-reversal-short-jp-all-1284
side: "BOTH"
top_n: 50
cost_bps: 3
+0.03-12.03-2.53+4.47
top_n=100, min_gap_size=0.03, hold_days=1, side=SHORT, cost_bps=3
r-gap-reversal-short-jp-all-1296
side: "SHORT"
top_n: 100
cost_bps: 3
-0.96-0.35-2.33-4.38
top_n=100, min_gap_size=0.03, hold_days=3, regime_gate=nikkei-sma60, side=SHORT, cost_bps=10
r-gap-reversal-short-jp-all-1370
side: "SHORT"
top_n: 100
cost_bps: 10
-1.28-8.79-2.81-8.17
top_n=100, min_gap_size=0.05, hold_days=2, regime_gate=nikkei-sma60, side=BOTH, cost_bps=3
r-gap-reversal-short-jp-all-1455
side: "BOTH"
top_n: 100
cost_bps: 3
-0.95-9.80-3.51+1.76
top_n=100, min_gap_size=0.07, hold_days=2, side=SHORT, cost_bps=5
r-gap-reversal-short-jp-all-1540
side: "SHORT"
top_n: 100
cost_bps: 5
-1.15-8.23-5.94-11.80
top_n=100, min_gap_size=0.1, hold_days=1, side=LONG, cost_bps=10
r-gap-reversal-short-jp-all-1625
side: "LONG"
top_n: 100
cost_bps: 10
-0.76-14.55+2.31-3.27

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-24T21:54:26

Related strategies