← Lab
S045

SPX 0DTE ATM iron fly — forward paper

spx-0dte-atm-fly-forward-v1
failed Stage 3 (forward paper) — invalidated by a settlement-proxy bug found in the Stage 1–2 backtest audit 2026-07-20 · forward paper 2026-07-13 → 2026-09-11 (44 sessions, run to full term)
Share: Twitter / X LinkedIn
Backtest equity curve — S045
max drawdown -39% · 1.0x = start
0.7x1.0x1.2x2022202420262026-07
Equal-weight book; 1.0x = start. Trough marked.
-119633.4%-77693.0%-35752.6%+6187.9%+48128.3% 2670 Per-event excess return vs benchmark — S045 excess return per event (name − benchmark, over the hold window) · dashed line = zero
gate
Per-event excess return vs benchmark — S045

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.

← OlderSPX 0DTE at-the-money iron fly Newer →SPX 0DTE managed condor, high-vol days only

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

15 Sep 2026, 21:45