Covered calls and cash-secured puts: SPY and QQQ backtest research pack | FlashAlpha
research · 7 min read

Covered calls and cash-secured puts: SPY and QQQ backtest research pack

Four 2025 income simulations with zero cash interest, bid/ask costs, daily drawdowns and buy-and-hold comparisons. Inspect the assumptions and why QQQ results spanning 2024 are withheld.

F
Oct 16, 2026
7 min read
Research HistoricalData OptionsIncome SPY QQQ

Premium income is only one part of an option position. A covered call also owns stock downside; a short put retains an obligation to buy shares. We built a historical income research pack that follows the entire marked portfolio, including option liabilities, share-price changes, costs and dividend entitlement.

The four 2025 baseline simulations completed under a zero cash interest assumption. SPY covered calls returned 10.18% and cash-secured puts 4.34%; QQQ returned 10.26% and 5.14% respectively. Each portfolio began with USD 100,000 and traded one contract, with 100 shares for covered calls. These are retrospective modeled portfolio returns, not annualized premium yields or actual fills.

Compare returns and daily drawdowns

2025 modeled results: zero cash interest; USD 100,000 initial capital per independent portfolio
SymbolPortfolioReturnDaily max drawdownClosed option trades
SPYCovered Call10.18%-7.72%12
SPYCash Secured Put4.34%-4.43%12
SPYBuy and hold 100 shares + idle cash10.56%-11.17%Not applicable
QQQCovered Call10.26%-7.66%12
QQQCash Secured Put5.14%-3.69%12
QQQBuy and hold 100 shares + idle cash10.78%-11.93%Not applicable
2025 SPY and QQQ covered-call, cash-secured-put and fixed 100-share buy-and-hold portfolio returns and daily marked drawdowns
Liquidation equity and drawdown from daily near-close marks. USD 100,000 initial capital per portfolio; option bid/ask, fees and slippage included. Cash interest is zero.

With zero interest on idle and collateral cash, both covered-call portfolios finished below their fixed 100-share buy-and-hold comparisons. Cash-secured puts had lower modeled returns and smaller daily drawdowns under the same assumption, with a different exposure profile. The strategies spend parts of each month flat in cash, and their cash balances differ from the benchmarks. Cash yield can change relative rankings and materially change cash-secured-put returns. This pack contains no cash-interest scenario, so these results do not establish a general winner or loser. The comparison also does not isolate an endpoint signal's incremental value or imply that lower drawdown is free.

Rules you can inspect

  • Enter five minutes before the scheduled close on the first exchange session of each month.
  • Choose expiry nearest 30 calendar days within 28–35 days; target absolute delta 0.25 and at least 250 archived open interest.
  • Require an out-of-the-money, positive two-sided quote, relative spread no greater than 20%, and a quote no more than five minutes old.
  • Close five exchange sessions before expiry. Use one contract, no overlapping position and no borrowing.
  • Sell options at bid, buy back at ask; shares buy at ask and sell at bid. Charge USD 1 per option side plus USD 0.01/share adverse slippage.

Dividend entitlement requires owning shares before the ex-date. Dividends accrue as unreinvested receivables and cannot fund collateral. Idle and collateral cash earn no interest; taxes and intraday drawdown are excluded. These monthly maturity rules differ from the income endpoint's default full-chain target-delta selection.

Why QQQ results spanning 2024 are withheld

The selected January 2024 adjusted-strike QQQ contracts lack required near-close marks, including January 4. Separate bounded raw-table lookups found no matching quotes for two selected contracts. The simulator stops at the first missing held mark and withholds the run's performance. It does not forward fill a liability or combine disconnected fragments into a return. The standalone 2025 QQQ portfolios have complete modeled paths.

Fractional strikes alone are not corruption. The OCC's QQQ special-distribution memo describes the December 2023 strike adjustment and 100-share deliverable. This memo explains the observed strike precision; it does not certify all archived contracts or repair their quote gaps.

The selector chose these adjusted series over other available strikes. An empty archived option root and a multiplier of 100 do not identify an unadjusted contract: a strike-adjusted series can still deliver 100 shares. Neither the pilot nor income replay can certify standard-series status from those fields alone. The first pack retains its original selection and withholds affected results; changing selection rules would require a new version.

Costs, assignment and sensitivity

The full pack includes 0.20/0.30 delta targets, no extra slippage, double slippage and double fees. No parameter winner was selected. A separate mechanical assignment scenario models certain in-the-money calls before ex-dividend dates and low-extrinsic puts, with assigned put shares liquidated next session. Baseline assumes no early assignment. The scenario is not observed exercise or a worst-case bound; OIC assignment guidance explains assignment while a position remains open. A planned pre-expiry exit does not prevent assignment earlier in the holding period.

The capture contains 48 monthly entry snapshots, 1,004 stock-session rows and 4,913 selected-contract marks for 2024–2025. Across 84 overlapping scenario/window runs, 56 complete and 28 QQQ runs are withheld. Repeated scenarios and windows are dependent observations, not additional independent trades.

Download the evidence

The independent CSV audit passes 36,572 cash-flow and metric checks; ten regenerated accounting/result files match byte for byte. Those checks do not independently validate Greeks, original source availability, executable quotes or predictive value. The 2025 chronological holdout is retrospective, with only 12 baseline cycles per strategy and symbol. Original OI revision and dividend publication times are not fully verified.

Use the pack to inspect assumptions, reconcile portfolio returns and identify data gaps before designing your own experiment. Pair it with historical income diagnostics and expiry-context replay. Neither a high quoted yield nor this small retrospective study establishes a repeatable trading edge.

Live Market Pulse

Get fast visibility into market shifts with full-chain analytics over low-latency REST and MCP polling.

Intelligent Screening

Screen millions of option pairs per second using your custom EV rules, filters, and setups.

Export-Ready

Export structured signals to your own execution stack or broker integration - FlashAlpha delivers the analytics, you keep control of order routing.

Join the Community

Discord

Engage in real time conversations with us!

Twitter / X

Follow us for real-time updates and insights!

GitHub

Explore our open-source SDK, examples, and analytics resources!