YRT Capital · infrastructure plan

Rebuilding 0DTE around what the evidence says actually works.

The current program buys cheap TSLA tickets on a news guess. The published, out-of-sample, net-of-cost evidence points the other way on every single axis. Here is the rebuild, what it needs, and how much of it we can build today without spending a dollar.

Drafted 2026-08-21 Basis Vilkov, 0DTE Trading Rules (SPXW, 2016-09 → 2026-01) Status buildable now on free SPY data

The one-paragraph version

0DTE is roughly half of all SPX volume. The money in it is made three ways, and only one is open to us. Market making is not — it needs colocation and exchange status, and the 24–30% spread we measured on cheap tickets is their revenue. Dealer-gamma positioning is a real mechanism but our own study found its power collapses once you control for VIX and ATM implied vol, and the data that would test it properly starts at $249/mo. The third is selling structured premium behind a conditional entry gate, and that one has a documented net-of-cost Sharpe of 0.82–0.93 out of sample. That is what we build.

What the research found

Structure matters less than the gate.

Vilkov tested SPXW 0DTE structures from September 2016 to January 2026, out-of-sample from April 2019, applying three layers of cost: mid-quote baseline, then bid/ask half-spread per leg, then an additional 0.5bp slippage-and-fee charge.

StructureGross SRNet SRVerdict
Put ratio spreads1.180.93Best single structure
Top-3 diversified basket1.120.82Best risk-adjusted overall
Strangle / straddle0.560.39Survives, thin
Iron butterfliesnegativeDies after costs
Iron condorsnegativeDies after costs
Call ratio spreadsnegativeDies after costs

Independent confirmation we already have

Iron condors and butterflies are on that dead list — and our own premium-selling backtests reached the same conclusion independently, on different data, in a different year. Two unrelated tests agreeing is the strongest signal in this whole document. It also means our research process works; we were just pointing it at the wrong structures.

The gate is the actual edge

The method is directional classification, not return prediction: a logistic regression estimating the probability that the structure's return exceeds zero. Full size when it fires, nothing when it doesn't. Predictors are restricted to 10:00 ET information only — implied variance, skewness proxies, lagged realized moments, and prior strategy P&L. The paper's own conclusion is that this is selective timing, not a broad unconditional edge.

Note what is not in that predictor list: news, sentiment, analyst ratings, social crowd scores, or any language model. Our entire current signal stack is absent from the one approach that survives costs.

Us versus that

AxisCurrent programWhat works
DirectionBuy premiumSell premium (ratio spreads)
UnderlyingTSLA — wide spreadsSPX / SPXW — tightest options market there is
SignalHeadlines → LLM self-rated confidenceImplied variance, skew, realized moments
EntryAt the openConditional gate at 10:00 ET
SizingFlat $1,000 budgetHard mapping — full size or zero
Cost modelNoneThree layers, applied from the start

Six axes, six mismatches. That is genuinely good news: the failure is our design, not the asset class.

What we can and cannot do today

CapabilityStatusDetail
Trade SPX / SPXW on paperHave Alpaca added index options paper trading on 2026-07-23 — SPX, SPXW, VIX, VIXW, DJX, XSP. Cash-settled, European, no early assignment.
See the SPX option chainMissing Alpaca does not provide index market data yet — “supported in the coming months.” We can send SPXW orders but cannot read their quotes.
Expired SPY 0DTE chainsHave Enumerable via status=inactive — verified back to 2024-01-19. 179–305 distinct strikes per expiry.
Intraday bars on expired contractsHave 5-minute OHLCV, ~81 bars per contract per session. Batched: 62 contracts in 0.81s.
Trade ticks on expired contractsHave Microsecond timestamps with exchange, price, size, condition codes. Thousands per contract per session.
Historical bid/ask (NBBO)Missing Alpaca exposes latest-quote only — no historical option quote endpoint. Must be proxied from tick data.
Implied vol / skew / GreeksDerivable Not supplied, but computable from bars + spot via backtest/pricing.py.
Realized intraday momentsHave From the 10-year 5-minute bar cache already built for the candle work.
Historical GEX / dealer positioningMissing Open interest is unrecoverable after the fact. Purchasable — but see below, not needed first.

Correction: we are not blocked

