Quad Witching vs Monthly OpEx — the Friday and the Week After

SPY daily bars 2002-01 → 2026-09 (tastk); the premarket section uses IB 5-minute bars including the premarket session, 2018 → 2026. Expiration = third Friday of the month, rolled back one session when that Friday is a holiday. Generated 2026-09-17.
In one line: on quad-witching Friday SPY falls open→close 69% of the time (September: 71%), against 49% on a normal monthly expiration — a coin flip. The week after a September quad falls 75% of the time, mean −1.26%, while the week after a normal monthly expiration rises 63% of the time. Thursday shows no pattern at all.

1. Daily bars (2002 onward)

The "Fri open→close" and "next 5 days" columns are mean / share down; every other column is mean / share up.

GroupnThursdayFri gap (raw)Fri gap (ex-div adj.) Fri open→closeNext 5 days
Quad witching (Mar/Jun/Sep/Dec)96+0.04% / 54% −0.24% / 26%+0.22% / 66% −0.31% / 69% down−0.10% / 60% down
September quad24+0.23% / 50%−0.09% / 25% +0.36% / 71%−0.40% / 71% down −1.26% / 75% down
Normal monthly OpEx192−0.10% / 51%+0.10% / 56% +0.10% / 57%−0.02% / 49% down+0.37% / 37% down
⚠ The "Friday gap" column is unreadable until you remove the dividend. SPY's quarterly ex-dividend date is quad-witching Friday, worth 0.45% on average that day (0.00% on a normal monthly). Before the adjustment the data says "gaps up 26% of the time"; after it, "gaps up 66% of the time" — the opposite conclusion. The same correction applies to strikes: any expiration after the ex-date lives a dividend above spot, so Friday's 750 put wall equals 751.83 on Thursday's spot. The morning plan now prints an EX-DIV line for this.

2. Premarket (IB 5-minute bars incl. premarket, 2018 → 2026-06, 34 quads)

Daily bars cannot see the premarket high; by the opening bell the move has usually already faded. All figures are measured against the ex-dividend-adjusted prior close (dividend backed out of adjClose; checked against four actual SPY payouts, within half a cent).

MeanMedianShare
Premarket high (vs ex-div-adjusted prior close)+0.49%+0.36%85% trade up
Opening gap−0.01%−0.09%47% gap up
Open → close−0.41%−0.14%68% down
Premarket high → close−0.90%−0.74%82% down

The premarket high clusters in two windows: 04:00–05:00 ET and 09:20–09:25 ET.

3. The executable version: rest a sell limit the night before, hold to Friday's close

Sell price = ex-div-adjusted prior close × (1 + threshold). Filled only if touched in the premarket (04:00–09:30 ET); an unfilled order is cancelled at the open.

ThresholdFilledWin rateMeanWorstExcl. the 2018-12 / 2020-03 crashesTrade by trade since 2024
+0.20%25/3472%+0.69%−0.87%+0.45%+0.91 / +0.44 / −0.28 / −0.70 / +1.67 / −0.81
+0.30%19/3474%+0.75%−0.71%+0.41%+0.55 / −0.18 / −0.60 / −0.71
+0.40%15/3473%+0.92%−0.61%+0.50%+0.65 / −0.50 / −0.61
+0.50%8/3488%+1.34%−0.51%+0.52%+0.75 / −0.51
⚠ It has clearly decayed. The +0.30% threshold has lost 3 of its last 4 fills. The long-run mean rests largely on two crashes (2018-12 and 2020-03); strip those out and roughly +0.4–0.5% per trade is left. With n=34 this does not carry size.
⚠ Cancel at the open. If the unfilled order is left working through the regular session it fills on the strong days instead: fills rise to 19/34 and 15/34 at the +0.40% / +0.50% thresholds, the win rate drops to 63% / 60%, and the mean excluding the two crashes falls to +0.31% / +0.15%.

4. SPY vs QQQ — which one fades more?

QQQ pops higher, fades by the same amount, and does it less reliably. Trading the fade through NQ instead of ES buys no extra edge per unit of risk — only more noise.

Premarket layer (same 34 quads, paired by date). QQQ does not go ex-dividend on quad-witching Friday (0 of 34), so no adjustment applies to it.

Premarket highOpening gapOpen → closePremarket high → close
SPY+0.49% / 85% up−0.01% / 47% up−0.41% / 68% down−0.90% (median −0.74) / 82% down
QQQ+0.60% / 94% up+0.09% / 50% up−0.40% / 59% down−0.90% (median −0.63) / 79% down
Paired QQQ − SPY+0.107pp, t=+2.43 (QQQ higher on 71% of days)+0.097pp, t=+2.19+0.009pp, t=+0.100.000pp, t=0.00

Daily layer (common history 2006-05 → 2026-09, 81 quads, ex-dividend adjusted):

GapIntraday high vs prior closeOpen → closeHigh → close
SPY+0.20% / 63% up+0.62%−0.34% / 68% down−0.76%
QQQ+0.26% / 67% up+0.78%−0.33% / 64% down−0.85%
QQQ thresholdFilledWin rateMeanWorstExcl. the two crashes
+0.20%24/3467%+0.65%−2.17%+0.36%
+0.30%20/3460%+0.65%−2.07%+0.29%
+0.40%14/3450%+0.61%−1.98%+0.04%
+0.50%12/3467%+0.76%−1.88%+0.08%

Side finding, unrelated to quad witching: on normal monthly expirations (n=163) QQQ is measurably weaker intraday than SPY — open → close −0.10% vs −0.02%, paired t=−2.69, and still t=−2.62 after volatility normalisation. No such gap exists on quad-witching days.

5. How to use it

Source notes: ~/research/notes/quad_witching_seasonality.md; ex-dividend conversion: ~/research/notes/spy_exdiv_wall_offset.md; reproducible from ~/research/scripts/quad_witch_premarket_spy_qqq.py (cached bars in ~/research/data/quad_premarket.csv) and quad_witch_spy_vs_qqq.py. Sections 2–4 re-run 2026-09-17 on a corrected dividend base.