HomeBlogGap Up Failure Fade Backtest: The Difference Between Intuition and Evidence
ValidationApril 19, 2026·6 min read

Gap Up Failure Fade Backtest: The Difference Between Intuition and Evidence

Daniel Ratke

Daniel Ratke

Research & Engineering

Gap Up Failure Fade Backtest: The Difference Between Intuition and Evidence

Term map

Backtesting vocabulary for this article

Treat signal timestamp, point-in-time universe, quote-aware fill, reject reason, replay artifact, walk-forward test, and cache key as first-class terms. They separate reproducible research from a backtest that only preserves the final performance table.

Follow the linked definitions for Point-in-time contracts, Quote-aware fills, Reject reasons, Replay artifact, Cache key, Signal timestamp, Look-ahead leakage, Walk-forward test, Slippage model, Same-bar fill, Promotion gate, and Options data API.

Repository reference: cutebacktests

Abstract

Gap-up failure fade is the kind of setup many discretionary traders find immediately attractive. Overnight enthusiasm fades, the market fails to reclaim VWAP, the bounce stalls, and the short side looks clean. The story is coherent. The challenge is whether that story survives once the pattern is converted into a repeatable strategy.

This repository's c32 branch answers that question more honestly than most public writeups. As described in Episode 7, c32 looked for a gap-up session that failed to reclaim VWAP and then shorted the continuation of that failed bounce. The quality version made the gap threshold larger and shortened the deadline. The result was still no_feasible_profile, with failed DSR, Sharpe, Sortino, and trades-per-week requirements.

This reversal test should be read with Gap Reclaim Strategy Backtest: Why a Good Chart Pattern Failed the Data, Backtesting Execution Realism, and Same-Bar Fills and Lookahead in Intraday Strategies. That keeps gap size, failed continuation, entry delay, stop logic, quote-aware fill, slippage, and drawdown in view.

Question

The practical question is not whether failed bounces exist. The market produces them constantly. The useful question is whether the failed-bounce pattern is robust enough to be a strategy rather than a memorable chart anecdote.

That is the distinction the c32 branch makes possible. Once the gap size, reclaim behavior, and VWAP timing deadline are specified, the setup becomes something that can disappoint you honestly.

Method: How the Gap Up Failure Fade Backtest Was Structured

The c32 branch defined a fairly intuitive reversal archetype. A stock gaps up into the open, cannot reclaim VWAP cleanly, and then continues lower after the bounce fails. The quality version then makes the setup more selective by requiring a larger gap and a shorter deadline.

This is a good structure for testing because it turns intuition into constraints. The strategy is no longer "short failed strength." It becomes a measurable combination of overnight gap, intraday reclaim failure, and time-limited continuation.

Evidence / Results

The outcome in Episode 7 is clear:

  • lane: c32 gap-failure fade
  • result: no_feasible_profile
  • main blockers: failed DSR, Sharpe, Sortino, and trades/week

That means the branch could tell a convincing market story more easily than it could produce robust out-of-sample evidence. This is exactly the sort of negative result that should be public because it is so easy to over-believe the pattern.

What Worked

What worked was the conversion of narrative into testable logic. The repo did not let the setup stay at the level of "this often happens." It defined the conditions tightly enough to let the evidence push back.

That alone is valuable. A failure under explicit structure teaches more than a success under a vague idea.

What Failed

What failed was the evidence bar. The branch could generate a plausible narrative and still could not satisfy the combination of robustness and activity needed to survive. This is a common fate for reversal ideas built from visually appealing post-open behavior. The pictures are easier to remember than the sample statistics.

The c32 result is also a reminder that tightening a setup does not always create a stronger strategy. Sometimes it creates a cleaner story and a weaker sample at the same time.

Takeaway

The gap-up failure fade backtest shows the difference between intuition and evidence very clearly. The intuition was good enough to deserve a test. The evidence was not good enough to earn continuation.

If you want the broader negative-results context, Failed Trading Strategies: 7 Ideas We Tested So You Do Not Have To is the main companion. If you want the continuation-side failure instead of the reversal-side failure, Gap Reclaim Strategy Backtest: Why a Good Chart Pattern Failed the Data is the natural pair. Join the research log to get the next backtest and failure report.

How the terminology applies

For Gap Up Failure Fade Backtest: The Difference Between Intuition and Evidence, the backtesting workflow should treat Point-in-time contracts, Quote-aware fills, Reject reasons, Replay artifact, Cache key, and Signal timestamp as operational state rather than glossary decoration. That framing keeps the research claim causal: the strategy can only select instruments, prices, and labels that existed at the decision time.

A developer implementing this Validation idea should persist Look-ahead leakage, Walk-forward test, Slippage model, Same-bar fill, Promotion gate, and Options data API beside the result, instead of leaving those words in a term card. It also turns attractive performance into an auditable record where fills, skips, thresholds, and replay inputs can be challenged independently.

