July 4th Seasonal Rally — Backtest & Trade Plan

Last updated 2026-06-27 · SPY 2003-2025 (n=23 years) · QQQ 2006-2025 (n=20 years)
TL;DR — Long SPY/QQQ from T-4 close to T+8 close (T = the trading day on/before July 4). SPY +2.13% mean, 82.6% win rate, worst year −2.75%. QQQ +2.85% mean, 95% win rate, worst −4.95%. Compounded $1 → $1.62 (SPY) / $1.74 (QQQ) over the sample. For 2026: enter Mon 2026-06-29 close, exit Wed 2026-07-15 close.

The arc — what actually happens day-by-day

T+0 = July 4 or the prior trading day if J4 is a weekend. Cumulative return from a T-5 entry, averaged across 23 SPY years:

DayMeanMedianWin %
T-5 entry0.00%0.00%
T-4−0.14%−0.02%47.8%
T-3−0.06%+0.08%56.5%
T-2+0.39%+0.61%65.2%
T-1+0.63%+0.90%73.9%
T+0 (J4)+0.81%+1.09%60.9%
T+5+1.25%+1.94%73.9%
T+7+1.92%+2.26%82.6%
T+8+1.98%+2.02%82.6%

Two distinct legs: (1) pre-holiday float-up T-2 → T+0 (the classic low-volume drift); and (2) post-holiday continuation T+1 → T+8 into mid-July OPEX week, the strongest part of the trade. Don't extend beyond T+8 — edge dies after.

Top windows by expectancy

SPY (n=23, 2003-2025)

EntryExitDaysMeanMedianWin %MinMaxSharpe
T-4T+812+2.13%+2.00%82.6%−2.75%+8.28%0.86
T-4T+711+2.07%+2.05%87.0%−2.51%+7.68%0.88
T-3T+811+2.05%+2.30%82.6%−2.74%+6.36%0.92
T-3T+69+1.90%+1.84%91.3%−2.80%+5.78%0.96
T-6T+612+1.86%+2.09%82.6%−2.21%+5.64%1.06

QQQ (n=20, 2006-2025) — meaningfully stronger

EntryExitDaysMeanMedianWin %MinMax
T-3T+811+2.85%+2.77%95.0%−4.95%+7.44%
T-4T+812+2.73%+2.62%85.0%−4.24%+9.55%
T-6T+814+2.46%+3.01%90.0%−5.79%+7.30%

QQQ T-3 → T+8 = 19 of 20 years positive, median +2.77%.

Calendar dates — recent & current

YearJ4 weekdayT+0 anchorT-4 entryT+8 exitSPY return
2022Mon(closed)Mon Jun 27Thu Jul 14−2.75%
2023Tue(closed)Tue Jun 27Fri Jul 14+3.01%
2024Thu(closed)Thu Jun 27Tue Jul 16+3.38%
2025Fri(closed)Fri Jun 27Wed Jul 16+1.51%
2026SatFri Jul 3Mon Jun 29Wed Jul 15TBD

Per-year PnL — SPY T-4 → T+8

YearRetYearRetYearRet
2003+2.31%2011+2.34%2019+2.84%
2004−2.34%2012+1.70%2020+7.27%
2005+3.16%2013+4.00%2021+1.70%
2006−0.31%2014+1.09%2022−2.75%
2007+2.95%2015+0.38%2023+3.01%
2008−0.42%2016+8.28%2024+3.38%
2009+1.55%2017+1.75%2025+1.51%
2010+2.00%2018+3.71%

Compounded $1 over 23 years: $1 → $1.615 (+61.5% total, +2.11%/yr for ~2-week annual exposure). QQQ compounded: $1 → $1.742 (+74.2% over 20 years).

The bear-year asterisk

The 4 SPY loss years (2004, 2006, 2008, 2022) all share one trait: the broader tape was in a bear trend going into the window. These were not random misses — macro overwhelmed seasonality. The single largest loss (2022, −2.75%) is the relevant analog when starting from weakness.

2026 context — wall_shift_idx BEAR regime applies

DateDOWidx_frontidx_nextLabel
2026-06-22Mon+0.04n/aFLAT
2026-06-23Tue−2.31−1.98BEAR_HARD
2026-06-24Wed−1.15+0.70BEAR_HARD
2026-06-25Thu−1.27−2.22BEAR_HARD
2026-06-26Fri−0.82−1.72BEAR

4 of last 5 sessions in BEAR/BEAR_HARD with idx_next still pricing further decay — same regime family as 2022.

Long-history proxy backtest (SPY, 2003-2025)

Price-action proxy for the wsi BEAR signal (5d SPY ≤ −2% AND below 20-SMA AND 3+ red days in last 5 AND still selling today):

CohortDaysnMeanMedianWin %
Baseline (all days)55759+0.20%+0.37%59%
Baseline105754+0.40%+0.71%62%
BEAR regime proxy5395+0.82%+0.86%64%
BEAR regime proxy10395+1.20%+1.50%63%

Counter-intuitive but important: at the 5-10 day horizon, the BEAR signal is mildly bullish, not bearish. Severe oversold readings mean-revert. The danger window is days 0-3 (mean −1.17% on the wsi-only sample).

Combined picture for 2026

Horizonwsi-proxy expectedJuly-4 seasonal expectedRead
T+0 → T+3flat to −0.5%flat to +0.1%weak/continuation — don't fight
T+5+0.82%+1.25%scale long into weakness
T+8 → T+10+1.20%+1.98%target exit, take the lift

2026 trade plan

  1. Stage entry Mon Jun 29 close → Wed Jul 1 close. Don't go all-in Monday. If SPY shows a green Tuesday off the bear, that's confirmation. If Monday opens red and idx_front goes BEAR_HARD again, scale entry to 1/3.
  2. Vehicle: QQQ over SPY (higher mean, higher win rate; software-led rotation aligns with QQQ). Defined-risk version: July 17 expiry ATM call or call spread.
  3. Exit Wed Jul 15 close (T+8). Edge dies after — don't try to hold for "another leg."
  4. Stop: hard exit if SPY closes below the wsi 5-day prior low, OR if idx_front goes ≤ −1.5% on two consecutive sessions during the trade.
  5. Size at half normal given current BEAR regime. Median win 2%, worst 2022 was −2.75% → risk ~1% of account for ~2% expected return.

Reproducibility