Wheel Strategy Monte Carlo Simulator
Runs 2,000 bootstrapped simulations of the wheel strategy on your chosen ticker — using actual historical returns to build synthetic price paths. Shows the full distribution of possible outcomes: terminal wealth, median CAGR, drawdown probability, and risk of ruin. Point-estimate yield calculations tell you the average path; Monte Carlo tells you the tails.
Simulation takes 3-8 seconds. Uses bootstrap sampling from 500 days of historical returns. All option prices are BSM-derived at cycle open.
Why Monte Carlo instead of a single yield calculation?
Yield calculators show you a single number: "You'll collect ~15% annualized." That's a point estimate assuming everything goes perfectly — no assignments, no gaps, no vol spikes. Monte Carlo shows you the full distribution of what could happen if you ran this same strategy 2,000 times against different random paths built from historical returns.
The tails matter. A strategy with median CAGR +12% might have:
- 5th percentile CAGR: −8% (bad case: assigned at high price, held through drawdown)
- 95th percentile CAGR: +28% (good case: never assigned, kept collecting premium)
- Max drawdown 95th percentile: 22% (nearly 1-in-5 sims see this or worse)
- Probability of profit: 74% (26% of sims end below starting capital)
- Probability of ruin (>50% drawdown): 2%
That's a very different story than "+12% annualized." Point estimates hide the risk; Monte Carlo reveals it.
How the simulation works
For each of 2,000 iterations:
- Start with your specified capital.
- At the current spot, find the strike matching your CSP target delta. Sell the CSP for BSM-priced premium; add premium to cash.
- Simulate the underlying's price path for the cycle DTE by bootstrap-sampling from the last 500 days of daily log returns.
- At expiration: if spot < strike, you're assigned (reduce cash by strike × 100, add 100 shares at cost basis = strike). Otherwise keep the premium and restart.
- If assigned, immediately sell a covered call at the CC target delta strike above cost basis. Simulate another cycle.
- At CC expiration: if spot > strike, called away (add strike × 100 to cash, subtract 100 shares). Otherwise keep the premium.
- Repeat until horizon reached. Record terminal wealth, max drawdown, assignment count.
After 2,000 iterations, aggregate: percentile distribution of terminal wealth, CAGR percentiles, drawdown percentiles, probability of profit, probability of assignment, probability of ruin.
Simplifications
- Single ticker position (100 shares max) — not a portfolio simulation.
- Fixed cycle DTE. Real traders roll at various DTE.
- No transaction costs (accurate for zero-commission brokers).
- BSM assumes lognormal returns; historical returns have fatter tails, so bootstrap makes the simulation more realistic than pure BSM.
- Ignores dividends and ex-div early assignment risk.
How to interpret the results
KPI grid
- Median CAGR (p50): the annualized return of the middle-of-the-pack path. A better summary than "average" because tail sims can distort the mean.
- 5th percentile CAGR: a "bad case" outcome — 5% of sims produce worse CAGR than this. If it's positive, the strategy is robust.
- 95th percentile CAGR: the "good case" — only 5% of sims do better than this.
- Max drawdown p95: "worst 5% of drawdowns"; 1-in-20 sims see this drawdown or larger.
- Probability profitable: % of sims ending above starting capital.
- Probability of ruin: % of sims ending with >50% capital loss.
Terminal wealth distribution
The histogram shows how the 2,000 simulated terminal wealths cluster. A right-skewed distribution (long tail to the right) is common for wheel strategies — consistent premium income with occasional huge outperformance from held-shares appreciation. A left-skewed or bimodal distribution is a warning sign that the strategy has significant blowup risk.
Sample paths
20 sample paths show how individual simulations evolved. Notice: paths that stay near starting capital represent "keep collecting premium, never assigned." Paths that dip then recover represent "assigned at high, held through drawdown, called away at low." Paths that go monotonically higher represent "assigned early, then rode shares up."
Choosing parameters
Ticker
SPY / QQQ are the classic wheel candidates: high liquidity, moderate vol, dividend-paying. Higher-vol names (NVDA, TSLA, MSTR) produce more premium but also wider tail outcomes — higher median CAGR AND higher drawdown percentiles.
CSP delta
0.20-0.25 = conservative (less premium, less assignment). 0.30-0.35 = balanced. 0.40+ = aggressive (more premium, more assignment).
CC delta
Similar interpretation for the call side. 0.30 is the standard "keep upside, collect premium" target.
Cycle DTE
30-DTE cycles are the standard. 7-DTE cycles collect more absolute annualized premium but require more active management and rack up more assignment events. 60-DTE cycles are lower maintenance but leave money on the table.
Horizon
1-year horizons are the standard for annualized comparisons. 5-year horizons compound the results and reveal long-run drift — useful for retirees allocating capital over decades.
Frequently asked questions
Why bootstrap instead of Geometric Brownian Motion?
GBM assumes returns are lognormally distributed with constant mean and vol. Real markets have fat tails (rare huge moves happen more often than GBM predicts) and vol clustering (calm periods and stormy periods). Bootstrap sampling from actual historical returns captures both properties naturally by simply reusing observed history.
Isn't 500 days of history too short?
For most parameters, yes it's a compromise. 500 days is roughly 2 years of trading, so recent regimes dominate the bootstrap. Longer history (5-10 years) would include multiple regimes but might weight distant history too heavily. For MVP we use 500 days; a future upgrade will let users choose lookback.
Does this model dividend income?
Not yet. When held through a dividend, you're paid the dividend but the underlying drops by that amount ex-div — net zero to your total wealth in this model. Adding explicit dividend income is a future enhancement.
Why is my median CAGR higher than my yield calculator shows?
Because Monte Carlo includes the periods where you're holding shares and they appreciate (rather than just the premium-collection phases). Assignment and call-away also generate small realized gains/losses that add to yield.
What is "risk of ruin"?
The probability of losing 50% or more of starting capital during the simulation. On liquid tickers with prudent parameters, risk of ruin is typically 1-3%. On high-beta names or aggressive delta targets, it can reach 10-15%.
Should I actually trade based on this?
This is educational. Real-world results depend on execution quality, actual assignment behavior, dividends, taxes, and your ability to stick to the strategy through drawdowns. The simulation shows the range of outcomes if you follow the mechanical rules perfectly — use it to calibrate expectations, not as a trade signal.
Related tools
- Covered Call Calculator — single-position CC analysis with yield metrics.
- Cash-Secured Put Calculator — single-position CSP analysis.
- Wheel Tracker — log actual trades and compute realized ROC.
- Income Goal Planner — capital + target income allocation planner.
- Portfolio CC Optimizer — scan CCs across your entire portfolio.
- Monte Carlo Simulation glossary — canonical definition with formula.
Data source: Polygon.io daily aggregates. Educational only, not investment advice. See the full disclaimer.