The review artifact for Gap Up Failure Fade Backtest: The Difference Between Intuition and Evidence becomes more useful when OPRA-originating data, OCC option symbol, Bid/ask spread, Midpoint, Quote/trade condition, and Quote vs trade semantics appear in the same body of evidence as the selected rows. When a result is promoted, these fields should appear in the run manifest, rather than a prose summary or final equity curve.

In production notes for this backtesting workflow, REST snapshot, WebSocket stream, Entitlement gate, Quote freshness, Timestamp semantics, and Pagination cursor define the checks that decide whether the workflow is reproducible. The result is a backtest that can be rerun, compared across threshold families, and rejected when the evidence is not strong enough.

For Gap Up Failure Fade Backtest: The Difference Between Intuition and Evidence, the practical acceptance test is simple: another developer should be able to read the body, identify the exact inputs, reproduce the request sequence, and explain the accepted and rejected rows without relying on the bottom terminology grid. If a phrase appears in the page vocabulary, it should correspond to a stored field, a validation check, a replay step, or an implementation decision in the backtesting workflow.

This is also the reason the article should not measure success only by the final chart, table, or headline metric. The better standard is whether the data path, timing model, entitlement state, and evidence trail survive review. When those pieces are written directly into the body, the terminology becomes part of the workflow readers can implement.

Why the failed setup still needs market detail

A failed gap-up fade still deserves the same data record as a winner. The replay should store the opening aggregate bar, the gap measurement, the signal timestamp, and the market session label before it touches the option leg. If the strategy then selects an option, the manifest should name the contract universe request, the selected OCC option symbol, the DTE bucket, the moneyness band, open interest, implied volatility, and the quote window used for the proposed entry.

The point is not to rescue a weak setup with more terminology. It is to make the failure legible. A gap fade can fail because the stock signal is weak, because the selected contract has a wide bid/ask spread, because the NBBO moved before the next executable bar, or because the relevant quote condition disqualifies the row. Those are different failures. They should not be merged into one "bad strategy" label.

This is also where provider-style schemas help. Store the stock OHLCV fields separately from options quote fields, and keep tick-level trades separate from top-of-book quotes. A future researcher can then compare the signal failure with the execution failure and decide whether to close the family, narrow the universe, or retest the same idea under a stricter promotion gate.

Terminology

Market-data terms used in this article

These terms keep the article connected to the CuteMarkets knowledge base and to the exact API workflow behind the research.

Point-in-time contracts

Contract discovery anchored to the research date so a backtest does not use future listings.

Quote-aware fills

Entry and exit assumptions based on bid/ask quotes, quote age, spread width, and side-specific fill rules.

Reject reasons

Logged explanations for skipped contracts or fills, including stale quote, wide spread, no bid, or missing data.

Replay artifact

The saved request, selection, fill, reject, and metric record that lets another developer audit the backtest.

Cache key

The structured identifier that keeps provider, endpoint, ticker, timestamp, plan, and schema state from being mixed.

Signal timestamp

The exact time a strategy made a decision, used to reconstruct the visible universe and quote window causally.

Look-ahead leakage

A research error where a fill, contract, indicator, or label uses information unavailable at decision time.

Walk-forward test

A validation method that repeatedly trains and evaluates across separated time windows instead of trusting one optimized sample.

Slippage model

A fill-cost assumption based on bid/ask side, midpoint, spread percent, quote age, and liquidity policy.

Same-bar fill

An intraday backtest assumption that can become invalid when signal, entry, stop, and target ordering is ambiguous.

Promotion gate

The written threshold that decides whether a research candidate can move into paper trading or production monitoring.

Options data API

The product surface for chains, contracts, quotes, trades, aggregates, Greeks, IV, open interest, and expirations.

OPRA-originating data

The U.S. listed-options source context behind quotes, trades, exchange participation, and consolidated option-market records.

OCC option symbol

The exact option contract identifier that preserves root, expiration, call or put side, and strike.

Bid/ask spread

The execution interval between bid and ask that determines whether a contract is realistically tradable.

Midpoint

The computed center between bid and ask, useful as a reference price but not proof that an order would fill.

Quote/trade condition

The condition-code, exchange, correction, sequence, and timestamp context that explains how a quote or trade row can be used.

Quote vs trade semantics

The distinction between executable bid/ask markets, printed transactions, and bar-level summaries.

REST snapshot

A reproducible request for current or historical market state, used for initialization, backfills, and audit logs.

WebSocket stream

A persistent live connection that needs subscription topics, reconnect tracking, freshness labels, and REST repair paths.

Entitlement gate

The product, plan, quote, live, delayed, historical, or commercial-use boundary checked before data is shown.

Quote freshness

The age, timestamp, and live or delayed state of a bid/ask record before it is used in a scanner, backtest, or UI.

Timestamp semantics

The exchange, provider, ingestion, session, and application time context attached to a market-data record.

Pagination cursor

The continuation token or next URL that keeps large chains, trades, quotes, and historical windows complete.

Daniel Ratke

Written by

Daniel Ratke

Research & Engineering

Daniel covers the deeper research notes: options backtesting, execution realism, robustness testing, data engineering, and strategy validation.