An earlier draft of this plan said no work could start before buying history. That was wrong, and testing it took twenty minutes. Expired SPY 0DTE chains, their 5-minute bars, and their full trade tapes are all available through Alpaca now, for free, back to January 2024. A batched pull of the entire near-the-money band across ~640 sessions projects to roughly nine minutes of API calls. Phases 2 through 4 can run on SPY immediately; the purchase becomes a later, evidence-gated decision instead of a prerequisite.

What the free route costs us

LimitationImpact
History starts 2024-01 The serious one. ~640 sessions against the paper's ~2,300, and it misses 2020 and 2022 entirely. A tail-risk strategy validated only across a bull-and-recovery stretch is not validated.
No historical NBBO The per-leg half-spread must be estimated from trade-price clustering and bid/ask bounce rather than observed. Defensible, but weaker than the paper's method.
SPY, not SPX SPY options are American-style with dividends — the short leg of a ratio spread carries genuine early-assignment risk that SPXW (European, cash-settled) does not.
1/10 notional Cosmetic for research; matters for commission drag per dollar deployed at size.

Should we move to IBKR?

Not for data. It does not solve the problem.

Worth checking properly, because the instinct is reasonable. But IBKR's API carries a disqualifying limitation for options research:

RequirementAlpacaIBKR
SPX / SPXW paper executionYes, since 2026-07-23Yes, long-standing
Historical data on expired optionsNoNo — explicitly unavailable
Bulk chain history for backtestingNoNo — pacing caps at 60 requests/10 min, BID_ASK counts double, 50 outstanding max
Real-time SPX quotesNot yetYes, with OPRA + Cboe index subscriptions
Live SPX execution qualityIndex options not yet liveBetter — plus portfolio margin

Verdict

Every 0DTE option we would backtest is an expired option, and IBKR will not serve those at any price. Switching brokers for data buys us nothing. Buy the history from a data vendor regardless of broker. IBKR becomes the right call later, as a live execution decision — real-time SPX quotes, better fills, portfolio margin — not a research one. Stay on Alpaca paper for now; it already executes SPXW.

Do we need to buy GEX by the minute?

No — and not for a while. Here is the ladder and where the money starts mattering.

GEX data quality ladder — what each rung actually gives you
Rungs 1–4 either freeze open interest overnight or model the intraday change rather than observing it. Only rung 5 ($249–$720/mo, Cboe Open-Close, strongest on SPX) gives exchange-marked positioning that actually updates during the session. Rung 6 is the institutional stack — OPRA feed, tick data, colocation.

The cheap tiers fail in exactly the way that already burned us. As the vendor comparison puts it: if a fund rolls its collar at 10:15, a rung-2 product finds out tomorrow morning. Our own earlier GEX work died on this same problem — historical open interest is unrecoverable, so we substituted a VIX percentile proxy, and an independent pre-registered study then found GEX's predictive power collapses from ρ −0.36 to −0.03 once you residualise on VIX and ATM implied vol.

Recommendation: defer it

The strategy that survives costs does not use GEX at all. Its predictors are implied variance, skew, realized moments and prior P&L — every one derivable from an option quote history we would be buying anyway. Spending on rung 5 now would be paying $250–$720 a month to test a hypothesis our own control already argued against, before we have built the thing that works. Revisit in phase 4, if at all.

The build

01

Pull the free SPY 0DTE history

Nine minutes of API calls, no procurement, no spend. Start here.

  • For every session from 2024-01-19 to today: enumerate the expiry's chain with status=inactive, keep the 0.98–1.02 moneyness band (~62 contracts), batch-fetch 5-minute bars, cache to disk.
  • Pull the trade tape for the same band — it is the raw material for the spread estimate in phase 2.
  • Compute implied vol per strike from bars plus the cached SPY spot, via backtest/pricing.py. That gives the vol smile the gate needs.
  • Start a daily live-NBBO recorder in parallel. It costs nothing, and in a few months it gives us a real quote history and a way to check the phase-2 spread proxy against observed truth.
Gate A cached panel of ≥600 sessions with ≥50 usable contracts each. Sanity-check three random sessions by hand against the tape before trusting it.
02

Build the cost model before the strategy

