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: 2026-01-02 — 2026-09-23, sessions: 182 · New York time · built 2026-09-23.

Every entry clock and strike

lossprofit· click a cell to select that variant

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

Checks · QQQ

Every rule here is chosen on January–June and judged on July–September. Two ways to choose: by profit (the largest January–June total) and by stability (the largest January–June total without its three best days, so a rule cannot win on a few jumps). The grid: 2,160 variants of entry 15:45 or 15:50, OTM strike step, lock at 2×, 3× or 5×, report days, filter and lock method; $0.65 per contract per side and a $0.35 minimum per share order; at least 25 trades on January–June. The months strip under each rule shows how evenly it earned.

The rules chosen on January–June 2026 lost on 2022–2024, so the page now opens on a rule chosen on those years; see “History 2022–2026” below. The checks here are still chosen on January–June 2026, with hedge shares filled at the next minute open.

One contract per leg

RuleJan–Jun (chosen here)Jul–Sep (check)2026: running total above zero
Chosen for stability15:45 · OTM +1 · 3× · report days as usual · range ≥ 0.14%, not low 30-min volatility · share hedge · open +$2,511w/o best 3 +$1,125 · months up 3/6 · 60 sessions+$334w/o best 3 −$269 · months up 3/3 · 17 sessions 66%max drawdown −$512
jan−$46feb−$210mar+$126apr+$461may−$36jun+$2,216jul+$195aug+$91sep+$48
Chosen for profit15:50 · OTM +1 · 5× · report days as usual · range ≥ 0.12% · share hedge · open +$3,062w/o best 3 +$900 · months up 4/6 · 67 sessions+$280w/o best 3 −$391 · months up 2/3 · 21 sessions 73%max drawdown −$512
jan−$17feb−$204mar+$308apr+$22may+$17jun+$2,937jul+$362aug−$84sep+$2
Earlier page default, chosen for profit15:45 · OTM +1 · 3× · no lock on report days · range ≥ 0.14% · delta hedge · open +$2,693w/o best 3 +$930 · months up 2/6 · 62 sessions+$361w/o best 3 −$236 · months up 3/3 · 22 sessions 59%max drawdown −$619
jan−$68feb−$221mar−$72apr+$452may−$79jun+$2,682jul+$178aug+$150sep+$33

Of the ten most stable rules on January–June 10 stayed positive on July–September; of the ten most profitable, 10.

$1000 of options a day

Each leg gets $500: contracts = $500 ÷ (ask × 100 + fee), capped by the displayed ask size. The capital is the $1000 plus the largest drawdown the rule went through; “a year” is the period’s result scaled to 252 sessions, without compounding.

RuleJan–JunJul–Sep2026 on capital
The stability rule, $1000 a day15:45 · OTM +1 · 3× · report days as usual · range ≥ 0.14%, not low 30-min volatility · share hedge · open +$15,843w/o best 3 −$3,310 · months up 4/6 · 60 sessions+$7,830w/o best 3 −$1,297 · months up 3/3 · 17 sessions +$23,673capital $20,300: +117% · ≈ +161% a year
jan+$2,206feb−$8,279mar+$2,944apr+$862may−$1,415jun+$19,524jul+$6,452aug+$862sep+$516
The profit rule, $1000 a day15:50 · OTM +1 · 5× · report days as usual · range ≥ 0.12% · share hedge · open +$27,610w/o best 3 −$762 · months up 3/6 · 67 sessions+$9,687w/o best 3 −$9,568 · months up 2/3 · 21 sessions +$37,297capital $24,977: +149% · ≈ +207% a year
jan+$1,278feb−$12,138mar+$16,008apr−$2,679may−$317jun+$25,458jul+$3,174aug−$2,113sep+$8,626
Chosen for stability directly at $1000 a day15:50 · OTM +1 · 2× · report days as usual · range ≥ 0.14%, not low 30-min volatility · share hedge · open +$53,887w/o best 3 +$10,092 · months up 4/6 · 58 sessions+$3,752w/o best 3 −$3,730 · months up 1/3 · 16 sessions +$57,640capital $17,428: +331% · ≈ +458% a year
jan+$2,578feb−$7,774mar+$17,828apr−$669may+$17,006jun+$24,918jul+$6,687aug−$1,960sep−$975

With a fixed dollar amount the strategy turns into a lottery: the cheaper the options, the more contracts it buys, so most days lose close to the whole $1000 and the year rests on a few big days — see the months. With one contract per leg the months are much smoother. The percentages are for comparison, not a forecast.

Lock methods on the stability rule

RuleJan–Jun (chosen here)Jul–Sep (check)2026: running total above zero
Closeopen +$2,428w/o best 3 +$1,039 · months up 3/6 · 60 sessions+$338w/o best 3 −$267 · months up 3/3 · 17 sessions 60%max drawdown −$511
Share hedgeopen +$2,511w/o best 3 +$1,125 · months up 3/6 · 60 sessions+$334w/o best 3 −$269 · months up 3/3 · 17 sessions 66%max drawdown −$512
Delta hedgeopen +$2,391w/o best 3 +$986 · months up 3/6 · 60 sessions+$311w/o best 3 −$286 · months up 3/3 · 17 sessions 59%max drawdown −$558
75% delta hedgeopen +$2,355w/o best 3 +$923 · months up 3/6 · 60 sessions+$251w/o best 3 −$319 · months up 3/3 · 17 sessions 59%max drawdown −$576
Delta hedge reset on a 0.05% moveopen +$2,298w/o best 3 +$935 · months up 3/6 · 60 sessions+$302w/o best 3 −$281 · months up 3/3 · 17 sessions 59%max drawdown −$550

Costs: wider after-hours spreads and slippage at entry

2026 total of the stability rule. Share trades after the close at the model’s cost (1 cent a share, $1 per 100 for a share hedge) or two and three times that; every contract bought 1 or 2 cents above the ask. The page has both settings.

