YRT Capital · infrastructure plan
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.
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.
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.
| Structure | Gross SR | Net SR | Verdict |
|---|---|---|---|
| Put ratio spreads | 1.18 | 0.93 | Best single structure |
| Top-3 diversified basket | 1.12 | 0.82 | Best risk-adjusted overall |
| Strangle / straddle | 0.56 | 0.39 | Survives, thin |
| Iron butterflies | — | negative | Dies after costs |
| Iron condors | — | negative | Dies after costs |
| Call ratio spreads | — | negative | Dies after costs |
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 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.
| Axis | Current program | What works |
|---|---|---|
| Direction | Buy premium | Sell premium (ratio spreads) |
| Underlying | TSLA — wide spreads | SPX / SPXW — tightest options market there is |
| Signal | Headlines → LLM self-rated confidence | Implied variance, skew, realized moments |
| Entry | At the open | Conditional gate at 10:00 ET |
| Sizing | Flat $1,000 budget | Hard mapping — full size or zero |
| Cost model | None | Three layers, applied from the start |
Six axes, six mismatches. That is genuinely good news: the failure is our design, not the asset class.
| Capability | Status | Detail |
|---|---|---|
| Trade SPX / SPXW on paper | Have | 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 chain | Missing | 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 chains | Have | Enumerable via status=inactive — verified back to 2024-01-19. 179–305 distinct strikes per expiry. |
| Intraday bars on expired contracts | Have | 5-minute OHLCV, ~81 bars per contract per session. Batched: 62 contracts in 0.81s. |
| Trade ticks on expired contracts | Have | 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 / Greeks | Derivable | Not supplied, but computable from bars + spot via backtest/pricing.py. |
| Realized intraday moments | Have | From the 10-year 5-minute bar cache already built for the candle work. |
| Historical GEX / dealer positioning | Missing | Open interest is unrecoverable after the fact. Purchasable — but see below, not needed first. |
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.
| Limitation | Impact |
|---|---|
| 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. |
Worth checking properly, because the instinct is reasonable. But IBKR's API carries a disqualifying limitation for options research:
| Requirement | Alpaca | IBKR |
|---|---|---|
| SPX / SPXW paper execution | Yes, since 2026-07-23 | Yes, long-standing |
| Historical data on expired options | No | No — explicitly unavailable |
| Bulk chain history for backtesting | No | No — pacing caps at 60 requests/10 min, BID_ASK counts double, 50 outstanding max |
| Real-time SPX quotes | Not yet | Yes, with OPRA + Cboe index subscriptions |
| Live SPX execution quality | Index options not yet live | Better — plus portfolio margin |
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.
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.
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.
Nine minutes of API calls, no procurement, no spend. Start here.
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.backtest/pricing.py. That gives the vol smile the gate needs.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.
+0.5bp slippage and fees.$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.Replaces news-sentiment ticket buying entirely.
P(return > 0), hard mapping — full
size or no trade.sentiment.predict_direction from the 0DTE path. Keep the journal's
prediction-versus-outcome logging — that part is well built and we reuse it.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.The one process in this shop that has caught a money-loser before it cost us.
By this point the purchase answers a specific question instead of funding a hope.
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.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.
docs/GEX_0DTE_FINDINGS.md (0DTE lottery and GEX verdicts),
docs/CANDLE_CPCV.md (the validation standard referenced in phase 4).