QQQ · Buy Call + Put before the close
Every session, at the chosen minute between 15:30 and 15:50 New York, the page buys QQQ options expiring the same day on strikes near the price. The exit is a sale at the 16:10 bid or a valuation at intrinsic value at 17:25, after the close. Every setting below is recalculated in the browser from frozen quotes.
Frozen NBBO archive: 2025-01-02 — 2025-12-31, sessions: 250 · New York time · built 2026-09-24.
Every entry clock and strike
Cumulative result
Starts from zero on the first day of the period; days without an entry leave it unchanged. It sums trade P&L and is not an account balance. Dots between the panels mark sessions with an after-close report from the basket below. Hover, or focus the chart and use the arrow keys; a click opens the day in the table.
Every trading date
History 2022–2026 · QQQ, SPY, IWM
The project’s NBBO archive holds 0DTE options of QQQ, SPY and IWM since March 2022; every year below is priced by the page’s own model on its frozen quotes. Sessions with a same-day expiry on QQQ: 2022 — 142, 2023 — 248, 2024 — 249, 2025 — 247, 2026 — 182. Until November 2022 the ETFs did not expire every day; those sessions have no trade. Hedge shares are bought and sold at the first minute open after the signal, not at the price of the minute that gave it. $0.65 per contract per side and a $0.35 minimum per share order.
- The page opens on the rule chosen on 2022–2024 on QQQ, SPY and IWM together (their daily results added up) at $1000 a day, for stability: the largest total without its three best days: 15:50 · OTM +1 · 5× · report days as usual · range ≥ 0.10% · options of at least 10¢ · spread ≤ 12% · delta hedge. 2022–2024 +$13,926, check 2025–2026 +$67,099 (together).
- Rules positive in every year 2022–2026: 0 of 18,540 with one contract per leg and 0 at $1000 a day (the three ETFs together); on QQQ alone 42 and 0. Positive without the three best days in both periods: 0 and 0.
- With the hedge filled at the price of the signal minute, as the page did before, the default on QQQ would show +$41,926 over 2022–2026 instead of +$32,759.
The default by year
15:50 · OTM +1 · 5× · report days as usual · range ≥ 0.10% · options of at least 10¢ · spread ≤ 12% · delta hedge · open. The strip under each year shows its months on QQQ at $1000 a day; the capital includes margin on the hedge and exercise shares (see “Robustness and capital”).
| Year | QQQ, $1000 a day | SPY, $1000 a day | IWM, $1000 a day | Together, $1000 a day each | QQQ, one contract |
|---|---|---|---|---|---|
| 2022chosen here | −$8522 trades · w/o best 3 $0 on capital (50% margin) $147,376: −0.6% | −$1,06112 trades · w/o best 3 −$7,283 on capital (50% margin) $657,029: −0.2% | $00 trades · w/o best 3 $0 on capital (50% margin) $0: +0.0% | −$1,91314 trades · w/o best 3 −$8,135 on capital (50% margin) $657,350: −0.3% | −$652 trades · w/o best 3 $0 |
| apr−$530may−$321 | |||||
| 2023chosen here | +$1,8086 trades · w/o best 3 −$2,555 on capital (50% margin) $406,202: +0.4% | +$5036 trades · w/o best 3 −$2,895 on capital (50% margin) $596,912: +0.1% | $00 trades · w/o best 3 $0 on capital (50% margin) $0: +0.0% | +$2,31111 trades · w/o best 3 −$6,921 on capital (50% margin) $597,961: +0.4% | −$1086 trades · w/o best 3 −$212 |
| jan+$3,894feb−$351apr+$821jul−$972aug−$969oct−$614 | |||||
| 2024chosen here | +$5,26428 trades · w/o best 3 −$6,926 on capital (50% margin) $686,769: +0.8% | +$8,26430 trades · w/o best 3 −$2,590 on capital (50% margin) $763,641: +1.1% | $00 trades · w/o best 3 $0 on capital (50% margin) $0: +0.0% | +$13,52838 trades · w/o best 3 −$580 on capital (50% margin) $794,400: +1.7% | +$53628 trades · w/o best 3 −$409 |
| feb+$72mar+$4,726apr+$5,707may−$962jun−$152jul−$1,645aug−$863sep+$1,811oct−$2,065nov−$933dec−$432 | |||||
| 2025check | +$3,13158 trades · w/o best 3 −$11,602 on capital (50% margin) $613,529: +0.5% | +$6,87249 trades · w/o best 3 −$5,084 on capital (50% margin) $841,432: +0.8% | +$6,1251 trade · w/o best 3 $0 on capital (50% margin) $142,837: +4.3% | +$16,12768 trades · w/o best 3 −$14,176 on capital (50% margin) $1,223,634: +1.3% | +$75258 trades · w/o best 3 −$1,041 |
| jan−$748feb+$2,031mar−$4,588apr+$10,111may−$446jul+$2,346aug−$748sep−$578oct+$893nov−$4,167dec−$975 | |||||
| 2026check | +$23,40855 trades · w/o best 3 +$6,938 on capital (50% margin) $1,214,316: +1.9% | +$27,56424 trades · w/o best 3 +$3,829 on capital (50% margin) $1,577,122: +1.7% | $00 trades · w/o best 3 $0 on capital (50% margin) $0: +0.0% | +$50,97259 trades · w/o best 3 +$17,939 on capital (50% margin) $2,619,307: +1.9% | +$2,84755 trades · w/o best 3 +$693 |
| jan−$829feb−$1,946mar+$156apr+$57may+$2,796jun+$21,065jul+$5,194aug−$1,133sep−$1,953 | |||||
| 2022–2026 | +$32,759149 trades · w/o best 3 +$15,302months up 15/39 · drawdown −$15,438 | +$42,141121 trades · w/o best 3 +$18,102months up 17/35 · drawdown −$8,834 | +$6,1251 trade · w/o best 3 $0months up 1/1 · drawdown $0 | +$81,026190 trades · w/o best 3 +$43,707months up 21/44 · drawdown −$23,147 | +$3,963149 trades · w/o best 3 +$1,136 |
What each idea adds: chosen on 2022–2024, checked on 2025–2026
30,240 variants: entry 15:45 or 15:50; strike OTM nearest to +3, or the OTM step nearest to delta 0.15, 0.25 or 0.35; lock at 2, 3 or 5× by closing, a share hedge or a delta hedge; activity: none, range ≥ 0.10 or 0.14%, or ≥ its 20-session median; options of at least 1, 5 or 10¢ or 0.01 or 0.02% of the ETF price; the pair’s spread at entry any, ≤ 7.5% or ≤ 12% of its ask; the previous VIX close any, ≥ 16, ≥ 20 or ≤ 20. Each row allows the earlier grid plus one idea; the choice is the largest 2022–2024 total without its three best days (at least 60 trades); “every year” also asks every year of 2022–2024 to be positive.
| $1000 a day · Together | 2022–2024 (chosen here) | 2025 | 2026 | 2025–2026 (check) |
|---|---|---|---|---|
| Earlier grid only15:50 · OTM +2 · 3× · report days as usual · range ≥ 0.10% · options of at least 5¢ · share hedge · open | +$6,344w/o best 3 −$28,475 · quarters up 4/12 · 82 trades | −$10,505 | +$47,302 | +$36,797w/o best 3 −$17,600 · quarters up 4/7 · 126 trades |
| + spread at entry15:50 · OTM +1 · 5× · report days as usual · range ≥ 0.10% · options of at least 10¢ · spread ≤ 12% · delta hedge · open | +$13,926w/o best 3 −$182 · quarters up 5/12 · 63 trades | +$16,127 | +$50,972 | +$67,099w/o best 3 +$29,781 · quarters up 5/7 · 127 trades |
| + strike by delta15:50 · OTM +2 · 3× · report days as usual · range ≥ 0.10% · options of at least 5¢ · share hedge · open | +$6,344w/o best 3 −$28,475 · quarters up 4/12 · 82 trades | −$10,505 | +$47,302 | +$36,797w/o best 3 −$17,600 · quarters up 4/7 · 126 trades |
| + minimum price in % of the ETF15:50 · OTM +2 · 3× · report days as usual · range ≥ 0.10% · options of at least 5¢ · share hedge · open | +$6,344w/o best 3 −$28,475 · quarters up 4/12 · 82 trades | −$10,505 | +$47,302 | +$36,797w/o best 3 −$17,600 · quarters up 4/7 · 126 trades |
| + previous VIX close15:50 · OTM +2 · 3× · report days as usual · range ≥ 0.10% · options of at least 5¢ · share hedge · open | +$6,344w/o best 3 −$28,475 · quarters up 4/12 · 82 trades | −$10,505 | +$47,302 | +$36,797w/o best 3 −$17,600 · quarters up 4/7 · 126 trades |
| All ideas15:50 · OTM +1 · 5× · report days as usual · range ≥ 0.10% · options of at least 10¢ · spread ≤ 12% · delta hedge · open | +$13,926w/o best 3 −$182 · quarters up 5/12 · 63 trades | +$16,127 | +$50,972 | +$67,099w/o best 3 +$29,781 · quarters up 5/7 · 127 trades |
| All ideas, every year positive | No rule qualifies. | |||
| $1000 a day · QQQ | 2022–2024 (chosen here) | 2025 | 2026 | 2025–2026 (check) |
|---|---|---|---|---|
| Earlier grid only15:50 · OTM +1 · 5× · report days as usual · range ≥ 0.10% · options of at least 10¢ · delta hedge · open | +$6,034w/o best 3 −$8,495 · quarters up 5/12 · 88 trades | −$7,788 | +$22,433 | +$14,645w/o best 3 −$2,813 · quarters up 3/7 · 140 trades |
| + spread at entry15:50 · OTM +1 · 5× · report days as usual · range ≥ 0.10% · options of at least 10¢ · delta hedge · open | +$6,034w/o best 3 −$8,495 · quarters up 5/12 · 88 trades | −$7,788 | +$22,433 | +$14,645w/o best 3 −$2,813 · quarters up 3/7 · 140 trades |
| + strike by delta15:50 · OTM step nearest to delta 0.15 · 5× · report days as usual · range ≥ 0.10% · options of at least 10¢ · delta hedge · open | +$9,516w/o best 3 −$5,121 · quarters up 6/12 · 90 trades | −$7,466 | +$27,155 | +$19,689w/o best 3 +$328 · quarters up 4/7 · 144 trades |
| + minimum price in % of the ETF15:50 · OTM +1 · 5× · report days as usual · range ≥ 0.10% · options of at least 10¢ · delta hedge · open | +$6,034w/o best 3 −$8,495 · quarters up 5/12 · 88 trades | −$7,788 | +$22,433 | +$14,645w/o best 3 −$2,813 · quarters up 3/7 · 140 trades |
| + previous VIX close15:50 · OTM +1 · 2× · report days as usual · range ≥ 0.14% · options of at least 5¢ · VIX ≤ 20 · share hedge · open | +$5,342w/o best 3 −$7,338 · quarters up 4/9 · 69 trades | −$16,118 | +$35,051 | +$18,933w/o best 3 −$6,494 · quarters up 2/7 · 90 trades |
| All ideas15:45 · OTM step nearest to delta 0.15 · 5× · report days as usual · no filter · options of at least 10¢ · VIX ≤ 20 · close · open | +$14,183w/o best 3 −$1,729 · quarters up 4/10 · 63 trades | −$14,053 | +$15,703 | +$1,650w/o best 3 −$16,043 · quarters up 3/7 · 118 trades |
| All ideas, every year positive15:50 · OTM nearest · 3× · report days as usual · range ≥ its 20-session median · spread ≤ 12% · delta hedge · open | +$1,582w/o best 3 −$12,459 · quarters up 4/11 · 140 trades | −$7,603 | +$82 | −$7,521w/o best 3 −$18,389 · quarters up 3/7 · 183 trades |
$1000 a day, Together: positive in both periods 45 of 18,540; in every year of 2022–2024 0; in every year of 2022–2026 0; without the three best days in both periods 0.
| One contract per leg · Together | 2022–2024 (chosen here) | 2025 | 2026 | 2025–2026 (check) |
|---|---|---|---|---|
| Earlier grid only15:50 · OTM +2 · 5× · report days as usual · no filter · options of at least 5¢ · share hedge · open | +$210w/o best 3 −$1,030 · quarters up 3/12 · 88 trades | +$640 | +$1,099 | +$1,739w/o best 3 −$1,456 · quarters up 3/7 · 142 trades |
| + spread at entry15:50 · OTM +1 · 5× · report days as usual · no filter · options of at least 10¢ · spread ≤ 12% · share hedge · open | +$892w/o best 3 −$804 · quarters up 5/12 · 70 trades | +$1,393 | +$1,923 | +$3,316w/o best 3 −$1,318 · quarters up 2/7 · 149 trades |
| + strike by delta15:50 · OTM +2 · 5× · report days as usual · no filter · options of at least 5¢ · share hedge · open | +$210w/o best 3 −$1,030 · quarters up 3/12 · 88 trades | +$640 | +$1,099 | +$1,739w/o best 3 −$1,456 · quarters up 3/7 · 142 trades |
| + minimum price in % of the ETF15:50 · OTM +2 · 5× · report days as usual · no filter · options of at least 5¢ · share hedge · open | +$210w/o best 3 −$1,030 · quarters up 3/12 · 88 trades | +$640 | +$1,099 | +$1,739w/o best 3 −$1,456 · quarters up 3/7 · 142 trades |
| + previous VIX close15:50 · OTM +2 · 5× · report days as usual · no filter · options of at least 5¢ · share hedge · open | +$210w/o best 3 −$1,030 · quarters up 3/12 · 88 trades | +$640 | +$1,099 | +$1,739w/o best 3 −$1,456 · quarters up 3/7 · 142 trades |
| All ideas15:50 · OTM step nearest to delta 0.15 · 5× · report days as usual · range ≥ 0.10% · options of at least 10¢ · spread ≤ 12% · share hedge · open | +$228w/o best 3 −$670 · quarters up 5/12 · 72 trades | +$440 | +$2,330 | +$2,770w/o best 3 +$191 · quarters up 5/7 · 124 trades |
| All ideas, every year positive | No rule qualifies. | |||
| One contract per leg · QQQ | 2022–2024 (chosen here) | 2025 | 2026 | 2025–2026 (check) |
|---|---|---|---|---|
| Earlier grid only15:50 · OTM +2 · 3× · report days as usual · range ≥ 0.10% · options of at least 5¢ · share hedge · open | +$84w/o best 3 −$602 · quarters up 3/12 · 69 trades | +$190 | +$1,421 | +$1,610w/o best 3 +$236 · quarters up 4/7 · 115 trades |
| + spread at entry15:50 · OTM +2 · 3× · report days as usual · range ≥ 0.10% · options of at least 5¢ · share hedge · open | +$84w/o best 3 −$602 · quarters up 3/12 · 69 trades | +$190 | +$1,421 | +$1,610w/o best 3 +$236 · quarters up 4/7 · 115 trades |
| + strike by delta15:50 · OTM +2 · 3× · report days as usual · range ≥ 0.10% · options of at least 5¢ · share hedge · open | +$84w/o best 3 −$602 · quarters up 3/12 · 69 trades | +$190 | +$1,421 | +$1,610w/o best 3 +$236 · quarters up 4/7 · 115 trades |
| + minimum price in % of the ETF15:50 · OTM +2 · 3× · report days as usual · range ≥ 0.10% · options of at least 5¢ · share hedge · open | +$84w/o best 3 −$602 · quarters up 3/12 · 69 trades | +$190 | +$1,421 | +$1,610w/o best 3 +$236 · quarters up 4/7 · 115 trades |
| + previous VIX close15:50 · OTM +1 · 2× · report days as usual · range ≥ 0.14% · options of at least 5¢ · VIX ≤ 20 · share hedge · open | +$212w/o best 3 −$450 · quarters up 4/9 · 69 trades | −$1,189 | +$2,038 | +$849w/o best 3 −$101 · quarters up 2/7 · 90 trades |
| All ideas15:50 · OTM nearest · 5× · report days as usual · range ≥ 0.14% · options of at least 10¢ · spread ≤ 12% · VIX ≥ 16 · close · open | +$689w/o best 3 −$307 · quarters up 7/11 · 73 trades | +$1,931 | +$2,250 | +$4,181w/o best 3 +$1,433 · quarters up 4/7 · 146 trades |
| All ideas, every year positive15:50 · OTM nearest · 5× · report days as usual · range ≥ 0.14% · options of at least 10¢ · spread ≤ 12% · VIX ≥ 16 · close · open | +$689w/o best 3 −$307 · quarters up 7/11 · 73 trades | +$1,931 | +$2,250 | +$4,181w/o best 3 +$1,433 · quarters up 4/7 · 146 trades |
One contract per leg, Together: positive in both periods 126 of 18,540; in every year of 2022–2024 0; in every year of 2022–2026 0; without the three best days in both periods 0.
Rolling choice: each year judged by the rule chosen on all the years before it
All ideas allowed; at least 40 trades on the years before; Together.
| $1000 a day: year and its rule | For stability: years before | That year | Every year positive: years before | That year |
|---|---|---|---|---|
| 2023 | No rule made money before. | No rule was positive every year before. | ||
| 202415:50 · OTM step nearest to delta 0.25 · 3× · report days as usual · range ≥ its 20-session median · spread ≤ 12% · VIX ≥ 20 · share hedge | +$1,208w/o best 3 −$10,694 · quarters up 3/5 · 48 trades | +$1,186w/o best 3 −$4,911 · quarters up 1/2 · 14 trades | No rule was positive every year before. | |
| 202515:50 · OTM +1 · 5× · report days as usual · range ≥ 0.10% · options of at least 10¢ · spread ≤ 12% · delta hedge | +$13,926w/o best 3 −$182 · quarters up 5/12 · 63 trades | +$16,127w/o best 3 −$14,176 · quarters up 2/4 · 68 trades | No rule was positive every year before. | |
| 202615:50 · OTM +3 · 5× · report days as usual · range ≥ 0.10% · options of at least 5¢ · delta hedge | +$36,042w/o best 3 +$4,027 · quarters up 6/13 · 75 trades | +$43,758w/o best 3 +$3,839 · quarters up 2/3 · 24 trades | +$7,068w/o best 3 −$9,851 · quarters up 7/11 · 60 trades15:50 · OTM step nearest to delta 0.15 · 3× · report days as usual · range ≥ 0.10% · options of at least 10¢ · spread ≤ 12% · VIX ≥ 20 · delta hedge | +$13,135w/o best 3 −$13,869 · quarters up 1/2 · 15 trades |
| One contract per leg: year and its rule | For stability: years before | That year | Every year positive: years before | That year |
|---|---|---|---|---|
| 2023 | No rule made money before. | No rule was positive every year before. | ||
| 2024 | No rule made money before. | No rule was positive every year before. | ||
| 202515:50 · OTM +1 · 3× · report days as usual · range ≥ 0.14% · options of at least 5¢ · spread ≤ 12% · VIX ≥ 20 · close | +$581w/o best 3 −$349 · quarters up 3/8 · 40 trades | +$1,203w/o best 3 −$785 · quarters up 1/3 · 40 trades | No rule was positive every year before. | |
| 202615:45 · OTM +1 · 2× · report days as usual · range ≥ 0.14% · options of at least 0.02% of the price · spread ≤ 7.5% · VIX ≥ 20 · delta hedge | +$3,006w/o best 3 +$1,094 · quarters up 5/11 · 89 trades | −$310w/o best 3 −$553 · quarters up 0/2 · 11 trades | No rule was positive every year before. | |
Hedge filled at the signal minute or at the next open · QQQ
The page used to fill hedge shares at the price of the minute whose close triggered the lock, a price already gone when the signal is known (found by the execution audit in research/qqq_call_put_close_2026-09-24). Now every hedge trade fills at the first minute open after its signal. $1000 a day; “+2¢”: also 2 cents over the ask for every option bought. The capital the hedge needs (margin for up to 100 shares per contract) is not counted.
| Rule | 2022 | 2023 | 2024 | 2025 | 2026 | 2022–2026 |
|---|---|---|---|---|---|---|
| Default15:50 · OTM +1 · 5× · report days as usual · range ≥ 0.10% · options of at least 10¢ · spread ≤ 12% · delta hedge | −$852signal price −$852 · +2¢ −$845 | +$1,808signal price +$1,940 · +2¢ +$401 | +$5,264signal price +$5,908 · +2¢ +$4,768 | +$3,131signal price +$3,169 · +2¢ −$529 | +$23,408signal price +$31,762 · +2¢ +$19,208 | +$32,759signal price +$41,926 · +2¢ +$23,003 |
| Chosen on QQQ 2022–2024 (previous default)15:50 · OTM +1 · 5× · report days as usual · range ≥ 0.10% · options of at least 10¢ · delta hedge | −$8,096signal price −$8,282 · +2¢ −$9,712 | +$1,219signal price +$1,350 · +2¢ −$869 | +$12,911signal price +$13,492 · +2¢ +$11,629 | −$7,788signal price −$7,751 · +2¢ −$12,415 | +$22,433signal price +$30,787 · +2¢ +$18,220 | +$20,679signal price +$29,597 · +2¢ +$6,853 |
| Chosen on January–June 2026 (earlier default)15:45 · OTM +1 · 3× · report days as usual · range ≥ 0.14%, not low 30-min volatility · share hedge | −$27,561signal price −$16,292 · +2¢ −$67,301 | −$84,075signal price −$52,033 · +2¢ −$85,756 | −$22,270signal price −$22,309 · +2¢ −$44,750 | +$3,071signal price +$3,287 · +2¢ −$7,143 | +$23,673signal price +$54,594 · +2¢ +$8,909 | −$107,161signal price −$32,754 · +2¢ −$196,042 |
Other checks on the default · QQQ, $1000 a day
| Check | 2022–2024 (chosen here) | 2025–2026 (check) |
|---|---|---|
| Implied / realised volatility at entry any | +$6,22136 trades · w/o best 3 −$6,280 | +$26,539113 trades · w/o best 3 +$9,082 |
| Implied / realised volatility at entry ≤ 0.8 | −$36110 trades · w/o best 3 −$4,768 | +$19,93373 trades · w/o best 3 +$2,476 |
| Implied / realised volatility at entry ≤ 1.0 | −$1,79413 trades · w/o best 3 −$6,201 | +$16,56985 trades · w/o best 3 −$888 |
| Implied / realised volatility at entry ≤ 1.5 | −$4,03319 trades · w/o best 3 −$9,232 | +$26,68698 trades · w/o best 3 +$9,229 |
| Implied / realised volatility at entry ≤ 2.0 | +$7,77126 trades · w/o best 3 −$4,729 | +$28,896108 trades · w/o best 3 +$11,439 |
| half on sessions without high 30-min volatility | +$1,79236 trades · w/o best 3 −$6,101 | +$28,976113 trades · w/o best 3 +$12,873 |
| at most 25 contracts a leg | +$4,22436 trades · w/o best 3 −$6,229 | +$27,921113 trades · w/o best 3 +$11,452 |
| at most 50 contracts a leg | +$6,22136 trades · w/o best 3 −$6,280 | +$26,539113 trades · w/o best 3 +$9,082 |
History built 2026-09-25 00:40 UTC · node scripts/qqq_call_put_history.cjs · python -m scripts.build_qqq_call_put_page --symbol SPY --year 2025
Robustness and capital
How far the default rule can be trusted, and what it earns on the money it really ties up. Hedges filled at the next minute open, as everywhere on the page.
- Among the 18,540 rules of the grid (Together, $1000 a day) the median 2025–2026 result is −$4,950, and 43% are positive. The default, +$67,099, beats 98.8% of them — a good pick, but also a lucky one. The 63 rules that made money on 2022–2024 made +$18,513 in the median in the check: choosing on the past does carry information.
- The whole choice redone 300 times on 2022–2024 resampled by month: the rule it picks is positive on 2025–2026 in 77% of the cases, median +$23,192, 10–90%: −$21,991 … +$56,850; the spread filter is in 66% of the picks. Expect about +$23,192, not +$67,099.
- The default’s 21 months of 2025–2026 resampled 10,000 times: Together 5–95% +$5,385 … +$137,454, a loss in 3.5%; QQQ −$9,029 … +$71,491, 13.8%. Without its best month: +$35,728 and +$5,473.
- To keep the intrinsic value at 17:25 an in-the-money option is exercised, so the day needs 100 shares per contract; the hedge needs them earlier. At $1000 a day cheap options mean up to $2,416,108 of QQQ in shares on one day, so on a 50% margin the capital is $1,224,303 and 2022–2026 returns +2.7% on it. A fixed number of contracts ties up far less for the same profit (table below).
Neighbours: one setting changed at a time
$1000 a day; ★ is the default. A rule worth trusting sits on a plateau: its neighbours earn too.
| Setting | Together: 2022–2024 | Together: 2025–2026 | QQQ: 2025–2026 | SPY: 2025–2026 | IWM: 2025–2026 |
|---|---|---|---|---|---|
| Entry: 15:40 | −$48,311w/o best 3 −$69,728 | −$6,503w/o best 3 −$49,788 | −$1,972 | −$8,915 | +$4,385 |
| Entry: 15:45 | −$41,043w/o best 3 −$61,390 | +$26,191w/o best 3 −$11,989 | +$15,892 | +$7,357 | +$2,942 |
| Entry: 15:50 ★ | +$13,926w/o best 3 −$182 | +$67,099w/o best 3 +$29,781 | +$26,539 | +$34,436 | +$6,125 |
| Strike: OTM nearest | −$69,375w/o best 3 −$82,592 | +$5,374w/o best 3 −$28,592 | +$3,925 | +$1,416 | +$33 |
| Strike: OTM +1 ★ | +$13,926w/o best 3 −$182 | +$67,099w/o best 3 +$29,781 | +$26,539 | +$34,436 | +$6,125 |
| Strike: OTM +2 | +$3,300w/o best 3 −$17,719 | +$53,065w/o best 3 +$21,982 | +$48,630 | +$4,435 | $0 |
| Strike: OTM +3 | +$6,386w/o best 3 −$9,596 | +$13,431w/o best 3 −$5,091 | +$12,063 | +$1,368 | $0 |
| Strike: delta 0.15 | +$5,973w/o best 3 −$12,660 | +$56,850w/o best 3 +$21,587 | +$29,151 | +$27,700 | $0 |
| Strike: delta 0.25 | −$43,383w/o best 3 −$58,067 | +$32,890w/o best 3 −$13,751 | +$10,841 | +$17,958 | +$4,091 |
| Strike: delta 0.35 | −$71,043w/o best 3 −$85,119 | +$16,721w/o best 3 −$19,068 | +$11,239 | +$4,862 | +$620 |
| Lock at: 2× | +$1,425w/o best 3 −$10,443 | +$35,981w/o best 3 +$9,562 | +$12,616 | +$18,978 | +$4,386 |
| Lock at: 3× | +$8,835w/o best 3 −$5,192 | +$36,585w/o best 3 +$10,688 | +$11,887 | +$22,209 | +$2,490 |
| Lock at: 4× | +$14,342w/o best 3 −$1,521 | +$48,833w/o best 3 +$18,612 | +$17,345 | +$28,998 | +$2,490 |
| Lock at: 5× ★ | +$13,926w/o best 3 −$182 | +$67,099w/o best 3 +$29,781 | +$26,539 | +$34,436 | +$6,125 |
| Lock at: 7× | +$10,254w/o best 3 −$4,848 | +$68,777w/o best 3 +$26,546 | +$27,563 | +$34,902 | +$6,311 |
| Lock at: 10× | +$6,540w/o best 3 −$7,277 | +$78,425w/o best 3 +$28,844 | +$29,215 | +$40,240 | +$8,970 |
| 15-min range: any | +$17,042w/o best 3 −$1,015 | +$42,826w/o best 3 +$5,508 | +$13,849 | +$22,852 | +$6,125 |
| 15-min range: ≥ 0.05% | +$17,042w/o best 3 −$1,015 | +$44,775w/o best 3 +$7,456 | +$13,849 | +$24,801 | +$6,125 |
| 15-min range: ≥ 0.08% | +$10,978w/o best 3 −$3,130 | +$55,634w/o best 3 +$18,316 | +$18,258 | +$31,252 | +$6,125 |
| 15-min range: ≥ 0.10% ★ | +$13,926w/o best 3 −$182 | +$67,099w/o best 3 +$29,781 | +$26,539 | +$34,436 | +$6,125 |
| 15-min range: ≥ 0.12% | +$5,973w/o best 3 −$7,926 | +$57,885w/o best 3 +$25,453 | +$30,554 | +$21,207 | +$6,125 |
| 15-min range: ≥ 0.14% | +$4,455w/o best 3 −$8,562 | +$60,603w/o best 3 +$28,170 | +$29,214 | +$25,265 | +$6,125 |
| 15-min range: ≥ its 20-session median | +$2,629w/o best 3 −$11,271 | +$32,831w/o best 3 +$5,209 | +$19,845 | +$12,985 | $0 |
| Lock method: close | +$13,990w/o best 3 −$325 | +$64,451w/o best 3 +$27,457 | +$25,200 | +$33,277 | +$5,974 |
| Lock method: share hedge | +$14,273w/o best 3 −$482 | +$64,737w/o best 3 +$26,998 | +$24,960 | +$33,817 | +$5,960 |
| Lock method: delta hedge ★ | +$13,926w/o best 3 −$182 | +$67,099w/o best 3 +$29,781 | +$26,539 | +$34,436 | +$6,125 |
| Minimum option price: any | −$19,105w/o best 3 −$33,213 | +$39,970w/o best 3 +$2,652 | +$11,644 | +$22,752 | +$5,575 |
| Minimum option price: 3¢ | −$18,175w/o best 3 −$32,282 | +$39,970w/o best 3 +$2,652 | +$11,644 | +$22,752 | +$5,575 |
| Minimum option price: 5¢ | −$15,722w/o best 3 −$29,830 | +$43,389w/o best 3 +$6,070 | +$15,062 | +$22,752 | +$5,575 |
| Minimum option price: 7¢ | −$5,544w/o best 3 −$19,652 | +$54,315w/o best 3 +$16,996 | +$19,348 | +$28,843 | +$6,125 |
| Minimum option price: 10¢ | +$13,926w/o best 3 −$182 | +$67,099w/o best 3 +$29,781 | +$26,539 | +$34,436 | +$6,125 |
| Minimum option price: 12¢ | +$18,697w/o best 3 +$4,589 | +$75,824w/o best 3 +$38,699 | +$32,235 | +$37,465 | +$6,125 |
| Minimum option price: 15¢ | +$14,322w/o best 3 +$422 | +$63,284w/o best 3 +$31,974 | +$36,913 | +$20,246 | +$6,125 |
| Minimum option price: 20¢ | +$10,766w/o best 3 −$2,497 | +$57,561w/o best 3 +$26,328 | +$38,382 | +$13,055 | +$6,125 |
| Pair spread at entry: any | −$5,562w/o best 3 −$23,618 | +$39,578w/o best 3 +$1,159 | +$14,645 | +$18,542 | +$6,392 |
| Pair spread at entry: ≤ 6% | +$9,661w/o best 3 −$3,602 | +$40,459w/o best 3 +$15,888 | +$27,192 | +$13,267 | $0 |
| Pair spread at entry: ≤ 8% | +$13,568w/o best 3 −$540 | +$58,371w/o best 3 +$21,246 | +$27,682 | +$24,565 | +$6,125 |
| Pair spread at entry: ≤ 10% | +$19,146w/o best 3 +$5,038 | +$58,683w/o best 3 +$21,364 | +$22,818 | +$29,740 | +$6,125 |
| Pair spread at entry: ≤ 12% ★ | +$13,926w/o best 3 −$182 | +$67,099w/o best 3 +$29,781 | +$26,539 | +$34,436 | +$6,125 |
| Pair spread at entry: ≤ 14% | +$9,734w/o best 3 −$6,527 | +$57,848w/o best 3 +$20,529 | +$25,400 | +$26,601 | +$5,847 |
| Pair spread at entry: ≤ 16% | +$2,973w/o best 3 −$13,288 | +$51,769w/o best 3 +$14,450 | +$22,605 | +$23,317 | +$5,847 |
| Pair spread at entry: ≤ 20% | −$5,429w/o best 3 −$22,036 | +$45,737w/o best 3 +$8,418 | +$19,410 | +$20,480 | +$5,847 |
| Pair spread at entry: ≤ 25% | −$2,867w/o best 3 −$20,773 | +$44,954w/o best 3 +$6,535 | +$16,869 | +$19,496 | +$8,589 |
| Previous VIX close: any | +$13,926w/o best 3 −$182 | +$67,099w/o best 3 +$29,781 | +$26,539 | +$34,436 | +$6,125 |
| Previous VIX close: ≥ 16 | −$1,229w/o best 3 −$13,161 | +$55,276w/o best 3 +$17,958 | +$21,092 | +$28,059 | +$6,125 |
| Previous VIX close: ≥ 20 | +$7,135w/o best 3 −$4,262 | +$26,768w/o best 3 −$9,832 | +$7,868 | +$12,776 | +$6,125 |
| Previous VIX close: ≤ 20 | +$6,791w/o best 3 −$7,317 | +$38,351w/o best 3 +$11,210 | +$17,680 | +$20,670 | $0 |
Pair spread × minimum option price · Together
Each cell: 2025–2026 (check), and under it 2022–2024 (where the choice was made); the rest of the rule as the default.
| Price \ spread | any | ≤ 6% | ≤ 8% | ≤ 10% | ≤ 12% | ≤ 14% | ≤ 16% | ≤ 20% | ≤ 25% |
|---|---|---|---|---|---|---|---|---|---|
| any | −$28.4k−$534.7k | +$40.5k+$9.7k | +$54.8k+$11.2k | +$43.4k−$0.1k | +$40.0k−$19.1k | +$33.3k−$21.1k | +$50.0k−$44.7k | +$65.0k−$105.1k | +$40.7k−$162.3k |
| 3¢ | +$17.2k−$187.2k | +$40.5k+$9.7k | +$54.8k+$11.2k | +$43.4k−$0.1k | +$40.0k−$18.2k | +$33.3k−$19.2k | +$37.8k−$40.8k | +$40.9k−$91.4k | +$14.8k−$115.0k |
| 5¢ | +$29.8k−$69.1k | +$40.5k+$9.7k | +$54.8k+$11.2k | +$45.4k+$1.4k | +$43.4k−$15.7k | +$35.7k−$23.2k | +$32.3k−$32.2k | +$45.7k−$56.8k | +$32.1k−$55.0k |
| 7¢ | +$39.8k−$36.9k | +$40.5k+$9.7k | +$57.4k+$12.0k | +$53.3k+$7.6k | +$54.3k−$5.5k | +$50.9k−$11.9k | +$46.2k−$26.5k | +$49.2k−$34.9k | +$42.0k−$26.1k |
| 10¢ | +$39.6k−$5.6k | +$40.5k+$9.7k | +$58.4k+$13.6k | +$58.7k+$19.1k | +$67.1k+$13.9k | +$57.8k+$9.7k | +$51.8k+$3.0k | +$45.7k−$5.4k | +$45.0k−$2.9k |
| 12¢ | +$56.8k+$0.7k | +$40.5k+$9.7k | +$67.2k+$16.5k | +$67.3k+$24.6k | +$75.8k+$18.7k | +$71.3k+$17.8k | +$66.9k+$11.0k | +$62.8k+$2.8k | +$61.3k+$5.3k |
| 15¢ | +$51.3k+$2.2k | +$38.8k+$9.1k | +$53.1k+$8.9k | +$55.7k+$19.2k | +$63.3k+$14.3k | +$58.5k+$16.1k | +$56.2k+$10.2k | +$55.2k+$4.6k | +$55.2k+$4.9k |
| 20¢ | +$54.2k+$7.3k | +$44.6k+$9.1k | +$54.0k+$9.8k | +$53.3k+$12.5k | +$57.6k+$10.8k | +$57.6k+$14.0k | +$57.7k+$11.3k | +$57.3k+$8.8k | +$57.3k+$9.1k |
Capital and return by position size
Capital: the largest day of premium plus margin on the most shares that day needs (the hedge at its largest and the shares an exercise delivers, at the entry price), plus the largest drawdown. 50% is Reg T for shares held overnight; 25% is intraday buying power. Margin cash can sit in Treasury bills, which is not counted. Returns per year on 50% margin.
| QQQ | 2022 | 2023 | 2024 | 2025 | 2026 | 2022–2026 | Shares at most, $ | Capital 50% / 25% | Return 50% / 25% |
|---|---|---|---|---|---|---|---|---|---|
| $1000 a daycontracts per trade 31.1 | −0.6%−$852 | +0.4%+$1,808 | +0.8%+$5,264 | +0.5%+$3,131 | +1.9%+$23,408 | +$32,759drawdown −$15,438 | $2,416,108median $566,856 | $1,224,303$620,276 | +2.7%+5.3% over 2022–2026 |
| 1 contract per legcontracts per trade 2.0 | −0.4%−$65 | −0.7%−$108 | +2.0%+$536 | +2.3%+$752 | +7.5%+$2,847 | +$3,963drawdown −$996 | $74,555median $52,044 | $38,356$19,717 | +10.3%+20.1% over 2022–2026 |
| 5 contractscontracts per trade 9.6 | −0.3%−$196 | −0.7%−$539 | −0.4%−$541 | +2.1%+$3,319 | +7.7%+$14,542 | +$16,586drawdown −$7,656 | $372,775median $257,440 | $194,455$101,261 | +8.5%+16.4% over 2022–2026 |
| 10 contractscontracts per trade 18.8 | −0.2%−$359 | −0.6%−$999 | −0.7%−$1,966 | +2.4%+$7,542 | +7.5%+$28,376 | +$32,594drawdown −$16,086 | $745,550median $504,790 | $389,684$203,297 | +8.4%+16.0% over 2022–2026 |
| 20 contractscontracts per trade 34.7 | −0.6%−$862 | −0.6%−$1,921 | −0.1%−$552 | +3.1%+$18,973 | +6.6%+$50,146 | +$65,784drawdown −$25,028 | $1,491,100median $947,640 | $772,224$399,449 | +8.5%+16.5% over 2022–2026 |
| Together | 2022 | 2023 | 2024 | 2025 | 2026 | 2022–2026 | Shares at most, $ | Capital 50% / 25% | Return 50% / 25% |
|---|---|---|---|---|---|---|---|---|---|
| $1000 a daycontracts per trade 47.3 | −0.3%−$1,913 | +0.4%+$2,311 | +1.7%+$13,528 | +1.3%+$16,127 | +1.9%+$50,972 | +$81,026drawdown −$23,147 | $5,215,170median $856,608 | $2,632,710$1,328,918 | +3.1%+6.1% over 2022–2026 |
| 1 contract per legcontracts per trade 2.9 | −0.9%−$207 | −1.1%−$216 | +2.4%+$1,278 | +3.0%+$1,992 | +5.2%+$3,784 | +$6,631drawdown −$2,160 | $144,729median $70,292 | $74,708$38,561 | +8.9%+17.2% over 2022–2026 |
| 5 contractscontracts per trade 13.5 | −0.5%−$546 | −1.0%−$1,029 | +1.2%+$3,350 | +3.2%+$10,301 | +5.3%+$19,266 | +$31,342drawdown −$10,276 | $723,645median $315,922 | $373,012$192,280 | +8.4%+16.3% over 2022–2026 |
| 10 contractscontracts per trade 26.4 | −0.4%−$948 | −1.0%−$1,947 | +1.0%+$5,680 | +3.2%+$20,793 | +5.1%+$37,467 | +$61,046drawdown −$20,818 | $1,440,370median $631,844 | $744,919$384,827 | +8.2%+15.9% over 2022–2026 |
| 20 contractscontracts per trade 49.9 | −0.4%−$1,930 | −0.9%−$3,784 | +1.4%+$14,999 | +3.0%+$37,785 | +4.6%+$67,737 | +$114,807drawdown −$33,847 | $2,880,740median $1,195,458 | $1,482,049$761,864 | +7.7%+15.1% over 2022–2026 |
How it is calculated
- Data. Minute NBBO snapshots and the full quote stream of QQQ 0DTE options from the project archive; the QQQ price is the last completed minute.
- Strike. Chosen from the QQQ price at the entry minute. OTM: the Call is the nearest strike strictly above the price, the Put strictly below; ITM is the reverse. “+N steps” moves N strikes further out in the same direction ($1 per step).
- Entry. Buy at the ask of the entry-minute snapshot. The quote must be valid, the ask at least $0.01 with at least one contract displayed, and no older than the chosen limit. The project rule is 15 s; far OTM quotes often stand unchanged longer, so the default allows 5 minutes.
- 16:10 exit. Sell at a bid no older than 15 s. Without one, the first positive bid before 16:15. Contracts the bid size could not take are valued at intrinsic value from the QQQ price at 16:15.
- 17:25 exit. Intrinsic value from the QQQ price at 17:25 (a minute no older than 4 minutes). The option is assumed exercised before 17:30 and the share position closed at that price. This is not an observed trade.
- Profit lock. From the minute after entry until the scheduled exit, the page checks the QQQ price every minute. As soon as the intrinsic value of the whole position reaches the chosen multiple of the money spent (fees included), the position is closed at that price: before 16:15 by selling the options, later by trading QQQ shares after hours and exercising the options, which locks at least the intrinsic value. Otherwise the scheduled exit applies. A leg with no intrinsic value at that minute counts as closed at $0, a conservative choice that ignores its remaining time value. Minute closes are trade prices, not executable quotes; after-hours trading and exercise deadlines depend on the broker.
- Lock method. “Close the position” works as described above. “Hedge with shares”: the options are kept to 17:25; at the lock minute every in-the-money leg is hedged with 100 QQQ shares per contract (a Call by selling shares, a Put by buying them), so its intrinsic value at that minute is kept, and if QQQ comes back through the strike, the other side of the position gains again. That is the same as buying a deep in-the-money option of the other kind, without paying its spread. “Delta hedge”: at the lock minute every leg is hedged with shares by its Black–Scholes delta (volatility implied from the entry mid price, time to 17:30), and the hedge is reset every minute in which the delta has moved by 0.05; if no volatility can be implied, the leg gets the plain share hedge. Shares are closed at the 17:25 price. Costs: $1 per 100 shares for the share hedge, 1 cent a share for every delta-hedge trade. Both hedges apply only to the 17:25 exit, since they need the after-hours minutes. All lock methods compared, including a vertical spread and a bought in-the-money option.
- Stability. Besides the total, the page shows how many calendar months ended in profit, on what share of the sessions the running total stood above zero, and the P&L of each month under the chart. The default rule is chosen on 2022–2024 for stability at $1000 a day: the largest total without its three best days, so a rule cannot win on a few jumps; 2025–2026 is the check (see “History 2022–2026”). It is chosen on QQQ, SPY and IWM together (their daily results added up), so one rule has to work on all three.
- $1000 a day. The page opens with $1000 of options a day. With the daily budget it also shows the return on capital: the budget plus the largest drawdown the rule went through, and that result scaled to 252 sessions a year without compounding.
- Costs. Share trades after the close cost 1 cent a share in the model ($1 per 100 shares for a share hedge); the form can double or triple that for wider after-hours spreads, and can add 1–2 cents to the price of every contract bought.
- SPY and IWM. The same page and model run on their own snapshots from the same archive. The report-day basket is the same; the 30-minute volatility filter is QQQ-only because its thresholds are QQQ quartiles.
- Minimum per share order. Some brokers charge at least $0.35 or $1.00 for a share order. The share costs above already include $0.0035 a share, so each order adds only what it lacks to that minimum. The share hedge and a close after 16:15 trade 100 shares per contract and are barely touched; the delta hedge trades small lots many times, so the minimum costs it most with one contract and matters less as contracts are added.
- Report days. The project research basket: AAPL, MSFT, NVDA, AMZN, META, Alphabet, TSLA, AVGO, AMD, MU. All of them publish results after the close; the dates come from the Nasdaq calendar saved in the project (sessions in the period: 29). The largest late moves happen on these days, so a profit lock can cut them short: the “hold” mode disables the lock on report days only.
- Hedge fills. A lock is decided on a minute’s closing price, which is gone by then. By default every share trade of a hedge fills at the first minute open after its signal (the archive’s verified minute bars); “signal minute price” shows the earlier, optimistic model. Found by the execution audit in research/qqq_call_put_close_2026-09-24.
- Strike by delta, spread and VIX. Strike by delta: of the four OTM steps, the one whose Black–Scholes delta at entry (volatility from the quote mid, to the 17:30 cut-off) is nearest to the target, so “how far out” follows the price and volatility of the year. Minimum price in % of the ETF: the same idea for the option price. Spread: the pair’s combined bid/ask spread at entry over its combined ask. VIX: the Cboe close of the previous session (data/vix_prices_v1.json). All are known before the entry.
- Filters. Activity: the QQQ range (high minus low over the first price) of the minute closes in the 15 minutes before entry, either at least a fixed percentage or at least a share of the median 15:30–15:45 range of the previous 20 sessions. Minimum price: both options must cost at least this much at entry; very cheap options mark quiet sessions and are mostly fees. Evenings: the mean after-hours range (16:15–17:25) of the previous 10 sessions; 0.19% and 0.25% are the median and the upper third of January–June. Every filter uses only data known before the entry. How the filters were checked.
- 30-minute volatility. From the study research/qqq_late_move_2026-09-24: 100 × the square root of the sum of squared one-minute QQQ returns from 15:15 to entry. Its groups are fixed by the quartiles of 2023–2024: low ≤ 0.122%, high ≥ 0.218%, so 2026 never shaped them. The window needs QQQ from 15:15, so the filter works for entries from 15:45. How it did on this pair.
- Fees are charged for every contract bought and sold. When intrinsic value does not cover the fee, the option is not exercised and the exit is worth nothing.
- Several contracts per leg are bought at the same ask; with displayed sizes respected, a leg gets no more than the ask size shown at entry. Everything else, fees and share hedges included, scales with the count.
- Budget is split equally between the selected legs. Contracts per leg = leg budget ÷ (ask × 100 + fee), rounded down. With displayed sizes respected, a purchase is capped by the ask size and a 16:10 sale by the bid size.
- Limits. Quotes do not prove fills; latency, queue position and slippage are not modeled. The default variant was chosen on January–June and checked on July–September, so only the July–September result is out of sample; the January–June result is overstated by the choice itself. A reliable check needs future sessions with the rule fixed in advance.
- Reproduction. The quote facts are rebuilt by
python -m scripts.build_qqq_call_put_page; the page model matches independent Python calculations to the cent, with and without the profit lock, for every lock method.