What It Does

Gap Trades runs on daily bars. On every session close it compares three numbers: yesterday’s close, today’s open, and today’s close.

  • The gap is today_open - prev_close, expressed as a percentage of prev_close.
  • If the absolute gap is below the configured threshold, nothing happens.
  • If the gap is large enough, the strategy looks at the intraday close to decide direction.

The mode picks the rule:

  • Continuation mode: a gap up with a bullish intraday close (today’s close above today’s open) enters long at the close. A gap down with a bearish intraday close enters short. The idea is that the gap got confirmed by the day’s trading.
  • Fade mode: a gap up with a bearish intraday close (the gap was rejected during the session) enters short at the close, betting the gap fills in the next session. A gap down with a bullish intraday close enters long.

Every entry is held for exactly one bar. The next daily close flattens the position. There are no stops, no targets, no trailing logic. The one-bar exit is the only exit.

The side parameter restricts to long-only, short-only, or both directions. The default preset uses fade mode on 0.5% gaps, both sides.

Why It Works (Sometimes)

Daily gaps on equity index futures are one of the more-studied short-term effects. Two stylized facts drive the design:

  • Most overnight gaps on liquid US equity indices revert at least partially during the next session. This is the basis of fade mode.
  • Large gaps that the market confirms during the day, by closing in the gap direction, can carry over to the next session. This is the basis of continuation mode.

Neither effect is large, neither effect is reliable, and both effects shrink once transaction costs and slippage are honest. The intraday close-vs-open filter is the simplest possible regime check: it asks whether the day’s trading agreed with the gap or fought against it.

On gold, the gap story is less well documented. The metal trades nearly 24 hours and its overnight gaps look different from equity index gaps. Running the same preset on GC is mostly a sanity check on how much the effect is equity-specific.

Presets

Four presets ship out of the box:

  • Gap Fade 0.5%: fade rejected gaps of 0.5% or more, both sides. The default; produces the most trades.
  • Gap Continuation 0.5%: trade with confirmed 0.5% gaps. Mirror of fade.
  • Gap Fade Large (1%): same fade logic, restricted to 1% gaps and larger. Fewer trades, bigger individual setups.
  • Gap Continuation Large (1%): continuation on 1% gaps and larger. The “big move keeps going” variant.

Use the form to set your own threshold, mode, or side.

Best In

  • Liquid equity index futures (NQ, ES). The gap-fade story is best documented here and the contract has predictable session boundaries.
  • Daily-timeframe research. The strategy is built for 1D bars and the gap concept needs a clear session-close-to-session-open boundary.
  • Studies that want a simple, parameter-light baseline before adding regime filters.

Where It Struggles

  • Trending regimes for the fade mode. A persistent uptrend produces gap up after gap up that does not fill the next day; fade entries become a stream of small losers.
  • Sideways chop for continuation mode. The “confirmed” gap gets faded back over the following sessions and continuation entries lose to range-bound price action.
  • Contracts whose gaps reflect a different mechanism than equity index gaps (gold, currencies). The same threshold value can pick up too few trades or the wrong kind.
  • Periods around major scheduled events (FOMC, CPI). The gap on the event day is often noise, not a tradeable setup, and the one-bar hold gives the strategy no way to wait out the noise.

Possible Uses

  • A control strategy when testing other overnight ideas. Any setup whose returns track gap fade on NQ is not adding much.
  • A clean way to test the “gaps fill” thesis on whatever contract and threshold you care about. The same parameter set can be sampled across years and across instruments.
  • A starting point for layered strategies. The gap signal can be combined with a regime filter, a volatility filter, or a position-sizing rule to see whether the edge strengthens in some conditions.

What It Does Not Do

  • No stops, no targets, no trailing exits. The one-bar hold is the only exit; if the position moves against you the full daily range, you take it.
  • No intraday entries. Orders only fire on daily-bar closes.
  • No volatility-adjusted threshold. A 0.5% gap in a calm regime and a 0.5% gap in a chaotic regime are treated identically.
  • No position stacking. Once a position is open, additional signals are ignored until the one-bar exit fires.
  • No awareness of holidays or session length. A short trading week with a Friday open after a Wednesday close is still treated as a normal day-to-day gap, which is the intended interpretation.

Test this strategy

Run it on your contracts, timeframes, and parameters.