Event-DrivenRisk: Low

FOMC Drift

Long SPX in the 24 hours before FOMC — the Lucca-Moench anomaly

Risk

Low

Holding Period

~2-3 trading days per event

Best For

Any macro regime where the Fed cycle matters

How it works

Lucca & Moench (2015, Journal of Finance) documented that the S&P 500 earned an average excess return of ~49 bps over the 24 hours preceding scheduled FOMC announcements from 1994-2011. The anomaly persists out-of-sample and cannot be explained by known risk factors. This strategy is the mechanical trade: enter long SPX the business day before each FOMC meeting, exit flat the business day after. 8 events/year × ~50bps ≈ 4% gross annual edge, uncorrelated with other factors.

Mathematical Foundation

enter long @ T−1 close exit flat @ T+1 close, T = FOMC announcement day

Signal Generation Logic

  1. 1Maintain a hand-curated list of scheduled FOMC announcement dates (2022-2026 baked in; Phase 4.2 will scrape automatically)
  2. 2For each FOMC date that falls within the data window:
  3. 3Locate the last business-day close strictly BEFORE the announcement — that's the entry timestamp
  4. 4Locate the first business-day close strictly AFTER the announcement — that's the exit timestamp
  5. 5Emit a long entry signal (direction=1) at T−1 and an exit (direction=0) at T+1
  6. 6Only trades SPX500_USD by default; the edge is most documented on the S&P 500 cash index and its CFD equivalent
  7. 7Size is a fixed fraction (15% default) — the historical effect is ~50bps per event and position-sizing doesn't change the expected direction

Parameters Explained

target_asset

Instrument to trade. Default is the OANDA SPX500 CFD. Could point at futures (ES) or ETF (SPY) if available in the data feed.

Default

SPX500_USD
size_fraction

Fraction of capital deployed per event. The Lucca-Moench edge is ~49bps per event; sizing affects dollars made but not the expected direction.

Default

15%
fomc_dates

Override the built-in FOMC calendar (useful for tests or to extend past 2026). Expects YYYY-MM-DD strings.

Default

built-in

When It Works

The Lucca-Moench anomaly has been remarkably persistent since discovery — it's still visible in 2015-2024 data. Works best when pre-FOMC positioning builds up equity exposure (i.e., most of the regime since 1994). The effect is strongest when the meeting is preceded by material policy uncertainty.

When It Fails

Events where the outcome is already fully priced (e.g., pure no-change decisions after months of clear forward guidance). Also sensitive to surprise hawkish pivots — the drift into the meeting partially reverses after.

Risks & Limitations

  • Low frequency: ~8 events/year means limited sample size for individual strategy evaluation
  • Static calendar: the MVP bakes in dates through 2026 — must be refreshed manually (or the strategy silently stops trading when it runs out of dates)
  • Overnight gap risk: held over the announcement, so the position experiences the headline move. The 'drift' is pre-announcement; post-announcement volatility can wipe it out
  • Highly specific to the S&P 500 — generalizing to other assets isn't supported by Lucca-Moench's evidence

Implementation

FOMC_MEETING_DATES is a hand-curated list sourced from federalreserve.gov/monetarypolicy/fomccalendars.htm. pre_fomc_entry_date and post_fomc_exit_date resolve the exact trading-day boundaries using the asset's own index (so weekends and holidays are handled). Unlike most strategies, FOMC drift emits explicit direction=0 exits — the engine then records clean round-trip trades.

Model parameters

Target Asset

S&P 500 CFD — the documented anomaly asset

SPX500_USD

Size per Trade

Fraction of capital deployed per event

15%

Entry

Business day before each FOMC announcement

T−1 close

Exit

Business day after the announcement

T+1 close

Academic background

Academic Basis

Based on Lucca & Moench (2015), 'The Pre-FOMC Announcement Drift', Journal of Finance

Backtest this strategy

Run the exact model on your selected assets and date range. See trade-by-trade performance.

Backtest This