Lock, contracts per leg shares ×1shares ×2shares ×3shares ×1, +1¢shares ×1, +2¢shares ×3, +2¢
Share hedge, 1 +$2,845Jul–Sep +$334 +$2,823Jul–Sep +$330 +$2,801Jul–Sep +$326 +$2,620Jul–Sep +$300 +$2,439Jul–Sep +$223 +$2,399Jul–Sep +$217
Share hedge, 5 +$13,612Jul–Sep +$1,672 +$13,502Jul–Sep +$1,652 +$13,392Jul–Sep +$1,632 +$12,490Jul–Sep +$1,502 +$11,590Jul–Sep +$1,117 +$11,390Jul–Sep +$1,087
Share hedge, 10 +$27,305Jul–Sep +$3,388 +$27,085Jul–Sep +$3,348 +$26,865Jul–Sep +$3,308 +$25,066Jul–Sep +$3,050 +$23,267Jul–Sep +$2,282 +$22,867Jul–Sep +$2,222
Delta hedge, 1 +$2,701Jul–Sep +$311 +$2,644Jul–Sep +$297 +$2,587Jul–Sep +$284 +$2,498Jul–Sep +$277 +$2,316Jul–Sep +$204 +$2,214Jul–Sep +$181
Delta hedge, 5 +$13,383Jul–Sep +$1,655 +$13,096Jul–Sep +$1,587 +$12,808Jul–Sep +$1,519 +$12,328Jul–Sep +$1,485 +$11,405Jul–Sep +$1,102 +$10,888Jul–Sep +$991
Delta hedge, 10 +$26,927Jul–Sep +$3,378 +$26,352Jul–Sep +$3,241 +$25,776Jul–Sep +$3,105 +$24,809Jul–Sep +$3,040 +$22,961Jul–Sep +$2,271 +$21,927Jul–Sep +$2,049

QQQ, SPY and IWM, each chosen for stability on its own January–June

RuleJan–Jun (chosen here)Jul–Sep (check)2026: running total above zero
IWM15:45 · OTM +3 · 2× · report days as usual · range ≥ its 20-session median · share hedge · open +$218w/o best 3 −$113 · months up 1/5 · 31 sessions−$45w/o best 3 −$35 · months up 0/3 · 13 sessions 69%max drawdown −$117
feb−$24mar+$309apr−$34may−$23jun−$10jul−$18aug−$10sep−$16
QQQ (this page)15:45 · OTM +1 · 3× · report days as usual · range ≥ 0.14%, not low 30-min volatility · share hedge · open +$2,511w/o best 3 +$1,125 · months up 3/6 · 60 sessions+$334w/o best 3 −$269 · months up 3/3 · 17 sessions 66%max drawdown −$512
jan−$46feb−$210mar+$126apr+$461may−$36jun+$2,216jul+$195aug+$91sep+$48
SPY15:50 · OTM +1 · 2× · report days as usual · range ≥ its 20-session median · delta hedge · open +$188w/o best 3 −$185 · months up 3/5 · 39 sessions−$121w/o best 3 −$312 · months up 1/3 · 24 sessions 40%max drawdown −$387
feb−$60mar−$234apr+$83may+$27jun+$373jul+$141aug−$153sep−$109

Checks built 2026-09-24 22:09 UTC · node scripts/qqq_call_put_checks.cjs. The report-day basket is the same for all three; the 30-minute volatility filter exists only for QQQ.

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”).

YearQQQ, $1000 a daySPY, $1000 a dayIWM, $1000 a dayTogether, $1000 a day eachQQQ, 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 · Together2022–2024 (chosen here)202520262025–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 · QQQ2022–2024 (chosen here)202520262025–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 · Together2022–2024 (chosen here)202520262025–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 · QQQ2022–2024 (chosen here)202520262025–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 ruleFor stability: years beforeThat yearEvery year positive: years beforeThat 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 ruleFor stability: years beforeThat yearEvery year positive: years beforeThat 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.

Rule202220232024202520262022–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

Check2022–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.

SettingTogether: 2022–2024Together: 2025–2026QQQ: 2025–2026SPY: 2025–2026IWM: 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 \ spreadany≤ 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.

QQQ202220232024202520262022–2026Shares 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
Together202220232024202520262022–2026Shares 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

Move forecast · QQQ

The recipe of the volatility forecast study fitted on the pair’s own windows: the range of QQQ from the 15:50 entry to the 17:25 exercise cut-off, and from the 16:00 close to 17:25. Inputs known at the window’s start: the last 15, 30 and 60 minutes, the regular session so far, the prior VIX close, basket earnings after the close, FOMC today, CPI/NFP tomorrow and the same window 1, 5 and 22 sessions back. Least squares on logs, refitted every month on the earlier days only, so every forecast is out of sample. Share of the range’s spread it explains (R²) by year: 2022 0.07, 2023 0.36, 2024 0.43, 2025 0.56, 2026 0.33 (entry window); 2022 0.14, 2023 0.31, 2024 0.40, 2025 0.53, 2026 0.32 (after the close). The largest weights: earnings after the close, the last 30 minutes and the session so far.

  • The default’s profit comes from days with a high forecast: its trades in the top third of the forecast made +$495 on 2022–2024 and +$3,709 on 2025–2026 with one contract, the middle third −$67 and −$43.
  • Trading only days with a forecast range at or above the 40th–60th percentile of 2022–2024 beats the default in both periods at both sizes; the 60th is the best but a peak, the 70th is about level with the default and the 80th cuts too much (tables below).
  • The session’s volatility before entry and the forecast against the option price add nothing stable. Neither do the strike distance and the exit chosen from the forecast: the best of them on 2022–2024 lose on 2025–2026, and taking the profit at 16:00 cuts the moves after the close that pay for the strategy.
  • Choosing all of it together overfits: of 2,185 combinations the best on 2022–2024 made +$5,094 on 2025–2026 at $1000 a day against +$26,539 for the default.

The default’s trades by forecast third

