S042 — SPX 0DTE vol-gated near-ATM condor — ⚠️ RETIRED (vol-gate premise FALSIFIED in exploration)
ID: S042
Slug: spx-0dte-vol-gated-condor-v1
Type: OPT
Date drafted: 2026-07-09 · Retired unfrozen: 2026-07-11
Status: ⚠️ RETIRED — the vol-gate premise was falsified during exploration; never frozen, never
counted, never ran a gate. This was a pre-registration DRAFT (§2A exploration); the conditioning thesis
that defines it did not survive the honest train battery (see "Why this was retired" below). Because
it never froze, it is not a counted pipeline FAILED — the 0DTE pillar trial count is unchanged at 6
— it is an exploration finding, recorded openly. The base trade and the single management lever that
did survive are re-registered clean as the successor S044 (spx-0dte-managed-condor-v1). The
exploration history below is retained as the evidence trail; do not run this spec.
Successor:
S044—spx-0dte-managed-condor-v1(same base trade, uniform 25% profit-take, no conditioner). A base-trade change (dropping the gate is a structural change) spawns a new identifier, not an edit — CLAUDE.md §2. Pillar: was the 0DTE pillar's deferred "market-condition filter" arm (0dte-pillar.md§7.2). That arm is now answered: the market-condition filter does not help once the trade is managed.
Why this was retired (the vol-gate premise, falsified three ways — 2026-07-11)
The spec's load-bearing claim was that the intraday VRP edge collapses in high vol, so a pre-specified vol gate (skip/downsize elevated-vol sessions) turns a fair sell into a tail-aware edge (§2 below). That claim held for the unmanaged trade — but the pillar's own thesis is that management is the strategy, and once the near-ATM condor is managed (hold-to-settle + profit-take), the vol relationship reverses, and every attempt to exploit a vol conditioner lost to doing the same thing every day:
- The high-vol tercile is the BEST under management, not the worst. the engine (managed, settle + 25% PT, 717 train sessions): split by backed-out entry IV / VIX / VIX-rank, the high tercile has the highest mean and smallest CVaR — the opposite of the unmanaged split that motivated the gate. High-vol days carry the richest credit, and the profit-take banks it before the move.
- Gating hurts. Skipping the high-vol tercile (the gate's whole action) lowers the book: gated mean ~$74–83 vs ungated $114, on 2/3 of the days. The gate removes the best sessions.
- Vol-conditioning the profit-take also hurts. the engine (717 train, high-VIX ≥ 19.7):
| profit-take rule | mean$ | ann SR | worst$ | CVaR5$ | win% |
|---|---|---|---|---|---|
| uniform 25% PT (→ S044) | 114 | 3.42 | −1902 | −1140 | 81% |
| HIGH-vol → no-PT, low/mid → PT | 24 | 0.60 | −2060 | −1189 | 64% |
| HIGH-vol → PT, low/mid → no-PT | 160 | 2.94 | −1902 | −1357 | 65% |
| no PT ever (hold all) | 70 | 1.19 | −2060 | −1389 | 48% |
The uniform rule wins on the tail-first metrics (Sharpe, CVaR, win-rate). The profit-take works as a uniform left-tail trimmer, not a regime timer.
Conclusion. There is no vol-conditioning that beats the unconditioned managed condor. The disciplined
response to a falsified, pre-specified gate is to remove it — not to keep hunting for a version that
fits (that would be the overfit tell this whole apparatus exists to prevent). The surviving setup is
carried to S044. This is the honest pipeline overturning a plausible, mechanism-backed thesis —
recorded, not buried.
[HISTORICAL — the original draft follows, retained as the evidence trail. Superseded by S044.]
Pillar (original): the 0DTE pillar's deferred "market-condition filter" arm (
0dte-pillar.md§7.2,0dte-pillar-ledger.md"Deferred"), pre-registered here. Sibling ofS026(the forward fixed matrix). Promoteslab/candidates/spx-0dte-wing-selling-v1.md— but see §1: exploration falsified that candidate's "sell the wings" thesis; the surviving signal was thought to be the vol gate (now itself falsified — see above).
| ID | S042 (draft; assigned on freeze) |
| Slug | spx-0dte-vol-gated-condor-v1 |
| Validation | Stage 1–2 historical (4yr, Databento OPRA + Massive, the data store) → Stage 3 forward paper (Tastytrade, S026 apparatus) |
| Engine | the exploration workspace (the engine, the engine, the engine, the engine, the engine, the engine, the engine, the engine, the engine) |
| Why it complements the book | Same intraday / zero-overnight-gap orthogonality as S026; adds the conditioning question S026 defers. |
Revision log
2026-07-10 — amended for the full daily dataset + data-driven spread (still DRAFT, still unfrozen, still uncounted).
Three data facts changed since the 2026-07-09 draft (amended per §6a — pre-freeze, on non-vault data):
1. Data is now 4 years, not ~2. Databento OPRA backfill (2022-06-01 → mid-2024) + the completed Massive
sweep (mid-2024 → now), unified in the data store: 1,020 trading days, incl. the 2022 bear — a real
stress regime the Monday sample lacked. Stage 1–2 are correspondingly stronger (see §3).
2. Real bid/ask is now available (Databento OPRA cbbo-1m) — the "no quotes → modeled spread" hard
limitation is removed. §3 + new §3a.
3. The flat 0.10pt/leg understated cost ~2×. A 38-date entry-window quote sample gives real half-spreads
of ~0.15pt short / 0.25pt wing, regime-scaled. New §3a defines the replacement cost model.
Exploration color (not a verdict): the full-508 daily baseline confirmed §9's forecast — mean roughly
halved vs the Monday sample (near-ATM +$159 vs +$304) and tails fatter (−$1,890→−$2,982 vs −$1,671→
−$1,940). This is why the confirmation must not run until the vault is sealed (still [CALIBRATE], owner's act).
1. One-line hypothesis (and what exploration already showed)
Mechanically-managed 0DTE SPX iron condors capture the intraday variance risk premium with a controllable tail — but only when entry-time volatility is normal; the edge collapses in high-vol regimes. So a pre-specified volatility gate (skip / downsize elevated-vol sessions), combined with the pillar's management (time-exit, coarse profit-take), is what turns a fair-priced sell into a tail-aware edge.
Exploration context (badged ONGOING, no S-number, the exploration workspace) — motivating, not
confirming:
- The candidate's "sell the wings, not the ATM" thesis was falsified: near-ATM had the best
Sharpe (2.13 vs 1.75 at 0.6% OTM) and least skew; further-OTM was worse on both. Wings are not the
edge → this spec sells near-ATM, not wings.
- Delta-selected condors were worse on the tail than fixed-% width (delta-targeting widens the
structure on high-vol days → fatter dollar tail) → base trade uses fixed-width wings, not delta wings.
- The vol gate is the real lever: 94-Monday near-ATM split by entry IV — low-vol per-trade Sharpe
0.62, high-vol 0.03 (win 34%, mean +$27). Monotonic. High-vol premium ≈ fairly priced.
- Honesty on the numbers: the 2.13 Sharpe is Monday-only, in-sample, best-of-family, per-trade
Sharpe just 0.30 × √49, and no full max-loss day has been paid; bootstrap 95% CI [0.74, 3.65].
These reads are exploration — this spec exists to test them out-of-sample and forward.
- Full-daily update (2026-07-10): on the complete 508-session daily set (2022–26) the near-ATM mean
roughly halved (+$159/sess vs the Monday +$304) and tails widened (−$1,890→−$2,982 vs −$1,671→−$1,940) —
the Monday sample flattered, exactly as forecast.
- Honest train-only battery (2026-07-10 — vault sealed b00ebc63…, 718 non-vault sessions, §3a spread):
with honest cost, only near-ATM survives (+$80/sess, per-trade SR 0.10, ann SR ≈ 1.36; the 0.6% and
1.0% buckets go negative). The vol gate is confirmed and is the load-bearing lever — near-ATM by entry
IV: low +$171 / mid +$111 / high −$41 (loses money), monotonic and out-of-Monday. Gating out high-IV
(~>33%) roughly doubles the mean to ~+$141/sess on ~2/3 of days. Weekday: Mon (+$183) and Wed (+$153)
best; Tue/Thu/Fri weak (Thu ≈ 0). So the S042 thesis holds directionally at the honest ~1.0–1.5 Sharpe
forecast — vault (302 sessions) untouched; freeze + vault + forward still pending.
- Management test (2026-07-10 — the pillar's core question, train-only): time-exit is harmful (every
exit 12:00–15:30 negative — forfeits back-loaded theta + pays a 2nd spread; SPX cash-settled + defined-risk
→ hold to settlement). Profit-take helps: ride-to-settle + bank at 25% of credit → ann SR 1.19 → 3.42,
win 48% → 81%, CVaR −$1,389 → −$1,140. So management = hold-to-settlement + profit-take (~25%), a
single knob — refining the pillar's "management is the strategy" thesis (it's the profit-take, not the time-exit).
2. Rationale (the "because") — pre-specified, not discovered
0DTE decays within the session; most sessions stay range-bound, so OTM condors expire worthless often (intraday VRP + dealer hedging damping moves). The tail is structural: near expiry gamma is enormous. Why the vol gate has a mechanism (the D-001 lesson — specify a priori, don't cluster-discover): the variance risk premium compresses when implied vol is high, because high IV coincides with high realized vol — the market prices the danger, so the seller is no longer paid for it. Selling calm-market premium is where the residual VRP lives; selling storm premium is picking up fairly-priced risk. The gate is therefore an economic filter, and the in-sample IV split (§1) is corroborating color, never the selection mechanism — confirmation is reserved for sealed + forward data (§5–§6).
3. Data & the honesty constraints (flagged)
| Input | Source | Honest limitation |
|---|---|---|
| SPXW 0DTE minute OHLC (4yr, 2022-06→) | Databento OPRA (2022→mid-2024) + Massive (mid-2024→), unified the data store | Two vendors, verified contiguous at the seam; 1,020 days incl. the 2022 bear. |
| Bid/ask (spread) | Databento OPRA cbbo-1m (real, minute) |
AVAILABLE — removes the old "modeled spread" limitation. Used directly, or via the §3a proxy. |
| Spot / ATM | SPY close/open ×10 | Index (I:SPX) not entitled → SPY×10 proxy; entry uses the open not the 10:00 spot (small drift bias, §7). |
| Vol conditioner | backed-out IV / VIX / pre-open range | The IV gate is modeled (BS back-out); IV-rank or VIX is the cleaner exogenous conditioner — [CALIBRATE]. |
| Live chains (Stage 3) | Tastytrade / dxFeed | Forward paper only; the honest gate. |
Frictions conservative throughout (real SPX commissions + the data-driven spread of §3a on every leg, bracketed mid…full-cross). Nothing flattered; the all-worst (full-cross) bound is always reported alongside.
3a. Spread / cost model (data-driven — replaces the flat 0.10pt)
The earlier flat 0.10pt/leg ($10/leg, $40/condor) was a stopgap. A 38-date entry-window (10:00 ET) sample
of real OPRA cbbo-1m quotes across 2022–2026 shows it was ~half the true cost — median half-spread
(the cost of crossing from mid):
| moneyness | median half-spread | $/leg |
|---|---|---|
| short (<0.7% OTM) | 0.15pt | $15 |
| wing (≥0.7% OTM) | 0.25pt | $25 |
and it scales with regime — ~$29/leg in 2022 (bear) vs ~$10/leg in 2026 (calm). So the confirmation cost
model is moneyness- and vol-dependent, not flat, and represents the full-cross (worst-case) bound; a
patient credit condor can fill nearer mid, so P&L is bracketed [mid-fill … full-cross] (S026 discipline).
Because real per-contract cbbo-1m is now available, the run can use actual spreads where present with the
proxy above as fallback. [CALIBRATE] — owner sets the headline fill assumption (mid / proxy / actual) at freeze.
Note this reinforces the vol gate: high-vol days cost ~3× more to trade and pay less — bad on both axes.
4. The base trade (FROZEN on freeze — [CALIBRATE] values are the owner's)
Held constant so the only questions are the ≤3 management knobs in §5:
- Underlying / structure: SPX (SPXW 0DTE), iron condor, defined-risk. FROZEN.
- Short strike: ✅ DECIDED (owner 2026-07-10): fixed 0.2% moneyness (near-ATM), NOT delta. The validated mean/Sharpe peak (train: +$80/sess, ann SR 1.36); fixed-% moneyness beat delta-selection on the tail. A round choice on the peak — deliberately not densified to the exact-strike argmax.
- Wing: ✅ DECIDED (owner 2026-07-10): fixed 0.4% of spot (not delta-selected). Tested 0.3% vs 0.4% under the profit-take (fair A/B, 391 same sessions): 0.4% won on Sharpe (2.15 vs 1.79) and return/CVaR. Under management the tail matters less (wins banked early), so the wider wing's extra premium dominates its fatter tail — the managed comparison is what decided it, not the unmanaged one.
- Entry time: ✅ DECIDED (owner 2026-07-10): ~10:00 ET (fill window 10:00–10:15). Frozen a priori, not scanned (look-ahead discipline). 09:50 forked as sibling S043 for a train-only A/B.
- Sizing / capital: 1 contract per cell/session, $100K (mirror S026). FROZEN.
- Session eligibility: regular full-length sessions only; holidays + early closes skipped, verified against the trading calendar. FROZEN.
- Max-loss handling: structure + clock (wings = defined-risk cap; time-exit for terminal gamma). No active price stop (deferred A/B, per pillar) — the wing is the catastrophe cap.
5. The pre-registered knobs (now 2 degrees of freedom — the DoF budget)
The honesty core: only two knobs vary (vol-gate + profit-take), each with an economic "because," on coarse grids. Base-trade params (§4) are frozen, not scanned; time-exit was tested and dropped (§5.2). No stacked if-then. Each setting is a counted trial (pillar-wide deflation).
- Vol gate (the conditioning layer — the new question). Conditioner
[CALIBRATE]: IV-rank band / VIX band / pre-open realized range (exogenous, known pre-entry). Action[CALIBRATE]: skip vs half-size elevated-vol sessions. Coarse: ≤3 thresholds. Because: VRP compresses in stress (§2). - Time-exit — ✅ RESOLVED: NONE (hold-to-settlement). Tested 2026-07-10 via a coarse sweep, found harmful. The sweep (12:00 / 13:30 / 15:00 / 15:30 vs hold-to-settle) showed every time-exit is negative — a forced early close forfeits the back-loaded 0DTE theta (extrinsic you'd otherwise keep) and pays a second full-cross spread. Because SPX is cash-settled European (no assignment) and the condor is defined-risk (wings cap the catastrophe), riding to settlement is optimal. So time-exit is dropped — not a knob. (the test suite.)
- Profit-take — ✅ the single management lever (confirmed 2026-07-10). Ride to settlement, but bank
at ~25% vs 50% of credit (coarse
[CALIBRATE]; never a tuned %). Tested: 25% PT lifted ann Sharpe 1.19 → 3.42, win 48% → 81%, and improved CVaR −$1,389 → −$1,140 — a real risk-adjusted gain (part of the Sharpe is the capped-upside premium-selling profile, but CVaR genuinely improved and losses stay wing-capped). 25% = best tail, 50% = best mean. Because: banking wins early cuts variance and takes some positions off before the afternoon move. Modeled at mid — re-check with a conservative PT exit cost.
Trial budget [CALIBRATE]: propose a pruned grid (e.g. ≤3 vol settings × 2 profit-take, time-exit
fixed) ≈ ≤6 counted cells + hold-to-settlement + no-gate benchmarks. Every cell accrues to the pillar
ledger; a larger grid dilutes power and raises the Deflated Sharpe Ratio (DSR) bar. Prune coherent trades only (pillar §4).
6. Anti-overfitting stack (the measures that keep it honest)
- Holdout vault — sealed BEFORE any confirmation run, touched ONCE.
[CALIBRATE]— propose the most recent ~6 months + a random 20% of weeks (fixed seed). Never seen during exploration/tuning. Vault-touch budget: 1 for this family. This is the single most important step and must happen before the confirmation grid runs. - CPCV (combinatorial purged cross-validation, the engine) for Stage 2 — many OOS paths with purge + embargo around each session. Report the distribution of OOS performance, not one split.
- Deflated Sharpe + probability of backtest overfitting (PBO). Haircut the best cell's Sharpe by the pillar-wide family-wise trial
count; report DSR, not raw Sharpe. PBO (probability of backtest overfitting)
[CALIBRATE < ~0.3]. - Family-wise trial accounting. Every cell tried counts in
0dte-pillar-ledger.md(currently 6); deflation uses the cumulative pillar count, not this spec's alone. Trying things is not free. - Tail-aware gate (binding, inherited pillar §6). Win-rate alone never passes. Worst-session + CVaR budget binding; the vol gate must demonstrably improve CVaR vs the ungated cell (its whole reason to exist) — if it doesn't, it fails. Positive expectancy net of conservative fills/commissions/spread.
- Economic "because" required per knob (§2, §5). A knob without a mechanism is a fit and is dropped.
- Parameter-sensitivity. Edge must survive ±1 coarse grid step on each knob; a threshold whose small nudge swings the result is fragile → fail.
- Forward paper is the ultimate gate. Historical Stage 1–2 is corroboration (pillar §7.4); even 4yr (2022 bear + 2023–26) holds only ~3–4 independent stress episodes — too few to certify a tail. A surviving cell graduates to forward paper (S026 apparatus) and must also clear the pillar forward gate before anything reads "promoted."
6a. The exploration→freeze boundary (what may change, what is locked)
Much of Stage 1–2 is deliberately the same battery already run on the 94 Mondays (Sharpe + CI, the entry-IV vol split, delta-vs-moneyness, tail/CVaR) — re-run on the full ~500-day set. That battery will refine this draft, and that is legitimate precisely because it happens before the freeze, on the non-vault data only:
- Now (draft, exploration, §2A): when the ~500-day data lands, re-run the battery on the non-vault portion. Amend this spec in place — does near-ATM still win? does the vol gate survive outside the Monday sample and across weekdays? what is the honest daily tail? Overwrite freely; nothing counted, no verdict.
- Freeze (the owner's act): locks the base trade, the ≤3 knobs, the grid, the gate numbers, and
seals the vault. After this, results may not change the spec — a change is a new
S-NNN, not an edit. - Confirm (once): the frozen config runs on the sealed vault + forward paper — the parts that must never be touched or adapted. That untouchability is what makes them evidence rather than fit.
So "the spec may change based on the full data" is exactly right pre-freeze and exactly forbidden post-freeze. Sealing the vault before exploration is precisely what lets the draft evolve freely without burning the confirmation.
7. Look-ahead / bias controls
| Risk | Control |
|---|---|
| Vol gate fit to in-sample IV split | Gate pre-specified on VRP mechanism; in-sample split is color; confirmed on sealed vault + forward. |
| Best-of-family selection | All cells pre-registered + logged; DSR/PBO deflate by pillar count. |
| Entry spot drift (open vs 10:00) | Documented (the engine); strikes chosen on the frozen rule, not hindsight; forward paper removes it entirely. |
| Flattering fills | Modeled spread + full-cross bound reported; a cell surviving only at all-mid fails. |
| Regime overfit (one Aug-2024 episode) | CPCV across the window; must hold in both allowed regimes or be explicitly regime-gated; forward paper is the real OOS. |
8. Pre-registered gate (drafted — FROZEN on freeze; [CALIBRATE] = owner)
- Stage 1 (quick-cut, historical, non-vault): positive tail-aware expectancy net of the data-driven spread (§3a); DSR > 0 after pillar deflation; the vol gate improves CVaR vs ungated. Min sample: all non-vault sessions. (Note: the unmanaged full-508 baseline is already marginal at ~+$120/condor post-honest- spread, so Stage 1 is really testing whether the gate + management lift it clear of the fat tail.)
- Stage 2 (CPCV walk-forward, historical, non-vault): OOS DSR positive; PBO <
[CALIBRATE]; survives ±1 grid-step sensitivity; holds in both allowed regimes. - Vault (once): the single surviving cell clears the same tail-aware bar on the sealed block.
[CALIBRATE]. - Stage 3 (forward paper): graduate to the pillar forward gate — min 100 sessions, CVaR ≤ the hold-to-settlement benchmark, positive expectancy net of asymmetric fills, deflated for pillar count.
- Fail = FAILED, recorded openly (worst sessions shown). A null (gate doesn't survive OOS/vault, or 0DTE is fairly priced once frictions + tail are honest) is valid and informative.
9. Pre-run forecast (committed before the confirmation run)
Committed: (a) near-ATM ungated shows a high win-rate with a bounded tail the mean flatters; (b) the vol gate improves CVaR and DSR vs ungated — or it fails and the "regime" was noise; (c) the time-exit cuts worst-session severity vs hold-to-settlement; (d) any stacked, many-branch rule will not survive CPCV + vault (that's the overfit tell); (e) the honest forward Sharpe lands ~1.0–1.5, not 2.1. A FAILED is a clean, publishable result.
Draft — amendable in place until the owner says "freeze & publish", at which point it freezes with a
timestamp, seals the vault, gets a gates.md section + ledger cells + pillar trial count, and runs once.
[CALIBRATE] fields are owner judgement calls and are not to be filled by the agent. English per repo
convention. Location: the internal file.