IWM · Deep ITM 0DTE with averaging: buy at 09:35, add until 15:59, sell at 16:10 or exercise at 17:25

The same purchase as the day test: at 09:35 New York the in-the-money IWM option expiring that day whose strike + premium (a Put: strike − premium) equals the IWM price within the tolerance. Then, inside the regular session while the options trade, the position is averaged: when the IWM price goes against a leg (a Call: down, a Put: up), more of the same rule’s option is bought at the price of that minute — by steps of 0.1–0.5% of the 09:35 price, or at technical levels known at 09:35 (the previous session’s high, low and close, the pivots, the pre-market and opening-range highs and lows, round numbers) at least that step beyond the previous purchase. The number of adds and their size are settings. Each add is bought at the ask of the real quote of that minute. Everything is closed the same day: sold at the bid at 16:10 (options on IWM trade until 16:15) or exercised at 17:25 at the intrinsic value from the IWM price then. About $10,000 a day for the first purchase. Every setting below is recalculated in the browser from frozen quotes.

IWM · 2022: no data yet

The sessions of IWM in 2022 are still being collected, or the page snapshot for this year is not built yet. The tool appears here as soon as it is.

Ready for IWM: 2026.

How it is calculated
  • Averaging. After the purchase at 09:35, inside the regular session (09:36–15:59, while the options trade), a leg gets adds when the IWM price goes against it: a Call when it falls, a Put when it rises. The IWM price at a minute is its last trade before that minute, as at 09:35. “By steps”: an add at the first minute the price is 1, 2, 3… steps (0.1–0.5% each) from the 09:35 price against the position; a mark the price never reached ends the adds for that leg. “At technical levels”: an add at the first minute the price reaches a level from the list below that is at least one step beyond the price of the previous purchase (the 09:35 one for the first add); the levels are taken nearest first. At most the chosen number of adds per leg. Each add buys, at the ask of the NBBO standing at that minute, the in-the-money option of the same day picked by the same formula, tolerance and strike rule as at 09:35, with the price of that minute; when none fits (and, as chosen, not even the nearest one), or the budget buys no contract, the add is missed. Size: each add costs the same as the 09:35 purchase (its leg budget, or one contract), or, as chosen, twice the previous one. All purchases of a leg are closed together at the exit below.
  • Technical levels are known at 09:35 and computed from one-minute bars: the previous session’s regular-hours high, low and close; the classic floor pivots of that session (P = (high + low + close) ÷ 3, R1 = 2P − low, S1 = 2P − high, R2 = P + (high − low), S2 = P − (high − low)); today’s pre-market (04:00–09:30) high and low; the high and low of 09:30–09:35; and the round numbers (multiples of $5, below $300 of $2.50) within 5% of the 09:35 price. A Call is averaged at the levels below the 09:35 price, a Put at those above it; a level closer than 0.1% to the 09:35 price is not used.
  • Data of the adds. For every minute at which some setting can add (the first minute each step mark and each level is reached, on each side), the page keeps the NBBO then (the last quote since 09:30) of every listed in-the-money strike of that side from the money to 5% deep from the price of that minute, and the sale quote of every contract some setting can buy there (Massive, the /v3/quotes history). Minute bars: QQQ, SPY and IWM from the project’s minute archive, SMH from Massive minute bars. Only 2026 is collected for now.
  • Data. For every session with a same-day expiry the page keeps the NBBO at 09:35:00 of every listed in-the-money Call and Put of that expiry from the money to 5% deep, from the IWM price at 09:35: the last quote at or before that moment from the vendor the project’s archive comes from (Massive, the /v3/quotes history). For the contracts some setting can buy it also keeps the NBBO at the sale minute. The IWM price at a minute is its last trade before that minute, from the project’s minute archive. The vendor has option quotes from 7 March 2022. Shortened sessions are left out: the options close earlier.
  • Expiry. The same session: 0DTE. A session without a same-day expiry (by the vendor’s list of contracts) is not traded and stays out of the table. Options on IWM expire every session since April 2024; before that mostly on Mondays, Wednesdays and Fridays.
  • Formula and pick. Overpay = strike + premium − price for a Call and premium − (strike − price) for a Put, as a percentage of the IWM price at 09:35; the premium is the ask (what buying costs) or the middle of the quote, as chosen. The in-the-money options (a Call below the price, a Put above it) whose overpay is within ±tolerance fit. By default the page takes the one whose overpay is smallest, so strike + premium comes closest to the price (overpays within 0.01% of the price count as equal, and the one nearest the money wins); with “the most leverage” it takes the one nearest the money: the cheapest, so the most leverage, even when its overpay is at the edge of the tolerance. When none fits, the session is skipped or, as chosen, the option with the smallest overpay is taken.
  • Leverage = the IWM price at 09:35 ÷ the option’s ask: how many dollars of shares one dollar of premium moves like. The table shows it for every session together with the value of the shares the contracts stand for (100 per contract).
  • Purchase. At the ask of the NBBO standing at 09:35:00. The quote must be valid: the ask above zero and not below the bid, at least one contract on the ask, no older than 60 seconds.
  • Sale at 16:10. At the bid of the NBBO standing at that minute, when it is no older than 5 minutes and covers the fee. The shares stop trading at 16:00, options on IWM at 16:15, so at 16:10 the option still has a market. The bid of a deep in-the-money option is often below its intrinsic value (the price minus the strike for a Call, the strike minus the price for a Put): the field “If the bid is below intrinsic value” either sells at the bid anyway (the default) or exercises the option (they are American) at intrinsic value from the IWM price at that minute. Contracts not sold at the bid are exercised at intrinsic value when it covers the fee; otherwise they count as $0 without a fee. When the vendor has no quote of the option since 15:00 at all, the session has no result and is left out of the totals.
  • Exercise at 17:25. Until 17:30 New York the holder of an expiring option decides whether to exercise it, whatever the 16:00 price was. The page exercises at 17:25 when the intrinsic value from the IWM price then (its last trade before 17:25, in the evening session) covers the fee, and counts that value: the shares delivered at the strike are taken as sold (a Put: bought back) at that price, without the shares’ spread or fees. When the option is out of the money at 17:25 it expires at $0 and the premium is lost.
  • Budget is split equally between the chosen legs: with Call + Put, half a day’s budget per leg; both legs are needed, a session without either is skipped. Contracts per leg: the whole number whose cost (ask × 100 + fee each) comes nearest to the leg budget, above or below it; with displayed sizes respected, no more than the ask size. A session where even one contract costs more than twice the leg budget is skipped. The page opens with $10,000 a day and also shows the return on capital: the budget plus the largest drawdown.
  • Fees are charged for every contract bought and sold (or exercised); $0.65 by default.
  • The same in shares. For comparison: as many shares as the options cover (100 per contract; for a Put, sold short), bought at the 09:35 price and sold at the price of the exit minute, without fees or spread. The difference from the options is what the overpay, the spreads, the fees and the capped loss cost or earned.
  • Best variant. The page opens on the best variant of the whole year at $10,000 a day for the first purchase, a $0.65 fee, displayed sizes ignored, the strike closest to the formula and sessions without a fitting strike skipped: among the variants (side × exit × formula price × tolerance × averaging: none, by steps or at levels × step × number of adds × their size and, for the sale at the bid, selling or exercising when the bid is below intrinsic value) that trade on at least half of the sessions with a same-day expiry, the one with the largest total without its three best sessions; ties go to the larger total. The “Best variant” button searches again within the options chosen in the form at the current settings, keeping the tolerance and the formula price. All of them are picked on the same sessions their results come from, so those results are overstated.
  • Limits. Quotes do not prove fills; latency, queue position and slippage are not modeled, and five minutes after the open spreads are still wider than later in the day. Buying tens of contracts at once can take more than the displayed ask size. The best variant is chosen in-sample, on the year it is shown on: a rule that looks good in one year needs checking on the other years.
  • Reproduction. The sessions are collected by python -B scripts/collect_deep_itm_0dte.py --symbols IWM (one file per session; a session already on disk is not requested again), and the page snapshot is built from them without new requests by python -B scripts/build_deep_itm_0dte_page.py --symbols IWM --years 2022. The browser prices every setting with public/static/deep-itm-0dte-model.js; money is counted in hundredths of a cent, so results are exact to the cent.