Pre-holiday effect on SPY self-test, 2026-11-04T10:34:56.653Z 1. Holiday rules [ok] Easter dates of 1993, 2000, 2008, 2011, 2019, 2024 and 2026 [ok] Christmas on a Saturday (2021) is observed Friday 24 Dec; on a Sunday (2022) Monday 26 Dec; New Year on a Saturday (2022) is not observed [ok] New Year on a Sunday (2023) -> Monday 2 Jan; 4 July on a Saturday (2020) -> Friday 3 July; on a Sunday (2021) -> Monday 5 July [ok] MLK Day from 1998 (19 Jan 1998); Juneteenth from 2022 (observed Monday 20 June 2022, 19 June 2023) [ok] 2025: Thanksgiving 27 Nov, Memorial Day 26 May, Labor Day 1 Sep, Washington 17 Feb, Good Friday 18 Apr [ok] the reference's day-by-day holiday test agrees with the rules on every day of 1993-2026 (301 holidays) 2. Hand-built weeks [ok] 2 holidays traded in the hand file: Good Friday 2023-04-06, Memorial Day 2023-05-26 [ok] Good Friday: bought at the close of Wed 5 Apr, sold at the close of Thu 6 Apr, dividend 0.40 on the pre-holiday day: gross 1.3861% [ok] Memorial Day (Monday): the pre-holiday day is Friday 26 May [ok] the missing Wednesday 31 May (an unscheduled closure here) is not a holiday [ok] reference identical on the hand file [ok] turn-of-month flag: 31 Mar (day -1), 3 Apr (day +1) and 5 Apr (day +3) are in the window; 6 Apr (day +4) is not [ok] Thanksgiving (Thursday): the pre-holiday day is Wednesday 22 Nov; reference identical [ok] a file starting on the entry day still trades Good Friday [ok] a file starting on the pre-holiday day cannot trade it (no entry close) [ok] reference identical [ok] PH 2 days: 2 trades of 2 day(s) [ok] Across the holiday: 2 trades of 1 day(s) [ok] Before and across: 2 trades of 2 day(s) [ok] across the holiday: Thu 6 Apr close to Mon 10 Apr close [ok] control with the real entries drawn = the real trades 3. Real data: engine against the independent reference [ok] PH: 298 trades, reference 298, identical [ok] every trade is one day, and no two holidays share a pre-holiday day [ok] control with the real entries drawn = the 298 real trades COUNTS ONLY: 298 trades (DEV 109, VAL 89, HOLDOUT 100); in the turn-of-month window 106 PASSED