Forecast range 15:50–17:25TradesWinningMedian forecast / actual rangeOne contract: 2022–2024One contract: 2025–2026
low third 20 / 20% 0.28% / 0.58%$0−$66
middle third 455 / 4022% 0.41% / 0.49%−$67−$43
top third 10029 / 7143% 0.65% / 0.84%+$495+$3,709

$1000 a day

On top of the default; percentiles of the forecast on 2022–2024. ★: the choice on 2022–2024 for stability (the total without the three best days).

Variant2022–2024 (chosen here)202520262025–2026 (check)
Default+$6,221w/o best 3 −$6,280 · 36 trades+$3,131+$23,408+$26,539w/o best 3 +$9,082 · 113 trades
1. The composite forecast as a filter
Forecast range ≥ the 20th percentile +$7,072w/o best 3 −$5,428 · 34 trades+$3,131+$23,408+$26,539w/o best 3 +$9,082 · 113 trades
Forecast range ≥ the 20th percentile, no 15-min range filter +$5,101w/o best 3 −$7,400 · 39 trades+$1,413+$13,422+$14,835w/o best 3 −$2,622 · 133 trades
Forecast range ≥ the 40th percentile +$7,072w/o best 3 −$5,428 · 34 trades+$4,126+$25,258+$29,385w/o best 3 +$11,927 · 110 trades
Forecast range ≥ the 40th percentile, no 15-min range filter +$5,101w/o best 3 −$7,400 · 39 trades+$2,671+$19,298+$21,970w/o best 3 +$4,513 · 124 trades
Forecast range ≥ the 50th percentile ★+$8,987w/o best 3 −$3,514 · 32 trades+$6,665+$23,311+$29,975w/o best 3 +$12,518 · 102 trades
Forecast range ≥ the 50th percentile, no 15-min range filter +$7,241w/o best 3 −$5,260 · 36 trades+$4,371+$18,340+$22,711w/o best 3 +$5,254 · 114 trades
Forecast range ≥ the 60th percentile +$8,987w/o best 3 −$3,514 · 32 trades+$7,638+$32,713+$40,351w/o best 3 +$22,894 · 87 trades
Forecast range ≥ the 60th percentile, no 15-min range filter +$8,225w/o best 3 −$4,276 · 35 trades+$5,970+$27,035+$33,005w/o best 3 +$15,548 · 97 trades
Forecast range ≥ the 70th percentile +$8,313w/o best 3 −$4,187 · 28 trades+$2,942+$23,465+$26,407w/o best 3 +$11,516 · 67 trades
Forecast range ≥ the 70th percentile, no 15-min range filter +$6,691w/o best 3 −$5,809 · 30 trades+$2,942+$17,951+$20,893w/o best 3 +$6,002 · 74 trades
Forecast range ≥ the 80th percentile +$1,549w/o best 3 −$6,070 · 20 trades+$2,637+$7,556+$10,193w/o best 3 −$2,485 · 51 trades
Forecast range ≥ the 80th percentile, no 15-min range filter +$1,549w/o best 3 −$6,070 · 20 trades+$2,637+$5,428+$8,065w/o best 3 −$4,613 · 54 trades
2. Volatility of the session before entry
Session volatility before entry ≥ the 20th percentile +$4,821w/o best 3 −$6,537 · 30 trades+$1,613+$24,893+$26,506w/o best 3 +$9,049 · 107 trades
Session volatility before entry ≥ the 20th percentile, no 15-min range filter +$4,049w/o best 3 −$7,309 · 33 trades+$528+$16,153+$16,681w/o best 3 −$776 · 120 trades
Session volatility before entry ≥ the 40th percentile +$929w/o best 3 −$8,477 · 24 trades+$3,752+$25,808+$29,561w/o best 3 +$12,103 · 102 trades
Session volatility before entry ≥ the 40th percentile, no 15-min range filter +$280w/o best 3 −$9,125 · 25 trades+$2,667+$21,915+$24,581w/o best 3 +$7,124 · 109 trades
Session volatility before entry ≥ the 60th percentile ★+$2,853w/o best 3 −$5,691 · 15 trades+$8,748+$27,022+$35,771w/o best 3 +$18,313 · 85 trades
Session volatility before entry ≥ the 60th percentile, no 15-min range filter +$2,853w/o best 3 −$5,691 · 15 trades+$8,748+$26,063+$34,811w/o best 3 +$17,354 · 87 trades
3. The forecast against the option price
Forecast / implied volatility ≥ 0.61 (20th percentile) +$7,874w/o best 3 −$4,626 · 28 trades+$1,111+$23,915+$25,026w/o best 3 +$7,569 · 107 trades
Forecast / implied volatility ≥ 0.69 (40th percentile) +$4,469w/o best 3 −$7,734 · 21 trades+$2,126+$23,915+$26,041w/o best 3 +$8,583 · 103 trades
Forecast / implied volatility ≥ 0.86 (60th percentile) +$4,777w/o best 3 −$4,600 · 14 trades+$3,477+$18,870+$22,346w/o best 3 +$5,877 · 78 trades
Forecast / implied volatility ≥ 0.98 (80th percentile) ★+$2,735w/o best 3 −$2,388 · 7 trades+$3,472+$21,570+$25,042w/o best 3 +$8,572 · 58 trades
Strike distance from the forecast range
Strike at 0.25× the forecast range from the price −$18,702w/o best 3 −$26,874 · 132 trades+$5,462+$6,732+$12,194w/o best 3 −$8,518 · 218 trades
Strike at 0.50× the forecast range from the price −$14,887w/o best 3 −$26,378 · 90 trades+$12,810+$6,436+$19,245w/o best 3 +$602 · 159 trades
Strike at 0.75× the forecast range from the price ★+$11,919w/o best 3 −$1,134 · 41 trades+$6,875+$3,065+$9,940w/o best 3 −$4,997 · 74 trades
Strike at 1.00× the forecast range from the price −$448w/o best 3 −$12,032 · 24 trades+$5,818+$9,810+$15,628w/o best 3 −$385 · 36 trades
Lock multiple from the forecast
Lock at 2/3/5× by forecast third (low/middle/high) +$5,011w/o best 3 −$7,489 · 36 trades+$516+$25,018+$25,534w/o best 3 +$10,418 · 113 trades
Lock at 2/5/10× by forecast third (low/middle/high) −$259w/o best 3 −$10,856 · 36 trades+$738+$16,072+$16,810w/o best 3 −$1,788 · 113 trades
Lock at 3/5/10× by forecast third (low/middle/high) −$259w/o best 3 −$10,856 · 36 trades+$738+$16,072+$16,810w/o best 3 −$1,788 · 113 trades
Lock at 5/5/10× by forecast third (low/middle/high) −$259w/o best 3 −$10,856 · 36 trades+$738+$16,072+$16,810w/o best 3 −$1,788 · 113 trades
Lock at 3/5/7× by forecast third (low/middle/high) −$259w/o best 3 −$10,856 · 36 trades+$5,569+$19,829+$25,399w/o best 3 +$4,506 · 113 trades
Lock at 2/5/5× by forecast third (low/middle/high) +$6,221w/o best 3 −$6,280 · 36 trades+$3,131+$23,408+$26,539w/o best 3 +$9,082 · 113 trades
Exit at 16:00 from the forecast after the close
Lock at 16:00 if the after-close forecast ≤ the 33th percentile of trade days and worth ≥ 1.0×+$6,357w/o best 3 −$6,143 · 36 trades−$3,802+$12,206+$8,404w/o best 3 −$6,661 · 113 trades
Lock at 16:00 if the after-close forecast ≤ the 33th percentile of trade days and worth ≥ 1.5×+$6,221w/o best 3 −$6,280 · 36 trades−$1,191+$12,891+$11,701w/o best 3 −$3,364 · 113 trades
Lock at 16:00 if the after-close forecast ≤ the 33th percentile of trade days and worth ≥ 2.0×+$6,221w/o best 3 −$6,280 · 36 trades+$1,675+$19,431+$21,106w/o best 3 +$4,828 · 113 trades
Lock at 16:00 if the after-close forecast ≤ the 50th percentile of trade days and worth ≥ 1.0×+$6,357w/o best 3 −$6,143 · 36 trades−$3,662+$12,206+$8,544w/o best 3 −$6,521 · 113 trades
Lock at 16:00 if the after-close forecast ≤ the 50th percentile of trade days and worth ≥ 1.5×+$6,221w/o best 3 −$6,280 · 36 trades−$1,051+$12,891+$11,841w/o best 3 −$3,224 · 113 trades
Lock at 16:00 if the after-close forecast ≤ the 50th percentile of trade days and worth ≥ 2.0×+$6,221w/o best 3 −$6,280 · 36 trades+$1,815+$19,431+$21,246w/o best 3 +$4,968 · 113 trades
Lock at 16:00 if the after-close forecast ≤ the 67th percentile of trade days and worth ≥ 1.0×+$6,844w/o best 3 −$5,657 · 36 trades−$998+$12,206+$11,208w/o best 3 −$3,858 · 113 trades
Lock at 16:00 if the after-close forecast ≤ the 67th percentile of trade days and worth ≥ 1.5×+$6,221w/o best 3 −$6,280 · 36 trades+$1,613+$12,891+$14,504w/o best 3 −$561 · 113 trades
Lock at 16:00 if the after-close forecast ≤ the 67th percentile of trade days and worth ≥ 2.0×+$6,221w/o best 3 −$6,280 · 36 trades+$1,815+$19,431+$21,246w/o best 3 +$4,968 · 113 trades
Lock at 16:00 whenever the pair is worth ≥ 1.0× (no forecast) ★+$7,333w/o best 3 −$5,167 · 36 trades−$1,273+$11,486+$10,213w/o best 3 −$4,852 · 113 trades
Lock at 16:00 whenever the pair is worth ≥ 1.5× (no forecast)+$6,710w/o best 3 −$5,790 · 36 trades+$1,613+$12,891+$14,504w/o best 3 −$561 · 113 trades
Lock at 16:00 whenever the pair is worth ≥ 2.0× (no forecast)+$7,286w/o best 3 −$5,214 · 36 trades+$1,815+$19,431+$21,246w/o best 3 +$4,968 · 113 trades

