← Lab
S006

Overnight gap-fade in low-vol regime

overnight-gap-fade-lowvol-v1
failed Stage 1 (Quick-screen) 2026-05-29
Share: Twitter / X LinkedIn
-5.7%-2.9%-0.1%+2.8%+5.6% 3460 Same-day open-to-close return on gap-up days (calm regime) Open-to-close return
Gate -0.4% Mean -0.08%
Same-day open-to-close return on gap-up days (calm regime) · n=6,441

ID: S006 Slug: overnight-gap-fade-lowvol-v1 Failed at: Stage 1 (Quick-screen) Fail reason: magnitude Date: 2026-05-29

What we tested

Gap-fade as a pattern is documented in academic literature (Berkman et al, others) but the effect is famously messy: sometimes gaps continue (real news), sometimes they fade (noise). The "low-vol regime conditioning" was the active ingredient — restricting the test to days when the broad market (SPY) had been calm for the past 20 days. In those calm days, the thinking goes, large overnight moves are more likely to be liquidity-driven noise than real information.

We required three things: the stock opens 2-5% above the prior close (above 5% gets into earnings/news territory we wanted to avoid), the broader market is in a "calm regime" (SPY's 20-day realized volatility below its own 12-month median), and the stock hadn't moved more than 7% intraday (a rough exclusion for single-stock news days like earnings).

Forward measure: the same-day open-to-close return — i.e., does the stock fade after the open? Pre-set criterion: average open-to- close needed to be at most −0.4%, hit rate of negative open-to-close at least 55%, and the effect had to hold in both the 2013-2019 and 2020-2026 sub-periods.

What we found

The effect exists directionally but is too small to clear the bar.

Criterion We needed We got
Average open-to-close return ≤ −0.4% −0.08%
Hit rate (negative open-to-close) ≥ 55% 52.0%
Number of qualifying days ≥ 500 6,441
Average return negative in 2013-2019 yes −0.13%
Average return negative in 2020-2026 yes −0.06%

Both sub-periods are independently negative, so the direction is real and consistent over time. But the magnitude (~8 basis points per trade) is well below the threshold we'd need to overcome realistic intraday execution costs.

Why this matters / what surprised us

This is the cleanest "effect exists, magnitude inadequate" cut of the batch. Unlike the volume-spike test (where the pattern simply didn't work), here the directional intuition was correct — gaps in calm markets do tend to fade — they just fade much less than the literature and the pre-set criterion expected.

  1. The pre-set expectation overshot. The spec predicted −0.3 to −0.6% mean intraday fade. Observed −0.08% lands well below that. The honest takeaway: gap-fade effects in liquid mega-caps are real but small.

  2. The effect has decayed since 2020. The 2013-2019 sub-period showed −0.13%; the 2020-2026 sub-period shows −0.06%. Roughly half the magnitude in the recent period. Plausible driver: algorithmic gap-fade strategies became standard practice during the 2020s, eroding the noise-dominated subset they were designed to capture.

  3. Friction would erase any remaining edge anyway. Trading intraday on small-cap or mid-cap stocks costs roughly 10-20 basis points round-trip in bid-ask spread alone. Even on liquid mega-caps, intraday execution friction is typically 5-10 bps. The observed −0.08% edge is well within those friction bounds — you'd pay more in costs than you'd earn from the pattern.

What this doesn't tell us yet

  1. The effect on a small-cap universe might still be exploitable. Less liquid names probably have larger gap-fade magnitudes because the algorithmic-arbitrage crowd doesn't bother with them. That would be a separate setup to pre-register.
  2. A more selective definition (only gaps of 4-5% rather than 2-5%) might isolate a stronger subset. Not testable from this run without re-running with a different threshold, and parameter tweaking after seeing results is overfitting.
  3. A directional companion (gap-fade IS profitable iff the prior day closed strong) wasn't tested. That's a conditional version of the setup and would require pre-registration.

What happens next

This pattern is closed in this form. Two broader implications:

For the specialist — methodology details (click to expand)

Setup (verbatim from spec)

Stocks opening with a gap of +2% to +5% above the prior close, on days when SPY's 20-day realized volatility is below its own 12-month median, predict negative same-day open-to-close returns in the liquid US equity universe over 2010-present.

Test setup

  • Universe: SP500+NDX top-200 monthly point-in-time snapshot.
  • Data: Tiingo Power EOD with open + close + prior close + low + high.
  • Calm regime gate: SPY's std(daily_return[t-20:t-1]) × √252 < trailing 252-day median of the same quantity. Both computed trailing/exclusive of day t. 2,061 of 4,125 trading days (50.0%) qualified as "calm."
  • Signal: ticker in top-200 snapshot AND day t is calm AND 1.02 ≤ open[t] / close[t-1] ≤ 1.05 AND |close[t] − open[t]| / open[t] < 0.07 (the last clause is a post-hoc earnings/news-event exclusion, per spec).
  • Forward measure: (close[t] − open[t]) / open[t] (same-day open-to-close return).

Pre-registered gate (all required)

mean_oc_return     ≤ −0.4%
hit_rate_negative  ≥ 55%
n_signals          ≥ 500
half1_mean         < 0 (2013-2019)
half2_mean         < 0 (2020-2026)

Detailed numbers

  • Full sample: n=6,441, mean −0.084%, hit-neg 52.0%
  • 2013-2019: n=1,700, mean −0.126%, hit-neg 52.8%
  • 2020-2026: n=4,127, mean −0.063%, hit-neg 51.2%

The effect halved from h1 to h2 in absolute terms. Both halves are statistically negative but the magnitude is well below the pre-registered threshold.

Friction context

  • Intraday execution friction on liquid mega-caps: ~5-10 bps round-trip (bid-ask) plus commission, conservatively ~10 bps total
  • Observed signal magnitude: −8 bps
  • Conclusion: even if execution friction were zero, the −8 bp edge is below the pre-registered threshold by 4-5×

Artifacts

  • Signals: lab/postmortem/overnight-gap-fade-lowvol-v1/signals.parquet (6,441 rows: ticker, date, gap, oc_ret, calm)
  • Histogram bins: chart_data.json in same directory
  • Setup spec: lab/setups/overnight-gap-fade-lowvol-v1.md
  • Pre-registered gate: lab/setups/gates.md §overnight-gap-fade-lowvol-v1

Rewritten 2026-05-30 for broader accessibility. No claims, gates, or methodology changed — only presentation.

← Olderovernight-gap-fade-lowvol-v1 Newer →coen-opening-drift-speccap-v1

Mechaniq provides information, not investment advice. We do not execute trades. Past results are no guarantee for future performance. You are solely responsible for your trading decisions.

Lab · Methodology · Greeks Lab · About · FAQ · Glossary · Privacy · Terms · mechaniq.trade © 2026

07 Jul 2026, 07:08