qbuntuqbuntu
rejectedno_edge· equity· anomaly· calendar· seasonal

Calendar Effects (JP All Stocks)

slug: calendar-effects-jp-all

Calendar Effects (JP All Stocks) backtest. Median Sharpe across 192 parameter sets is -0.43. p-value is 0.23. Max DD is -24.2%. Period: 2022-01-18 to 2026-09-18. Best Sharpe +4.25 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.43
Max DD
-24.2%
Win rate
—
Alpha (ann.)
—
p-value
0.23
backtest period: 2022-01-18 → 2026-09-18
Sharpe across 192 grid runs:median -0.43best 4.25 (not representative)worst -4.29p25–p75 -1.56–0.70

Hypothesis

Tests well-known calendar anomalies: Halloween effect, January effect, Turn-of-Month, and Day-of-Week effects on the full Japanese stock universe.

Why it didn't work

Across 192 grid combinations, median Sharpe=-0.43, best=4.25. Primary failure mode: no_edge.

Facts (5)

Best grid Sharpe ratio is 4.25 (p=0.093).
period 2022-01-18–2026-09-18; cost=5bps
sharpe_ratio4.25
Median Sharpe across 192 grid runs is -0.43.
Full grid of 192 parameter combinations.
sharpe_ratio-0.43
Median Sharpe in DOWN regime is -1.11 across 192 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-1.11
Median Sharpe in FLAT regime is -0.05 across 192 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.05
Median Sharpe in UP regime is -0.34 across 192 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio-0.34

Runs (30)

runparamssharpeUPFLATDOWN
effect=halloween, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-calendar-effects-jp-all-0000
effect: "halloween"
cost_bps: 5
n_stocks: 5
-0.73-0.50-0.30-2.09
effect=halloween, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-calendar-effects-jp-all-0001
effect: "halloween"
cost_bps: 5
n_stocks: 5
-0.96-1.21-0.30-2.09
effect=halloween, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-calendar-effects-jp-all-0002
effect: "halloween"
cost_bps: 10
n_stocks: 5
-1.56-1.39-1.15-2.75
effect=halloween, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True
r-calendar-effects-jp-all-0003
effect: "halloween"
cost_bps: 10
n_stocks: 5
-1.76-2.03-1.15-2.75
effect=halloween, holding_days=1, n_stocks=20, cost_bps=10, regime_gate=True
r-calendar-effects-jp-all-0011
effect: "halloween"
cost_bps: 10
n_stocks: 20
-1.75-1.98-1.04-3.09
effect=halloween, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=False
r-calendar-effects-jp-all-0012
effect: "halloween"
cost_bps: 5
n_stocks: 50
-0.98-1.30-0.04-2.49
effect=halloween, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=False
r-calendar-effects-jp-all-0020
effect: "halloween"
cost_bps: 5
n_stocks: 10
-1.32-0.34-0.46-3.89
effect=halloween, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=False
r-calendar-effects-jp-all-0028
effect: "halloween"
cost_bps: 5
n_stocks: 50
-1.48-1.83+0.25-3.46
effect=halloween, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False
r-calendar-effects-jp-all-0032
effect: "halloween"
cost_bps: 5
n_stocks: 5
+0.01+0.27+0.14-0.76
effect=halloween, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=True
r-calendar-effects-jp-all-0037
effect: "halloween"
cost_bps: 5
n_stocks: 10
-0.09+0.37+0.24-1.28
effect=halloween, holding_days=20, n_stocks=50, cost_bps=5, regime_gate=True
r-calendar-effects-jp-all-0045
effect: "halloween"
cost_bps: 5
n_stocks: 50
+0.01+0.31+0.36-1.14
effect=january, holding_days=1, n_stocks=10, cost_bps=5, regime_gate=True
r-calendar-effects-jp-all-0053
effect: "january"
cost_bps: 5
n_stocks: 10
-0.98-3.14+1.59+1.20
effect=january, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=True
r-calendar-effects-jp-all-0061
effect: "january"
cost_bps: 5
n_stocks: 50
-0.53-1.72+2.28-0.19
effect=january, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=True
r-calendar-effects-jp-all-0069
effect: "january"
cost_bps: 5
n_stocks: 10
+1.29+67.59——
effect=january, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=True
r-calendar-effects-jp-all-0077
effect: "january"
cost_bps: 5
n_stocks: 50
+1.26+5.88——
effect=january, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=True
r-calendar-effects-jp-all-0085
effect: "january"
cost_bps: 5
n_stocks: 10
+1.17+0.68——
effect=january, holding_days=20, n_stocks=50, cost_bps=5, regime_gate=False
r-calendar-effects-jp-all-0092
effect: "january"
cost_bps: 5
n_stocks: 50
+4.25+18.98——
effect=january, holding_days=20, n_stocks=50, cost_bps=10, regime_gate=False
r-calendar-effects-jp-all-0094
effect: "january"
cost_bps: 10
n_stocks: 50
+4.07+18.11——
effect=turn_of_month, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-calendar-effects-jp-all-0096
effect: "turn_of_month"
cost_bps: 5
n_stocks: 5
-1.00-0.39-1.52-1.16
effect=turn_of_month, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=True
r-calendar-effects-jp-all-0103
effect: "turn_of_month"
cost_bps: 10
n_stocks: 10
-2.38-1.45-2.45-2.84
effect=turn_of_month, holding_days=1, n_stocks=50, cost_bps=10, regime_gate=True
r-calendar-effects-jp-all-0111
effect: "turn_of_month"
cost_bps: 10
n_stocks: 50
-3.02-1.99-2.84-4.07
effect=turn_of_month, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=True
r-calendar-effects-jp-all-0119
effect: "turn_of_month"
cost_bps: 10
n_stocks: 10
+0.20+0.57+0.90-0.90
effect=turn_of_month, holding_days=5, n_stocks=50, cost_bps=10, regime_gate=True
r-calendar-effects-jp-all-0127
effect: "turn_of_month"
cost_bps: 10
n_stocks: 50
-0.69-0.03-0.70-1.48
effect=turn_of_month, holding_days=20, n_stocks=10, cost_bps=10, regime_gate=True
r-calendar-effects-jp-all-0135
effect: "turn_of_month"
cost_bps: 10
n_stocks: 10
+1.12+0.61+0.99+2.85
effect=turn_of_month, holding_days=20, n_stocks=50, cost_bps=10, regime_gate=True
r-calendar-effects-jp-all-0143
effect: "turn_of_month"
cost_bps: 10
n_stocks: 50
+0.89+0.53+0.72+2.43
effect=day_of_week, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-calendar-effects-jp-all-0144
effect: "day_of_week"
cost_bps: 5
n_stocks: 5
-2.80-1.79-4.33-2.11
effect=day_of_week, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True
r-calendar-effects-jp-all-0147
effect: "day_of_week"
cost_bps: 10
n_stocks: 5
-4.29-4.27-5.24-2.74
effect=day_of_week, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=True
r-calendar-effects-jp-all-0153
effect: "day_of_week"
cost_bps: 5
n_stocks: 20
-3.22-3.20-4.28-1.29
effect=day_of_week, holding_days=5, n_stocks=5, cost_bps=5, regime_gate=True
r-calendar-effects-jp-all-0161
effect: "day_of_week"
cost_bps: 5
n_stocks: 5
+1.44+0.04+1.16+5.17
effect=day_of_week, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=True
r-calendar-effects-jp-all-0169
effect: "day_of_week"
cost_bps: 5
n_stocks: 20
-0.44-0.97-0.72+1.28

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:55:56

Related strategies