qbuntuqbuntu
rejectedno_edge· equity· anomaly· calendar· seasonal

Calendar Effects (JP Growth Stocks)

slug: calendar-effects-jp-growth
performance summary
Sharpe (median)
-0.53
Max DD
-36.7%
Win rate
Alpha (ann.)
p-value
0.26
backtest period: 2022-01-182026-06-09
Sharpe across 192 grid runs:median -0.53best 4.64 (not representative)worst -3.40p25–p75 -1.330.35

Hypothesis

Tests well-known calendar anomalies: Halloween effect (LONG Nov-Apr), January effect, Turn-of-Month (LONG last/first 3 days), and Day-of-Week effects in TSE Growth Market.

Why it didn't work

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

Facts (7)

Average monthly return correlation with other strategies in DOWN regime: -0.08
Pairwise Pearson correlation of monthly returns across 42 strategies, filtered to DOWN regime months (N=3, N225 < SMA20 < SMA60)
correlation-0.08
Average monthly return correlation with other strategies (full period): 0.04
Pairwise Pearson correlation of monthly returns across 42 strategies, full backtest period
correlation0.04
Best grid Sharpe ratio is 4.64 (p=0.077).
period 2022-01-18–2026-06-09; cost=5bps
sharpe_ratio4.64
Median Sharpe across 192 grid runs is -0.53.
Full grid of 192 parameter combinations.
sharpe_ratio-0.53
Median Sharpe in DOWN regime is -3.16 across 192 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-3.16
Median Sharpe in FLAT regime is -0.37 across 192 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.37
Median Sharpe in UP regime is -0.68 across 192 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio-0.68

Runs (30)

