ID: S045
Slug: spx-0dte-atm-fly-forward-v1
Failed at: Stage 3 (forward paper) — invalidated by a settlement-proxy bug found in the Stage 1–2 backtest
Run date: audit 2026-07-20 · forward paper 2026-07-13 → 2026-09-11 (44 sessions, run to full term)
Outcome: FAILED
Headline metric: corrected backtest Sharpe −0.9, mean −$28/session, negative at every wing width before costs
Fail reason: The edge was an artifact of how the backtest settled. It priced each 0DTE expiry off spx_close = SPY × 10, which sits 9–20 SPX points below the real index (the SPX/SPY basis, ≈10.02× and growing). A rally to the upper wing was dragged back toward the ATM body, so max-losses were booked as max-wins. Settled off the options' own parity close (K + C − P, which is what SPXW actually settles to), the fly loses.
What we tested
The frozen base trade: a short call and short put on the ATM strike, parity-centered, entered 09:35 ET, wings at 1.0 × the ATM straddle, managed with a robust 25% profit-take (trailing-median trigger, limit fill) and otherwise held to cash settlement. One contract. Stage 1–2 ran on the unified four-year SPX 0DTE surface; Stage 3 ran forward on live Tastytrade quotes with real commissions and worse-than-mid fills.
What we found
The backtest, corrected. Three stacked artifacts had each flattered the result independently: a 25%-profit-take evaluated on 1-minute marks that harvested bid/ask noise; the SPY × 10 settlement proxy; and narrow-wing amplification of both. With all three removed the fly is negative before costs at every wing width.
The forward paper, and why it does not rescue it. Over 44 sessions the live book finished +$3,400, or +$77 per session, 28/44 winning. That reads like a contradiction of the corrected backtest. It is not:
| forward paper (44 sessions) | |
|---|---|
| mean per session | +$77 |
| standard deviation | $709 |
| standard error of the mean | $107 |
| 95% interval for the true mean | −$137 … +$291 |
| corrected backtest expectation | −$28 — inside that interval |
| worst session | −$1,164 |
| CVaR₂₀ | −$1,070 |
The forward mean sits 1.0 standard error from the backtest expectation. Eight weeks of a payoff with a $709 session-to-session spread cannot separate "loses $28 a session" from "makes $77 a session" — the measurement is not precise enough to have an opinion. The tail says the same thing from the other side: a 64% win rate with a CVaR₂₀ of −$1,070 is the shape premium selling always has, where the mean and the win-rate flatter and only the tail is informative.
What we learned
A settlement proxy is part of the strategy, not part of the plumbing. SPY × 10 looks like a harmless stand-in for SPX. For a defined-risk structure whose entire P&L is decided by where price lands relative to strikes, a systematic 9–20 point offset does not add noise — it moves outcomes across the payoff kink and inverts them. The lesson generalises to any structure priced at a boundary.
Eight weeks of live paper cannot overturn four years of corrected backtest. This is the number worth remembering: ±$107 standard error on 44 sessions. Running the forward book to full term was still the right call — it is what let us measure that, instead of guessing — but the honest reading of a positive eight weeks here is "consistent with a small loss, a small gain, and everything between".
Win rate is not evidence for a left-skewed payoff. 28 wins in 44 sessions alongside a −$1,070 CVaR₂₀ is exactly the configuration that tail-aware gates exist to catch. Had the gate been mean- or Sharpe-based, this forward result would have read as a pass.
What this doesn't tell us yet
Whether any 0DTE structure has an edge on this surface. What failed here is one fixed daily trade, priced correctly. A different question — can market positioning tell us when to enter, instead of entering the same thing every day — is open and being studied separately.
Whether the forward book would have turned negative with more sessions. It finished +$77 per session on a ±$107 standard error; the honest statement is that 44 sessions could not measure it, not that the live result was bad. Stopping at the scheduled eight weeks rather than extending was deliberate: the term was pre-registered, and extending a book because its number is pleasant is how a gate stops meaning anything.
What happens next
Nothing. The setup is closed and the paper book is stopped as of 2026-09-12. The ZERODTE_MANAGED_ENABLED
flag is off and the scheduler jobs that drove it are being removed.
The one thread that continues is the positioning-timing study, which uses the same captured data to ask a different question and is not affected by this result.
For the specialist — methodology details (click to expand)
The settlement path. SPXW is PM-settled against the index. The backtest used spx_close = SPY × 10 as a
stand-in. The SPX/SPY ratio is not 10 but roughly 10.02 and drifts upward with the index, so the proxy sits
9–20 SPX points below the true settle. For a defined-risk structure the error is not symmetric noise: it
systematically moves the settle across the payoff kink, converting upper-wing max-losses into ATM max-wins.
Corrected, sessions are settled off the options' own parity close, K + C − P, which is what the contract
actually resolves to.
Three stacked artifacts, each sufficient on its own. (1) A 25% profit-take evaluated against 1-minute marks harvested bid/ask noise — replaced by a robust trigger (trailing-3-minute median) with a limit fill. (2) The settlement proxy above. (3) Narrow wings amplified both, because a smaller wing means a larger share of sessions resolve near the kink where the proxy error decides the outcome.
The forward statistics. n = 44, mean +$77.3, population sd $709, standard error $106.9, 95% interval −$137 … +$291. The corrected backtest expectation of −$28 lies 1.0 standard errors from the forward mean and well inside the interval. Tail: worst −$1,164, CVaR₂₀ −$1,070, 28/44 winning.
Related
Same root cause: S044 (managed near-ATM condor) and S049 (SPX+QQQ dual-fly diversification). The whole 0DTE fly-and-condor family shares this settlement path and this verdict. The positioning-timing study (lab/candidates/spx-0dte-positioning-timing.md) is a separate, still-open question and is not affected — it asks whether market positioning can time an entry, not whether a fixed daily structure has an edge.