All combinations of one filter, one strike rule and one exit rule: 2,185; better than the default in both periods 23; the best on 2022–2024 +$12,785 → +$5,094 on 2025–2026.

One contract per leg

On top of the default; percentiles of the forecast on 2022–2024. ★: the choice on 2022–2024 for stability (the total without the three best days).

Variant2022–2024 (chosen here)202520262025–2026 (check)
Default+$363w/o best 3 −$582 · 36 trades+$752+$2,847+$3,600w/o best 3 +$773 · 113 trades
1. The composite forecast as a filter
Forecast range ≥ the 20th percentile +$429w/o best 3 −$517 · 34 trades+$752+$2,847+$3,600w/o best 3 +$773 · 113 trades
Forecast range ≥ the 20th percentile, no 15-min range filter +$280w/o best 3 −$665 · 39 trades+$406+$1,833+$2,239w/o best 3 −$588 · 133 trades
Forecast range ≥ the 40th percentile +$429w/o best 3 −$517 · 34 trades+$790+$2,904+$3,694w/o best 3 +$866 · 110 trades
Forecast range ≥ the 40th percentile, no 15-min range filter +$280w/o best 3 −$665 · 39 trades+$470+$2,075+$2,545w/o best 3 −$282 · 124 trades
Forecast range ≥ the 50th percentile +$490w/o best 3 −$456 · 32 trades+$896+$2,855+$3,752w/o best 3 +$924 · 102 trades
Forecast range ≥ the 50th percentile, no 15-min range filter +$425w/o best 3 −$521 · 36 trades+$471+$2,054+$2,524w/o best 3 −$303 · 114 trades
Forecast range ≥ the 60th percentile +$490w/o best 3 −$456 · 32 trades+$994+$3,431+$4,425w/o best 3 +$1,597 · 87 trades
Forecast range ≥ the 60th percentile, no 15-min range filter +$474w/o best 3 −$471 · 35 trades+$616+$2,576+$3,192w/o best 3 +$365 · 97 trades
Forecast range ≥ the 70th percentile +$539w/o best 3 −$406 · 28 trades+$618+$3,088+$3,706w/o best 3 +$879 · 67 trades
Forecast range ≥ the 70th percentile, no 15-min range filter +$438w/o best 3 −$508 · 30 trades+$618+$2,297+$2,915w/o best 3 +$88 · 74 trades
Forecast range ≥ the 80th percentile ★+$583w/o best 3 −$362 · 20 trades−$212+$1,723+$1,512w/o best 3 −$583 · 51 trades
Forecast range ≥ the 80th percentile, no 15-min range filter +$583w/o best 3 −$362 · 20 trades−$212+$1,613+$1,401w/o best 3 −$694 · 54 trades
2. Volatility of the session before entry
Session volatility before entry ≥ the 20th percentile +$608w/o best 3 −$337 · 30 trades+$652+$3,020+$3,671w/o best 3 +$844 · 107 trades
Session volatility before entry ≥ the 20th percentile, no 15-min range filter +$605w/o best 3 −$341 · 33 trades+$529+$2,106+$2,635w/o best 3 −$192 · 120 trades
Session volatility before entry ≥ the 40th percentile +$281w/o best 3 −$626 · 24 trades+$733+$3,198+$3,931w/o best 3 +$1,104 · 102 trades
Session volatility before entry ≥ the 40th percentile, no 15-min range filter +$240w/o best 3 −$666 · 25 trades+$610+$2,801+$3,411w/o best 3 +$584 · 109 trades
Session volatility before entry ≥ the 60th percentile ★+$398w/o best 3 −$302 · 15 trades+$1,339+$3,049+$4,388w/o best 3 +$1,561 · 85 trades
Session volatility before entry ≥ the 60th percentile, no 15-min range filter +$398w/o best 3 −$302 · 15 trades+$1,339+$2,771+$4,110w/o best 3 +$1,283 · 87 trades
3. The forecast against the option price
Forecast / implied volatility ≥ 0.61 (20th percentile) +$726w/o best 3 −$219 · 28 trades+$365+$2,992+$3,356w/o best 3 +$1,202 · 107 trades
Forecast / implied volatility ≥ 0.69 (40th percentile) +$349w/o best 3 −$356 · 21 trades+$152+$2,992+$3,144w/o best 3 +$990 · 103 trades
Forecast / implied volatility ≥ 0.86 (60th percentile) +$203w/o best 3 −$282 · 14 trades+$612+$1,869+$2,481w/o best 3 +$1,200 · 78 trades
Forecast / implied volatility ≥ 0.98 (80th percentile) ★+$156w/o best 3 −$84 · 7 trades+$382+$1,747+$2,128w/o best 3 +$906 · 58 trades
Strike distance from the forecast range
Strike at 0.25× the forecast range from the price −$271w/o best 3 −$1,308 · 132 trades+$1,459+$2,187+$3,646w/o best 3 +$607 · 218 trades
Strike at 0.50× the forecast range from the price −$788w/o best 3 −$1,704 · 90 trades+$891+$1,092+$1,982w/o best 3 −$367 · 159 trades
Strike at 0.75× the forecast range from the price +$37w/o best 3 −$737 · 41 trades+$734+$851+$1,585w/o best 3 −$641 · 74 trades
Strike at 1.00× the forecast range from the price −$283w/o best 3 −$879 · 24 trades+$416+$1,073+$1,489w/o best 3 −$273 · 36 trades
Lock multiple from the forecast
Lock at 2/3/5× by forecast third (low/middle/high) +$320w/o best 3 −$626 · 36 trades+$659+$2,923+$3,581w/o best 3 +$754 · 113 trades
Lock at 2/5/10× by forecast third (low/middle/high) +$162w/o best 3 −$745 · 36 trades+$744+$1,746+$2,490w/o best 3 −$39 · 113 trades
Lock at 3/5/10× by forecast third (low/middle/high) +$162w/o best 3 −$745 · 36 trades+$744+$1,746+$2,490w/o best 3 −$39 · 113 trades
Lock at 5/5/10× by forecast third (low/middle/high) +$162w/o best 3 −$745 · 36 trades+$744+$1,746+$2,490w/o best 3 −$39 · 113 trades
Lock at 3/5/7× by forecast third (low/middle/high) +$162w/o best 3 −$745 · 36 trades+$850+$1,746+$2,596w/o best 3 +$67 · 113 trades
Lock at 2/5/5× by forecast third (low/middle/high) +$363w/o best 3 −$582 · 36 trades+$752+$2,847+$3,600w/o best 3 +$773 · 113 trades
Exit at 16:00 from the forecast after the close
Lock at 16:00 if the after-close forecast ≤ the 33th percentile of trade days and worth ≥ 1.0×+$358w/o best 3 −$588 · 36 trades+$406+$2,118+$2,524w/o best 3 −$303 · 113 trades
Lock at 16:00 if the after-close forecast ≤ the 33th percentile of trade days and worth ≥ 1.5×+$358w/o best 3 −$588 · 36 trades+$511+$2,118+$2,629w/o best 3 −$198 · 113 trades
Lock at 16:00 if the after-close forecast ≤ the 33th percentile of trade days and worth ≥ 2.0×+$363w/o best 3 −$582 · 36 trades+$630+$2,756+$3,386w/o best 3 +$559 · 113 trades
Lock at 16:00 if the after-close forecast ≤ the 50th percentile of trade days and worth ≥ 1.0×+$358w/o best 3 −$588 · 36 trades+$412+$1,948+$2,360w/o best 3 −$370 · 113 trades
Lock at 16:00 if the after-close forecast ≤ the 50th percentile of trade days and worth ≥ 1.5×+$358w/o best 3 −$588 · 36 trades+$517+$1,948+$2,465w/o best 3 −$265 · 113 trades
Lock at 16:00 if the after-close forecast ≤ the 50th percentile of trade days and worth ≥ 2.0×+$363w/o best 3 −$582 · 36 trades+$636+$2,585+$3,222w/o best 3 +$433 · 113 trades
Lock at 16:00 if the after-close forecast ≤ the 67th percentile of trade days and worth ≥ 1.0×+$358w/o best 3 −$588 · 36 trades+$504+$1,948+$2,452w/o best 3 −$278 · 113 trades
Lock at 16:00 if the after-close forecast ≤ the 67th percentile of trade days and worth ≥ 1.5×+$358w/o best 3 −$588 · 36 trades+$609+$1,948+$2,557w/o best 3 −$173 · 113 trades
Lock at 16:00 if the after-close forecast ≤ the 67th percentile of trade days and worth ≥ 2.0×+$363w/o best 3 −$582 · 36 trades+$728+$2,585+$3,314w/o best 3 +$525 · 113 trades
Lock at 16:00 whenever the pair is worth ≥ 1.0× (no forecast) ★+$394w/o best 3 −$552 · 36 trades+$465+$1,803+$2,268w/o best 3 −$462 · 113 trades
Lock at 16:00 whenever the pair is worth ≥ 1.5× (no forecast)+$358w/o best 3 −$588 · 36 trades+$601+$1,948+$2,549w/o best 3 −$181 · 113 trades
Lock at 16:00 whenever the pair is worth ≥ 2.0× (no forecast)+$363w/o best 3 −$582 · 36 trades+$728+$2,585+$3,314w/o best 3 +$525 · 113 trades

