qbuntuqbuntu

Post-Earnings Announcement Drift (JP All Stocks)

slug: pead-jp-all
performance summary
Sharpe (median)
+0.96
Max DD
-39.0%
Win rate
Alpha (ann.)
p-value
0.24
backtest period: 2023-12-132026-05-25
Sharpe across 2304 grid runs:median 0.96best 2.24 (not representative)worst -0.27p25–p75 0.581.42

Hypothesis

Ball & Brown (1968): stocks with positive earnings surprises drift upward. Testing PEAD on the full Japanese stock universe.

Why it didn't work

Across 2304 grid combinations, median Sharpe=0.96, best=2.24. Primary failure mode: no_edge.

Facts (5)

Best grid Sharpe ratio is 2.24 (p=0.065).
period 2023-12-13–2026-05-25; cost=5bps; side=BOTH
sharpe_ratio2.24
Median Sharpe across 2304 grid runs is 0.96.
Full grid of 2304 parameter combinations.
sharpe_ratio0.96
Median Sharpe in DOWN regime is -0.07 across 2304 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-0.07
Median Sharpe in FLAT regime is 1.54 across 2304 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio1.54
Median Sharpe in UP regime is 0.55 across 2304 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio0.55

Runs (30)

runparamssharpeUPFLATDOWN
holding_period=5, surprise_threshold=0.01, n_positions=3, cost_bps=5, side=BOTH
r-pead-jp-all-0000
side: "BOTH"
cost_bps: 5
n_positions: 3
+1.73+1.38+2.67-1.16
holding_period=5, surprise_threshold=0.01, n_positions=3, cost_bps=5, side=LONG_ONLY
r-pead-jp-all-0001
side: "LONG_ONLY"
cost_bps: 5
n_positions: 3
+1.74-0.53+3.66-1.10
holding_period=5, surprise_threshold=0.01, n_positions=3, cost_bps=10, side=BOTH
r-pead-jp-all-0002
side: "BOTH"
cost_bps: 10
n_positions: 3
+1.64+1.27+2.60-1.24
holding_period=5, surprise_threshold=0.01, n_positions=3, cost_bps=20, side=BOTH
r-pead-jp-all-0006
side: "BOTH"
cost_bps: 20
n_positions: 3
+1.48+1.04+2.46-1.40
holding_period=5, surprise_threshold=0.01, n_positions=20, cost_bps=5, side=BOTH
r-pead-jp-all-0024
side: "BOTH"
cost_bps: 5
n_positions: 20
+1.59+1.00+2.67-1.16
holding_period=5, surprise_threshold=0.02, n_positions=5, cost_bps=20, side=BOTH
r-pead-jp-all-0110
side: "BOTH"
cost_bps: 20
n_positions: 5
+1.33+0.53+2.81-1.89
holding_period=5, surprise_threshold=0.05, n_positions=5, cost_bps=10, side=BOTH
r-pead-jp-all-0298
side: "BOTH"
cost_bps: 10
n_positions: 5
+1.54+1.81+2.65-3.24
holding_period=5, surprise_threshold=0.07, n_positions=3, cost_bps=5, side=BOTH
r-pead-jp-all-0384
side: "BOTH"
cost_bps: 5
n_positions: 3
+2.24+2.57+3.55-6.05
holding_period=5, surprise_threshold=0.07, n_positions=5, cost_bps=20, side=BOTH
r-pead-jp-all-0398
side: "BOTH"
cost_bps: 20
n_positions: 5
+1.98+2.22+3.36-6.29
holding_period=10, surprise_threshold=0.01, n_positions=10, cost_bps=5, side=LONG_ONLY
r-pead-jp-all-0497
side: "LONG_ONLY"
cost_bps: 5
n_positions: 10
+1.54+1.30+2.88-1.87
holding_period=10, surprise_threshold=0.02, n_positions=10, cost_bps=15, side=BOTH
r-pead-jp-all-0596
side: "BOTH"
cost_bps: 15
n_positions: 10
+1.34+1.57+1.72-0.40
holding_period=10, surprise_threshold=0.03, n_positions=10, cost_bps=20, side=LONG_ONLY
r-pead-jp-all-0695
side: "LONG_ONLY"
cost_bps: 20
n_positions: 10
+1.64+1.55+3.10-2.48
holding_period=10, surprise_threshold=0.05, n_positions=20, cost_bps=10, side=BOTH
r-pead-jp-all-0794
side: "BOTH"
cost_bps: 10
n_positions: 20
+1.10+2.34+1.10-2.36
holding_period=10, surprise_threshold=0.07, n_positions=20, cost_bps=15, side=LONG_ONLY
r-pead-jp-all-0893
side: "LONG_ONLY"
cost_bps: 15
n_positions: 20
+1.35+1.93+2.59-3.36
holding_period=20, surprise_threshold=0.01, n_positions=3, cost_bps=5, side=BOTH
r-pead-jp-all-0992
side: "BOTH"
cost_bps: 5
n_positions: 3
+0.92+0.77+1.21+0.56
holding_period=20, surprise_threshold=0.02, n_positions=3, cost_bps=10, side=LONG_ONLY
r-pead-jp-all-1091
side: "LONG_ONLY"
cost_bps: 10
n_positions: 3
+1.28+0.21+2.25+0.92
holding_period=20, surprise_threshold=0.03, n_positions=3, cost_bps=20, side=BOTH
r-pead-jp-all-1190
side: "BOTH"
cost_bps: 20
n_positions: 3
+0.85+0.60+1.32+0.15
holding_period=20, surprise_threshold=0.05, n_positions=5, cost_bps=5, side=LONG_ONLY
r-pead-jp-all-1289
side: "LONG_ONLY"
cost_bps: 5
n_positions: 5
+0.83+0.24+1.93-0.12
holding_period=20, surprise_threshold=0.07, n_positions=5, cost_bps=15, side=BOTH
r-pead-jp-all-1388
side: "BOTH"
cost_bps: 15
n_positions: 5
+0.63+1.10+1.06-1.53
holding_period=40, surprise_threshold=0.01, n_positions=5, cost_bps=20, side=LONG_ONLY
r-pead-jp-all-1487
side: "LONG_ONLY"
cost_bps: 20
n_positions: 5
+1.04+0.53+1.71+0.72
holding_period=40, surprise_threshold=0.02, n_positions=10, cost_bps=10, side=BOTH
r-pead-jp-all-1586
side: "BOTH"
cost_bps: 10
n_positions: 10
+0.25-0.27+0.28+1.97
holding_period=40, surprise_threshold=0.03, n_positions=10, cost_bps=15, side=LONG_ONLY
r-pead-jp-all-1685
side: "LONG_ONLY"
cost_bps: 15
n_positions: 10
+1.08+0.70+1.62+0.54
holding_period=40, surprise_threshold=0.05, n_positions=5, cost_bps=20, side=BOTH
r-pead-jp-all-1742
side: "BOTH"
cost_bps: 20
n_positions: 5
-0.27-0.50-0.27+0.37
holding_period=40, surprise_threshold=0.05, n_positions=20, cost_bps=5, side=LONG_ONLY
r-pead-jp-all-1785
side: "LONG_ONLY"
cost_bps: 5
n_positions: 20
+0.71+0.79+0.96-0.12
holding_period=40, surprise_threshold=0.07, n_positions=20, cost_bps=15, side=BOTH
r-pead-jp-all-1884
side: "BOTH"
cost_bps: 15
n_positions: 20
-0.18-0.08-0.10-0.67
holding_period=60, surprise_threshold=0.01, n_positions=3, cost_bps=5, side=BOTH
r-pead-jp-all-1920
side: "BOTH"
cost_bps: 5
n_positions: 3
+0.33+0.08-0.00+2.12
holding_period=60, surprise_threshold=0.01, n_positions=3, cost_bps=5, side=BOTH
r-pead-jp-all-1984
side: "BOTH"
cost_bps: 5
n_positions: 3
+0.33+0.08-0.00+2.12
holding_period=60, surprise_threshold=0.02, n_positions=3, cost_bps=10, side=LONG_ONLY
r-pead-jp-all-2083
side: "LONG_ONLY"
cost_bps: 10
n_positions: 3
+0.74+0.28+1.16+1.32
holding_period=60, surprise_threshold=0.03, n_positions=3, cost_bps=20, side=BOTH
r-pead-jp-all-2182
side: "BOTH"
cost_bps: 20
n_positions: 3
+0.47+0.30+0.19+1.97
holding_period=60, surprise_threshold=0.05, n_positions=5, cost_bps=5, side=LONG_ONLY
r-pead-jp-all-2281
side: "LONG_ONLY"
cost_bps: 5
n_positions: 5
+0.83+0.83+1.00+0.40

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:14

Related strategies