Markets › Stocks & ETFs · SPY ETF, daily closes, with dividends
Pre-Holiday Effect Backtest: Do Stocks Go Up Before Market Holidays? 33 Years of SPY
The day before a market holiday has a reputation as one of the best days of the year for stocks. We held SPY only on that day, before each of 298 holidays from 1993 to 2026, with dividends and costs, and compared it with random days in the same months.
Buried · FragileGood Friday paid. New Year's Eve took it back.
Variants tried: 1 · Passed every gate: 0 · Best: 3 of 6 · Holdout opened: yes (already used)
Short answer: a little, and only lately. Holding SPY only on the last trading day before each market holiday made +0.06% a trade after costs from 1993 to 2026, but nothing at all from 1993 to 2005, and random days in the same months were often as good. It passed three of our six gates.
00The verdict in three lines
- Do stocks go up before holidays? A little, lately. Holding SPY only on the last trading day before each market holiday made +0.064% a trade after costs over 298 holidays, and passed three of our six gates.
- The effect was missing when it should have been strongest: -0.008% a trade from 1993 to 2005, +0.065% from 2006 to 2015, +0.140% since 2016. Random days in the same months made a median of +0.004%.
- Buried, cause fragile. The day before Good Friday was the best; New Year's Eve was the worst.
01The pre-holiday effect
The pre-holiday effect is the finding that stocks tend to rise on the last trading day before a market holiday, far more than on an ordinary day:
- Josef Lakonishok and Seymour Smidt (Review of Financial Studies, 1988) found it in 90 years of the Dow.
- Robert Ariel (“High Stock Returns before Holidays”, Journal of Finance, 1990) found pre-holiday returns several times the average day's, not explained by other calendar effects.
- Chan-Wung Kim and Jinwoo Park (Journal of Financial and Quantitative Analysis, 1994) found it in the UK and Japan too.
Why it could work: short sellers closing before a long weekend, buyers keen to be in, thin sessions that move on little volume. Why it might not: it has been in print since 1988, and later studies reported it weaker; one day per trade also leaves little room after a cost.
This is our second calendar test on SPY, after the turn of the month. Some pre-holiday days fall at the turn of the month (31 December, for example), so we report the overlap in section 08.
02How we made the rules mechanical
- Holidays: the scheduled full-day closures of the New York Stock Exchange: New Year's Day, Martin Luther King Jr. Day (from 1998), Washington's Birthday, Good Friday, Memorial Day, Juneteenth (from 2022), Independence Day, Labor Day, Thanksgiving and Christmas, with the usual weekend rules.
- Not holidays: closures nobody knew in advance (September 2001, Hurricane Sandy, presidential funerals). Nobody could have traded the day before them.
- The trade: buy SPY at the close two trading days before the holiday and sell at the close of the last trading day before the holiday. The trade earns that one day.
- Fills at the close (market-on-close orders), long only, one day, no stop. One variant, fixed before the run.
03How we tested it
SPY daily closes from 29 January 1993 to 20 October 2026 with all 136 dividends (Yahoo Finance history, the file of our other SPY tests). Calendar check: the 309 weekdays missing from the file are exactly the 298 scheduled holidays given by the rules plus 11 unscheduled closures. Costs: 0.04% of the price a round trip, with 0.10% shown too. Unit: net % per trade. Periods by entry date: 1993 to 2005, 2006 to 2015, and a holdout from 2016 already used by our three earlier SPY tests. First-period bar t ≥ 2.0. Control: for every real trade, one day at random in the same month, 500 times. Engine check: the holiday rules on known years, hand-made weeks, and an independent re-implementation, with its own day-by-day holiday list, that matched all 298 real trades (24 checks; ph_selftest_result.txt).
04Results: is the pre-holiday effect still there?
| Variant | Day held | Trades | Win rate | Net per trade | Net total (sum of trade %) | Profit factor | Verdict |
|---|---|---|---|---|---|---|---|
| PH | The last trading day before each holiday | 298 | 55.7% | +0.064% | +18.9% | 1.22 | Buried |
Cumulative net % of the pre-holiday trades (sum of trade %), by month. * Holdout already used before this test.
By the end of 2005 the trades were still slightly down (-0.8% in total); everything after that came later. Before costs a pre-holiday trade made +0.104%; at 0.10% a round trip the sum would fall from +18.9% to +1.1%. As a whole strategy, in SPY 3.5% of the days and in T-bills otherwise, it made 3.0% a year, mostly interest, against 10.8% for buy-and-hold.
05The pre-holiday day or any day?
| Days | Days | Before costs, per day | After 0.04%, per day | Share of days up (after costs) |
|---|---|---|---|---|
| Pre-holiday days | 298 | +0.104% | +0.064% | 55.7% |
| Every other day of the file | 8,190 | +0.046% | +0.006% | 51.8% |
| Variant | Trades | Real net per trade | Random days, median | Random, 5th to 95th | Percentile (95 needed) |
|---|---|---|---|---|---|
| PH | 298 | +0.064% | +0.004% | -0.099% to +0.117% | 82.6 |
The pre-holiday day earned about twice an ordinary day before costs. But a one-day trade pays the whole cost for one day's move, so after costs the gap is small, and random days in the same months were often as good: the real trades beat 82.6% of the random sets, not 95%.
06Holiday by holiday: Thanksgiving, Good Friday, New Year
| The last trading day before | Trades | Net per trade | Share up (after costs) | Profit factor |
|---|---|---|---|---|
| New Year's Day | 28 | -0.341% | 32.1% | 0.35 |
| Martin Luther King Jr. Day | 29 | +0.163% | 62.1% | 1.54 |
| Washington's Birthday | 34 | -0.193% | 35.3% | 0.53 |
| Good Friday | 34 | +0.366% | 67.6% | 3.19 |
| Memorial Day | 34 | +0.014% | 55.9% | 1.05 |
| Juneteenth | 5 | +0.190% | 60.0% | 3.19 |
| Independence Day | 34 | +0.198% | 70.6% | 2.10 |
| Labor Day | 34 | -0.025% | 50.0% | 0.93 |
| Thanksgiving | 33 | +0.166% | 66.7% | 1.62 |
| Christmas | 33 | +0.156% | 57.6% | 1.82 |
The day before Good Friday was the strongest (+0.366%, up 68% of the time), then the day before Independence Day; the Wednesday before Thanksgiving made +0.166% and rose 67% of the time. New Year's Eve was the weakest (-0.341%, up only 32% of the time), and the Friday before Washington's Birthday was negative too. With about 34 trades a holiday these differences are mostly noise, and picking the good holidays after seeing them would prove nothing.
07By period and by year
| Period | Trades | Net per trade | Win rate | Profit factor | t |
|---|---|---|---|---|---|
| 1993 to 2005 | 109 | -0.008% | 50.5% | 0.98 | -0.08 |
| 2006 to 2015 | 89 | +0.065% | 55.1% | 1.20 | 0.59 |
| Holdout* 2016 to Oct 2026 | 100 | +0.140% | 62.0% | 1.77 | 1.97 |
| Year | Trades | Sum of trade % |
|---|---|---|
| 1993 (from Feb) | 7 | -1.80% |
| 1994 | 8 | -1.30% |
| 1995 | 8 | -0.34% |
| 1996 | 8 | -2.96% |
| 1997 | 8 | -0.57% |
| 1998 | 9 | -0.17% |
| 1999 | 8 | +9.15% |
| 2000 | 9 | -0.36% |
| 2001 | 9 | -3.73% |
| 2002 | 9 | -0.80% |
| 2003 | 9 | +2.03% |
| 2004 | 8 | -0.76% |
| 2005 | 9 | +0.79% |
| 2006 | 9 | -0.17% |
| 2007 | 9 | +0.34% |
| 2008 | 9 | +3.99% |
| 2009 | 9 | +1.64% |
| 2010 | 8 | -0.01% |
| 2011 | 9 | -1.41% |
| 2012 | 9 | +1.73% |
| 2013 | 9 | +0.63% |
| 2014 | 9 | +0.36% |
| 2015 | 9 | -1.30% |
| 2016 | 9 | +0.44% |
| 2017 | 9 | -0.82% |
| 2018 | 9 | -0.41% |
| 2019 | 9 | +3.93% |
| 2020 | 9 | +2.30% |
| 2021 | 8 | +2.33% |
| 2022 | 10 | +1.36% |
| 2023 | 10 | +1.68% |
| 2024 | 10 | +1.91% |
| 2025 | 10 | +0.54% |
| 2026 (to 20 Oct) | 7 | +0.71% |
* The holdout years were already used by our earlier SPY tests.
The best single day was the day before Good Friday 2009 (+3.93%), weeks after the market's low; the worst was 2 July 2009 (-2.77%). Without the 10 best days the sum is -8.4%; without the 20 best, -23.3%.
08The overlap with the turn of the month
| Pre-holiday days | Trades | Net per trade |
|---|---|---|
| Inside the turn-of-the-month window (the last trading day of a month or the first three) | 106 | +0.024% |
| Outside it | 192 | +0.086% |
Pre-holiday days at the turn of the month did worse than the others. That fits what our turn-of-the-month test found: the last trading day of the month was weak in these years, and New Year's Eve is one of those days. So the pre-holiday result is not borrowed from the turn-of-the-month effect; if anything, the overlap held it back.
09Other holds (descriptive, looked at after the gates)
| Hold | Days held | Net per trade | t, first period | PF, second period | Holdout* (sum) | Control percentile | Gates |
|---|---|---|---|---|---|---|---|
| The pre-holiday day (the rule) | 1 | +0.064% | -0.08 | 1.20 | +14.0% | 82.6 | 3/6 |
| Two days before the holiday | 2 | +0.093% | -0.67 | 1.41 | +20.9% | 75.0 | 3/6 |
| Across the holiday (pre-holiday close to the next close) | 1 | +0.012% | 0.71 | 1.10 | -9.9% | 54.2 | 1/6 |
| The pre-holiday day and across | 2 | +0.116% | 0.74 | 1.29 | +7.9% | 79.4 | 3/6 |
None of the other holds passed more than three gates. Holding across the holiday, into the first day after it, added almost nothing.
10The gates
| Variant | Trades | 1. PF ≥ 1.2 in validation | 2. ≥ 50 trades in each period | 3. t ≥ 2.0 on development | 4. Above the 95th percentile of the random-days control | 5. Positive without the 10 best trades | 6. Holdout net positive (already used) |
|---|---|---|---|---|---|---|---|
| PH | 298 | pass | pass | fail | fail | fail | pass |
| Variant | Cause | Gates failed | Verdict |
|---|---|---|---|
| PH | Fragile | 3, 4, 5 | Buried |
Fragile: positive in total, but not without its best trades. The validation profit factor was exactly at our 1.2 bar. There are no gaps in the file other than real market closures, so the data-gap check does not apply.
TWhat this shows, and what to take into your own tests
What the results show
- Holding SPY only on the last trading day before each market holiday made +0.064% a trade after costs over 298 holidays, 1993 to 2026. Before costs the pre-holiday day earned +0.104%, about twice an ordinary day's +0.046%.
- It failed three of our six gates: it made nothing from 1993 to 2005 (-0.008% a trade), it beat random days in the same months only at the 82.6th percentile, and without its 10 best days it lost money.
- The holidays differ a lot: the day before Good Friday averaged +0.366% and the day before Independence Day rose 71% of the time, while New Year's Eve averaged -0.341% and rose only 32% of the time.
What remains unknown
- Whether the strength since 2016 lasts: our holdout years had already been used by three earlier SPY tests.
- Single holidays as rules. Good Friday and Independence Day looked good after the run, but with 34 trades each, and picked after the fact, they prove nothing.
- Other markets, and futures, where a one-day trade costs less in proportion.
Why it was buried
The famous pre-holiday effect did not show up at all in our first period, 1993 to 2005, just after it was published. It appeared later, and most of the profit since then comes from a few big days. A one-day hold also pays a full round-trip cost each time, which takes most of the extra return. By our rule the cause is fragile: positive, but not without its best trades.
What you can apply to your own tests
- Compare a calendar day with random days in the same months; a market that rises most days makes almost any day look good.
- Split a famous effect into periods. One that was flat right after it was published, and strong later, is not a stable edge.
- For one-day holds, compare the cost with the extra return of the day, not with the day's whole return.
A note on the numbers: drawdown figures are measured on closed trades unless a table says it includes open losses. Open losses inside a trade are not counted in a closed-trade drawdown, so real account risk is higher, especially for systems with no stop. Backtests are not live trading.
FAQCommon questions
What is the pre-holiday effect?
The finding that stocks tend to rise on the last trading day before a market holiday, much more than on an ordinary day (Lakonishok and Smidt, 1988; Ariel, 1990).
Do stocks go up before holidays?
On average a little, in our test of SPY: the pre-holiday day made +0.10% before costs, about twice an ordinary day, and rose 56% of the time after costs. But it was flat from 1993 to 2005 and most of the profit since then came from a few days.
Is the stock market up the day before Thanksgiving?
More often than not in our data: the Wednesday before Thanksgiving made +0.17% after costs on average and rose 67% of the time over 33 years. With so few years that is not proof.
Which holiday is best for stocks?
In our 33 years of SPY the day before Good Friday was the strongest (+0.37%, up 68% of the time) and New Year's Eve the weakest (-0.34%, up 32% of the time). Each holiday has only about 34 trades, so the differences are mostly noise.
How was the pre-holiday effect tested?
On SPY daily closes with dividends, 1993 to 2026, with the exchange's holidays from its rules (checked against the file), the rule fixed before any number was computed, 0.04% of costs per round trip, and rules written and dated before the data was run, costs included on every trade, results split into development, validation and holdout periods, a random-entry control as the benchmark, and every variant reported. Read the protocol.
11Check our arithmetic
ph_spec.md
ph_calendar.js · ph_lib.js · ph_ref.js · ph_selftest.js · ph_run.js
control_audit_lib.js · gh_lib.js · hourly_lib.js · ma_lib.js · rsi2_protocol.js · sma200_lib.js · tom_lib.js · spy_parse.js
dtb3_fred_raw.csv
ph_selftest_result.txt · ph_results.txt · ph_gates.json · ph_summary.json
PH
Code provenance: our own code, written from the specification.
12Data notes
Source. Yahoo Finance daily history of SPY (SPY has never split; dividends listed separately), read from the saved history page. Holidays. From the exchange's rules, checked against the trading days of the file. Some pre-holiday sessions close early (at 1 p.m.), which the daily closes include as they are. Fills at the official close; real market-on-close orders can differ slightly. Not included: taxes. Exploratory: one ETF, one rule, a holdout already used.
13Corrections
None since publication.