All combinations of one filter, one strike rule and one exit rule: 2,185; better than the default in both periods 62; the best on 2022–2024 +$1,726 → +$1,664 on 2025–2026.

Built 2026-09-25 02:19 UTC · python -m scripts.qqq_call_put_forecast · node scripts/qqq_call_put_forecast.cjs

15–30 minutes inside the session · QQQ

A different strategy, where the move forecast is strongest: at the start of a 15- or 30-minute window (15-minute windows every 15 minutes 09:45–15:45, 30-minute ones every 30 minutes 10:00–15:30) buy the same-day straddle at the money or the Call and Put one strike out at the ask, and sell them at the bid at the window’s end. $0.65 per contract per side, one contract per leg; the project’s minute NBBO archive, 2022–2026: sessions 1,142, windows 78,486. The forecast of the window’s volatility (the recipe of the forecast study, refitted monthly on earlier months only) explains 62%, 68%, 66%, 78%, 72% of its spread by year (15 minutes). Chosen on 2022–2024, checked on 2025–2026.

  • Every variant loses: buying loses $5–12 per trade whether every window is bought or only those where the forecast is above the options’ implied volatility, with or without taking the profit at 1.25–2×; selling where the forecast is below the price loses $2–10.
  • The forecast does beat the price a little: in the tenth of windows where it is furthest above the implied volatility the straddle gains +$0.79 at the quote mid over 15 minutes (2025–2026), against −$0.15 for all windows. But a round trip costs $7.97 (half the spread in and out plus four fees) — several times the edge.
  • The spread grows toward the close: for the straddle from about 1% of its price in the morning to 2–4% after 15:00, for the OTM pair from 2% to 7–14%.