This is the specific mistake the candle work made — a real edge validated on a fill assumption that did not hold, discovered only at the end. We do not repeat it.

  • Implement all three layers from day one: mid-quote baseline, bid/ask half-spread per leg, then +0.5bp slippage and fees.
  • Since we have no historical NBBO, estimate the effective spread from the trade tape — price clustering and bid/ask bounce across the microsecond ticks. Validate it against the live NBBO recorder from phase 1 as that history accumulates.
  • Ratio spreads are multi-leg — the per-leg half-spread is the dominant cost term and must never be approximated as a flat haircut.
  • Measure the spread where this strategy actually trades. Our 24–30% figure came from $0.15–2.00 tickets. Ratio spreads sell near-the-money, where the spread is a far smaller fraction of premium. This number may be much better than we assumed, and it is the single input the whole result hinges on.
  • Report every result at all three layers side by side. A gross number never appears without its net beside it.
Gate The tick-derived spread estimate agrees with live recorded NBBO within a tolerance we state up front. If we cannot price a spread we can observe, we cannot price one we cannot.
03

Rebuild the strategy: SPXW put ratio spreads behind a 10:00 ET gate

Replaces news-sentiment ticket buying entirely.

  • Structure: put ratio spreads on SPXW, plus the top-3 basket as the diversified variant.
  • Gate: logistic regression on P(return > 0), hard mapping — full size or no trade.
  • Features, computed strictly from information available at 10:00 ET: implied variance, skewness proxies, lagged realized moments, prior strategy P&L.
  • Retire sentiment.predict_direction from the 0DTE path. Keep the journal's prediction-versus-outcome logging — that part is well built and we reuse it.
Gate Net-of-cost out-of-sample Sharpe above 0.5. The published benchmark is 0.82–0.93; anything under 0.5 means we have not reproduced the effect and should stop rather than tune.
04

Validate to the standard the candle work set

The one process in this shop that has caught a money-loser before it cost us.

  • CPCV with purge and embargo, re-selecting the gate inside each training split — never once on the full sample.
  • Block bootstrap for sampling uncertainty, since CPCV cannot measure it for a fixed non-fitted configuration.
  • Walk-forward across regimes, with 2022 and 2020 explicitly inspected.
  • Tail-concentration check: drop the best 2% and 4% of sessions and re-score.
Gate Selection bias under +0.15 Sharpe and a bootstrap CI that stays positive. Then, and only then, paper-trade it on Alpaca SPXW — and only after that discuss capital.
05

Only now decide whether to buy history

By this point the purchase answers a specific question instead of funding a hope.

  • If phases 3–4 show nothing on 2.6 years of SPY, do not buy. We will have learned it cheaply, which is the entire point of this ordering.
  • If they show something, buy ThetaData STANDARD (tick level, back to 2016-01-01, 1st/2nd order Greeks — matching the study) and re-test on 2016–2024 as genuine holdout. That covers 2020 and 2022, the regimes SPY-only cannot reach. Their docs publish tiers but no prices, so this needs a written quote.
  • Port SPY → SPXW at the same time: European exercise removes the early-assignment risk on the short leg, and Alpaca already executes SPXW on paper.
Gate A result on free data good enough to justify the spend. The purchase is the reward for a finding, not a bet on getting one.

Meanwhile

Friday TSLA bet $1,000 Leave running. It costs almost nothing and each Friday logs a scored prediction. It is not the path, but the data is free.
Budget scaling Hold No move to $5k. Confidence is LLM self-reported and has never been checked against an outcome — there are zero closed 0DTE predictions.
Candle strategy Unchanged Still the only validated edge here. Keep logging stop fills; ~30 needed, roughly four months.
Realistic ceiling 0.93 Best published net-of-cost 0DTE Sharpe. Real money, but below the 1.5–2.0 target. This is a sleeve, not the business.

What this plan assumes

Two things worth stating so they can be challenged. First, that a published result reproduces on data we buy ourselves — it often does not, and phase 2's gate exists precisely to catch that early. Second, that SPXW spreads for us are close to the paper's assumption; we are a retail account, and if our realised half-spread is materially worse, the net Sharpe falls with it. Both are measurable in phase 2, before any strategy code is written.

The single largest risk is repeating the candle mistake in a new venue: building something that looks excellent gross and dies net. The ordering of phases 2 and 3 — costs before strategy — is the whole defence against that, and it is deliberate.

Sources. Vilkov, 0DTE Trading Rules (SSRN 4641356) · annotated findings · Alpaca index options in paper · IBKR TWS API historical data limitations · GEX data ladder and vendor tiers · ThetaData subscription tiers · Cboe, market impact of SPX 0DTE Internal: docs/GEX_0DTE_FINDINGS.md (0DTE lottery and GEX verdicts), docs/CANDLE_CPCV.md (the validation standard referenced in phase 4).