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

ギャップ・リバーサル(東証全銘柄)のバックテスト

Gap Reversal (JP All Stocks)

slug: gap-reversal-short-jp-all

東証全銘柄(約3,747銘柄)でギャップ・リバーサルをバックテストした。1,728通りの中央値 Sharpe は -0.74。p-value は 0.11。Max DD は -4.6%。期間は 2022-01-07〜2026-09-14。最良 Sharpe +0.63 は代表値ではない。

判定は rejected。中央値は promising(Sharpe > 0.5 かつ p-value < 0.05)にも marginal(Sharpe > 0.05 かつ最良 p-value < 0.10)にも届いていない。主因は no_edge。レジーム・取引回数・コストには分類されず、中央値が採用ラインに届いていない。

何を検証したか

ギャップ・リバーサルは、窓を開けたあとにその隙間が埋まる方向へ取る短期の逆張りです。寄り付きのギャップは目立ちますが、取引コストを入れた中央値で残らなければ、見た目の反転は取れていません。最良 Sharpe が大きくても、中央値がマイナスなら判定は rejected のままです。

成績の中央値

Sharpe(中央値)
-0.74
Max DD
-4.6%
勝率
—
Alpha(年率)
—
p-value
0.11
期間: 2022-01-07 → 2026-09-14
1728通りの Sharpe:中央値 -0.74最良 0.63 (代表値ではない)最悪 -1.74p25–p75 -1.09–-0.18

仮説

原文は英語。

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

採用しなかった理由

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

検証ファクト (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

検証ラン (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

対象ユニバース

Tokyo Stock Exchange all listed (Prime/Standard/Growth), ~3747 stocks

関連する戦略

source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-09-24T21:54:26

関連する戦略