Where the money goes, per pair on average

Window and pairPair priceChange at the mid: all windows…forecast furthest above the price (top 10%)Round trip: spread and fees
15 min, straddle at the money$267 −$0.152022–2024 −$1.72 +$0.792022–2024 −$0.28 −$6.752022–2024 −$7.11
15 min, Call + Put OTM +1$156 −$0.242022–2024 −$1.28 +$1.052022–2024 +$0.02 −$5.582022–2024 −$5.66
30 min, straddle at the money$267 −$0.782022–2024 −$3.05 +$0.632022–2024 +$1.19 −$7.502022–2024 −$7.72
30 min, Call + Put OTM +1$156 −$1.062022–2024 −$2.10 −$0.252022–2024 +$0.42 −$5.882022–2024 −$5.86

Result per trade, 2025–2026 (2022–2024 below)

Which windows15 min, straddle at the money15 min, Call + Put OTM +130 min, straddle at the money30 min, Call + Put OTM +1
Buy every window −$6.902022–2024 −$8.75 · 10,716 trades −$5.762022–2024 −$6.80 · 10,650 trades −$8.142022–2024 −$10.31 · 5,144 trades −$6.612022–2024 −$7.53 · 5,122 trades
Buy when forecast / implied is in its upper half −$6.642022–2024 −$7.64 · 6,490 trades −$5.512022–2024 −$6.26 · 6,391 trades −$7.332022–2024 −$7.51 · 3,132 trades −$6.652022–2024 −$6.17 · 3,146 trades
…in its upper 30% −$6.952022–2024 −$7.88 · 4,496 trades −$6.142022–2024 −$6.37 · 4,388 trades −$8.572022–2024 −$7.13 · 2,229 trades −$7.212022–2024 −$5.86 · 2,195 trades
…in its upper 10% (forecast above the price) −$7.172022–2024 −$8.05 · 1,863 trades −$5.552022–2024 −$6.22 · 1,812 trades −$6.982022–2024 −$6.07 · 934 trades −$6.592022–2024 −$5.16 · 913 trades
Buy when the forecast itself is in its upper 30% −$7.582022–2024 −$10.05 · 3,355 trades −$5.952022–2024 −$7.81 · 3,338 trades −$8.252022–2024 −$10.24 · 2,012 trades −$6.802022–2024 −$7.66 · 1,998 trades
…in its upper 10% −$8.762022–2024 −$11.72 · 1,412 trades −$6.142022–2024 −$9.32 · 1,394 trades −$9.532022–2024 −$8.86 · 1,044 trades −$7.882022–2024 −$6.80 · 1,038 trades
Sell when forecast / implied is in its lower 10% −$7.802022–2024 −$5.66 · 985 trades −$5.352022–2024 −$5.41 · 952 trades −$10.382022–2024 −$4.12 · 435 trades −$5.392022–2024 −$4.45 · 401 trades
…in its lower 30% −$5.722022–2024 −$4.54 · 2,564 trades −$4.252022–2024 −$3.90 · 2,486 trades −$6.822022–2024 −$2.45 · 1,166 trades −$4.412022–2024 −$2.47 · 1,075 trades