runparamssharpeUPFLATDOWN
effect=halloween, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-calendar-effects-jp-growth-0000
effect: "halloween"
cost_bps: 5
n_stocks: 5
+0.04+0.50+0.07-1.38
effect=halloween, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-calendar-effects-jp-growth-0001
effect: "halloween"
cost_bps: 5
n_stocks: 5
-0.35-1.51+0.07-1.38
effect=halloween, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-calendar-effects-jp-growth-0002
effect: "halloween"
cost_bps: 10
n_stocks: 5
-0.49-0.09-0.45-1.81
effect=halloween, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True
r-calendar-effects-jp-growth-0003
effect: "halloween"
cost_bps: 10
n_stocks: 5
-0.88-2.13-0.45-1.81
effect=halloween, holding_days=1, n_stocks=20, cost_bps=10, regime_gate=True
r-calendar-effects-jp-growth-0011
effect: "halloween"
cost_bps: 10
n_stocks: 20
-1.53-3.24-0.94-2.87
effect=halloween, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=False
r-calendar-effects-jp-growth-0012
effect: "halloween"
cost_bps: 5
n_stocks: 50
-0.59-0.44-0.46-1.78
effect=halloween, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=False
r-calendar-effects-jp-growth-0020
effect: "halloween"
cost_bps: 5
n_stocks: 10
-1.20-3.09-0.30-2.95
effect=halloween, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=False
r-calendar-effects-jp-growth-0028
effect: "halloween"
cost_bps: 5
n_stocks: 50
-1.28-2.52-0.36-4.91
effect=halloween, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False
r-calendar-effects-jp-growth-0032
effect: "halloween"
cost_bps: 5
n_stocks: 5
-0.60-1.21-0.45-1.37
effect=halloween, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=True
r-calendar-effects-jp-growth-0037
effect: "halloween"
cost_bps: 5
n_stocks: 10
-0.58-2.80-0.39-0.93
effect=halloween, holding_days=20, n_stocks=50, cost_bps=5, regime_gate=True
r-calendar-effects-jp-growth-0045
effect: "halloween"
cost_bps: 5
n_stocks: 50
-0.29-1.04-0.17-0.44
effect=january, holding_days=1, n_stocks=10, cost_bps=5, regime_gate=True
r-calendar-effects-jp-growth-0053
effect: "january"
cost_bps: 5
n_stocks: 10
+0.85-1.05+2.97
effect=january, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=True
r-calendar-effects-jp-growth-0061
effect: "january"
cost_bps: 5
n_stocks: 50
+0.50-0.66+1.63
effect=january, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=True
r-calendar-effects-jp-growth-0069
effect: "january"
cost_bps: 5
n_stocks: 10
-0.02+2.07-2.53
effect=january, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=True
r-calendar-effects-jp-growth-0077
effect: "january"
cost_bps: 5
n_stocks: 50
+0.43+1.36-0.18
effect=january, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=True
r-calendar-effects-jp-growth-0085
effect: "january"
cost_bps: 5
n_stocks: 10
+3.72+8.27+9.41
effect=january, holding_days=20, n_stocks=20, cost_bps=5, regime_gate=False
r-calendar-effects-jp-growth-0088
effect: "january"
cost_bps: 5
n_stocks: 20
+4.64+71.57+2.06
effect=january, holding_days=20, n_stocks=50, cost_bps=10, regime_gate=False
r-calendar-effects-jp-growth-0094
effect: "january"
cost_bps: 10
n_stocks: 50
+3.05+4.40+1.86
effect=turn_of_month, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-calendar-effects-jp-growth-0096
effect: "turn_of_month"
cost_bps: 5
n_stocks: 5
-0.16+1.37-0.40-2.92
effect=turn_of_month, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=True
r-calendar-effects-jp-growth-0103
effect: "turn_of_month"
cost_bps: 10
n_stocks: 10
-1.88-2.24-1.43-4.38
effect=turn_of_month, holding_days=1, n_stocks=50, cost_bps=10, regime_gate=True
r-calendar-effects-jp-growth-0111
effect: "turn_of_month"
cost_bps: 10
n_stocks: 50
-2.31-3.31-1.63-5.96
effect=turn_of_month, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=True
r-calendar-effects-jp-growth-0119
effect: "turn_of_month"
cost_bps: 10
n_stocks: 10
-1.97-0.66-1.67-10.95
effect=turn_of_month, holding_days=5, n_stocks=50, cost_bps=10, regime_gate=True
r-calendar-effects-jp-growth-0127
effect: "turn_of_month"
cost_bps: 10
n_stocks: 50
-1.75-0.31-1.72-5.71
effect=turn_of_month, holding_days=20, n_stocks=10, cost_bps=10, regime_gate=True
r-calendar-effects-jp-growth-0135
effect: "turn_of_month"
cost_bps: 10
n_stocks: 10
+0.39-0.54+0.77-5.12
effect=turn_of_month, holding_days=20, n_stocks=50, cost_bps=10, regime_gate=True
r-calendar-effects-jp-growth-0143
effect: "turn_of_month"
cost_bps: 10
n_stocks: 50
-0.05-0.58+0.13-0.84
effect=day_of_week, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-calendar-effects-jp-growth-0144
effect: "day_of_week"
cost_bps: 5
n_stocks: 5
-1.88-2.52-1.58-1.82
effect=day_of_week, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=False
r-calendar-effects-jp-growth-0152
effect: "day_of_week"
cost_bps: 5
n_stocks: 20
-2.45-2.70-2.10-4.05
effect=day_of_week, holding_days=1, n_stocks=20, cost_bps=10, regime_gate=True
r-calendar-effects-jp-growth-0155
effect: "day_of_week"
cost_bps: 10
n_stocks: 20
-3.40-5.80-2.74-4.58
effect=day_of_week, holding_days=5, n_stocks=5, cost_bps=5, regime_gate=True
r-calendar-effects-jp-growth-0161
effect: "day_of_week"
cost_bps: 5
n_stocks: 5
-2.14-1.20-2.01
effect=day_of_week, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=True
r-calendar-effects-jp-growth-0169
effect: "day_of_week"
cost_bps: 5
n_stocks: 20
-1.54-0.81-1.52

Target universe

Tokyo Stock Exchange Growth Market, ~495 stocks, tv >= 30M JPY
source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-07-29T01:09:00

Related strategies