By the window’s start: 15-minute straddle at the money, every window

StartPer trade, 2025–2026Per trade, 2022–2024Spread at entry, % of the ask
09:45−$10.21−$14.941.2%
10:00−$13.69−$10.901.7%
10:15−$3.50−$8.261.1%
10:30−$8.14−$8.261.2%
10:45−$5.66−$8.961.2%
11:00−$6.67−$6.831.3%
11:15−$4.15−$8.631.3%
11:30−$6.14−$7.811.3%
11:45−$5.29−$7.521.3%
12:00−$5.87−$6.341.4%
12:15−$4.69−$7.031.4%
12:30−$5.63−$7.271.4%
12:45−$6.75−$5.781.5%
13:00−$8.29−$7.731.6%
13:15−$2.60−$7.211.6%
13:30−$7.22−$6.641.7%
13:45−$8.13−$8.681.7%
14:00−$7.44−$10.292.0%
14:15−$6.85−$8.851.9%
14:30−$7.78−$8.402.1%
14:45−$4.19−$9.212.2%
15:00−$4.93−$10.342.4%
15:15−$10.93−$10.062.6%
15:30−$6.19−$9.453.1%
15:45−$11.44−$13.433.8%

Strike and exit from the forecast

Strikes: fixed (the straddle at the money, the Call n strikes above and the Put n strikes below) or at QQQ ± k× the forecast range of the window. Exits: the window’s end; the pair worth 1.25–2×; QQQ away from the entry by 0.5–1× the forecast range; the range since entry reaching 0.75–1× the forecast; in 30-minute windows a re-check at minute 15 — keep the pair only while the forecast of the next 15 minutes is at least the options’ implied volatility then. The forecast range is walk-forward like the volatility. Every window with a forecast, mean per trade on 2025–2026, 2022–2024 below.

  • No combination of strike and exit is positive in either period, whether every window is traded or only those where the forecast is above the options’ price; the best on 2022–2024 lose $5.6–7.7 per trade on 2025–2026.
  • Strikes from the forecast behave like fixed steps at the same distance. Far strikes lose less only because the pair is cheaper, so its spread in dollars is smaller.
  • Exits on the forecast move or range are no better than the window’s end. The re-check at minute 15 of a 30-minute window saves $0.8–1.8 per trade on the straddle in both periods, still far below zero.
15 min: strike \ exitWindow’s endPair at 1.5×QQQ moved 0.5× the forecastQQQ moved 1× the forecastRange reached the forecast
Straddle at the money−$6.89−$8.08−$6.93−$7.97−$6.83−$7.73−$7.06−$8.17−$7.02−$8.17
OTM 0−$6.41−$7.11−$6.36−$7.06−$6.40−$6.98−$6.61−$7.25−$6.59−$7.23
OTM +1−$5.76−$6.30−$5.80−$6.29−$5.97−$6.22−$6.09−$6.44−$6.10−$6.43
OTM +2−$5.52−$5.83−$5.58−$5.84−$5.75−$5.74−$5.85−$5.94−$5.86−$5.93
OTM +3−$5.35−$5.53−$5.50−$5.50−$5.62−$5.42−$5.70−$5.59−$5.71−$5.58
0.25× the forecast range−$6.46−$7.57−$6.50−$7.49−$6.49−$7.35−$6.67−$7.69−$6.65−$7.69
0.5× the forecast range−$6.07−$7.07−$6.16−$7.01−$6.21−$6.99−$6.31−$7.22−$6.31−$7.21
0.75× the forecast range−$5.88−$6.98−$6.04−$6.89−$6.11−$6.83−$6.16−$7.13−$6.15−$7.12
1× the forecast range−$5.76−$6.76−$5.86−$6.70−$5.98−$6.67−$6.07−$6.92−$6.07−$6.91
1.5× the forecast range−$5.66−$6.40−$5.77−$6.35−$5.85−$6.34−$5.94−$6.57−$5.92−$6.58
30 min: strike \ exitWindow’s endPair at 1.5×QQQ moved 0.5× the forecastQQQ moved 1× the forecastRange reached the forecastRe-check at minute 15
Straddle at the money−$8.11−$8.97−$7.94−$9.09−$8.24−$8.17−$8.15−$8.72−$8.24−$8.67−$7.27−$7.20
OTM 0−$7.52−$7.77−$7.25−$7.68−$7.77−$7.28−$7.54−$7.60−$7.69−$7.56−$6.91−$6.36
OTM +1−$6.61−$6.67−$6.35−$6.73−$7.13−$6.44−$6.63−$6.61−$6.85−$6.62−$6.33−$5.83
OTM +2−$6.23−$6.04−$6.12−$6.13−$6.76−$5.92−$6.37−$6.07−$6.55−$6.09−$6.10−$5.50
OTM +3−$6.14−$5.64−$5.97−$5.80−$6.53−$5.55−$6.19−$5.69−$6.35−$5.71−$6.03−$5.21
0.25× the forecast range−$7.39−$8.19−$7.33−$8.25−$7.71−$7.64−$7.43−$8.07−$7.57−$8.04−$6.70−$6.61
0.5× the forecast range−$6.95−$7.59−$6.85−$7.42−$7.41−$7.23−$7.04−$7.44−$7.24−$7.43−$6.43−$6.27
0.75× the forecast range−$6.58−$7.49−$6.71−$7.53−$7.09−$7.13−$6.78−$7.37−$6.90−$7.36−$6.22−$6.18
1× the forecast range−$6.45−$7.13−$6.46−$7.21−$7.02−$6.87−$6.62−$7.09−$6.82−$7.10−$6.01−$6.10
1.5× the forecast range−$6.46−$6.55−$6.59−$6.58−$6.87−$6.37−$6.60−$6.54−$6.79−$6.57−$6.10−$5.67

research/qqq_intraday_windows_2026-09-25/qqq_windows.py · qqq_windows_adaptive.py · details in the research write-up, section 17

Entry on the option’s price, side from the day’s character

Instead of a fixed clock: from 14:00, 15:00 or 15:30 to 16:10 New York, buy at the first minute when the nearest out-of-the-money option of a side (or the next strike) has an ask of at most 5, 10 or 20¢, one contract per side and day. The side follows the day so far: its efficiency (the move since the open over the sum of all one-minute moves; near 1 a trend day, near 0 back and forth; the median on 2022–2024 is 0.055) and the last 30 minutes. Exits: hold to 17:25, sell at the bid at 3–10× before 16:15, or also lock with shares after 16:15 like the page. QQQ, SPY and IWM, 2022–2026, 101,085 entries; $0.65 per contract per side; chosen on 2022–2024, checked on 2025–2026.

  • None of the 1,386 variants on each ETF is positive in both periods; on QQQ only 1 is positive on 2022–2024. Without any fee, still none in both periods — the idea has no edge before costs.
  • A near-the-money option gets cheap when the market expects little movement, and on most such evenings it is right: usually 5–18% of these trades win (about 10% in the middle), the rest mostly expire worthless.
  • 24 September 2026 fits the idea: a back-and-forth day (efficiency 0.07), and the Put 740 bought at 15:41 for $0.19 made +$70 with the lock after the close, while holding it to 17:25 lost $20. On the history such evenings do not pay for the rest.
Positive variantsQQQSPYIWMTogether
$0.65 a contract0 in both2022–2024: 1 · 2025–2026: 92 of 1,3860 in both2022–2024: 0 · 2025–2026: 21 of 1,3860 in both2022–2024: 0 · 2025–2026: 3 of 1,3860 in both2022–2024: 0 · 2025–2026: 1 of 1,386
$0.25 a contract0 in both2022–2024: 2 · 2025–2026: 130 of 1,3860 in both2022–2024: 1 · 2025–2026: 35 of 1,3860 in both2022–2024: 0 · 2025–2026: 10 of 1,3860 in both2022–2024: 0 · 2025–2026: 10 of 1,386
no fee0 in both2022–2024: 3 · 2025–2026: 179 of 1,3860 in both2022–2024: 1 · 2025–2026: 54 of 1,3860 in both2022–2024: 0 · 2025–2026: 16 of 1,3860 in both2022–2024: 0 · 2025–2026: 22 of 1,386

QQQ · from 15:00, at most 10¢ · nearest strike out of the money

SideHold to 17:25Sell at 5× before 16:153× with the share lock5× with the share lock10× with the share lock
Both sides−$1,2142022–2024 −$3,996 · 606 trades−$1,4272022–2024 −$3,998 · 606 trades−$1,7692022–2024 −$3,764 · 606 trades−$1,4802022–2024 −$3,583 · 606 trades−$1,5462022–2024 −$3,863 · 606 trades
Trend day: with the day’s move only−$2502022–2024 −$1,170 · 146 trades−$3932022–2024 −$979 · 146 trades−$5162022–2024 −$931 · 146 trades−$3532022–2024 −$950 · 146 trades−$4402022–2024 −$1,100 · 146 trades
Trend day: with the move; other days both−$1,0272022–2024 −$2,517 · 459 trades−$1,1292022–2024 −$2,511 · 459 trades−$1,2952022–2024 −$2,475 · 459 trades−$1,0452022–2024 −$2,254 · 459 trades−$1,1882022–2024 −$2,459 · 459 trades
Choppy day: against the last 30 minutes+$312022–2024 −$1,019 · 154 trades−$1112022–2024 −$1,105 · 154 trades−$2272022–2024 −$1,160 · 154 trades−$1502022–2024 −$1,118 · 154 trades−$692022–2024 −$1,210 · 154 trades
With the last 30 minutes, any day−$5362022–2024 −$1,230 · 306 trades−$6492022–2024 −$1,322 · 306 trades−$9182022–2024 −$1,408 · 306 trades−$8502022–2024 −$1,048 · 306 trades−$9362022–2024 −$939 · 306 trades

QQQ · from 15:00, at most 10¢ · next strike

SideHold to 17:25Sell at 5× before 16:153× with the share lock5× with the share lock10× with the share lock
Both sides−$2,2472022–2024 −$5,197 · 756 trades−$2,2022022–2024 −$5,801 · 756 trades−$2,2902022–2024 −$5,096 · 756 trades−$2,0102022–2024 −$5,259 · 756 trades−$1,5812022–2024 −$5,846 · 756 trades
Trend day: with the day’s move only−$3342022–2024 −$1,024 · 182 trades−$2962022–2024 −$1,110 · 182 trades−$4152022–2024 −$1,091 · 182 trades−$1382022–2024 −$1,114 · 182 trades+$122022–2024 −$1,068 · 182 trades
Trend day: with the move; other days both−$1,8672022–2024 −$4,162 · 570 trades−$1,5712022–2024 −$4,078 · 570 trades−$1,7422022–2024 −$3,282 · 570 trades−$1,4902022–2024 −$3,546 · 570 trades−$1,0672022–2024 −$4,474 · 570 trades
Choppy day: against the last 30 minutes−$1,1422022–2024 −$1,716 · 202 trades−$8032022–2024 −$1,495 · 202 trades−$9652022–2024 −$686 · 202 trades−$9252022–2024 −$957 · 202 trades−$7452022–2024 −$1,747 · 202 trades
With the last 30 minutes, any day−$7312022–2024 −$1,942 · 360 trades−$6072022–2024 −$2,624 · 360 trades−$5682022–2024 −$2,582 · 360 trades−$3792022–2024 −$2,623 · 360 trades−$2482022–2024 −$2,511 · 360 trades

Totals for one contract, 2025–2026, with 2022–2024 below. research/cheap_option_trigger_2026-09-25/cheap_trigger.py

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: 21). 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.