Prices and implied volatility are simulated, and every fill is a Black-Scholes mid price with a skew model. Results show how a rule set behaves, not what it would have earned. Upload a daily price CSV to test on real underlying prices.
How to read these results
Fills happen at the Black-Scholes mid-price — real markets charge you the spread.
No early assignment; American-style exercise is approximated.
One volatility snapshot per day — intraday swings aren’t modeled (unless Intraday exit checks is on).
About two years of history is roughly one market regime. Simulated past results predict nothing.
Equity and drawdown i
Payoff of selected trade i
Trade P&L distribution i
Monthly returns i
Change in account value, per month
How trades ended i
Statistics i
Trade log i
A beginner's guide to options backtesting
Backtesting replays a fixed set of trading rules over past prices and shows what would have happened — mechanically, with no hindsight. It teaches how a strategy behaves: when it wins, how it loses, how deep the drawdowns get.
What a backtest is — and what it isn't
Default data here is simulated: the underlying follows a stochastic path, volatility comes from a skew model, and every fill is a Black-Scholes mid price. Results show how a rule set behaves under plausible conditions — not what you would have earned. Real markets charge the bid/ask spread, assign early, and spike intraday. (Upload a daily-price CSV to test the same rules on real prices.) Treat every output as a question — “why did it lose there?” — not a promise.
How to read each output
Equity and drawdown — your account vs. simply holding the underlying. Can't beat buy-and-hold? The complexity is buying nothing.
Payoff of selected trade — one trade's expiration P/L across prices. Click any trade-log row to load it here.
P&L distribution — the shape of per-trade results — short premium means many small wins and a few big losses.
Monthly returns — account change by month — two lucky months make a fragile total.
How trades ended — why each trade closed.
Trade log — every simulated trade, sortable; start with the biggest losing row.
What the key stats mean
Win rate — the share of winning trades — misleading alone for short premium.
Profit factor — gross profit divided by gross loss. Healthy above ~1.5; below 1.0 the strategy loses regardless of win rate.
Max drawdown — the largest peak-to-trough account fall — the number that ends strategies.
Avg days held — mean trade duration. Shorter expirations decay faster but forgive less.
Sharpe / Sortino — return per unit of total or downside-only volatility.
Avoiding overfitting
Tuning DTE, delta, and targets until the curve looks perfect here is curve-fitting: you tuned to the noise, not the signal. Keep parameters few and round (45 DTE, 50% target), re-run across tickers and regimes including the crash simulation, and distrust any edge that vanishes with a different random seed.
Limitations
Fills at the mid price; real fills pay the spread (the slippage setting models this).
No early assignment; American exercise is approximated.
One volatility snapshot per day; intraday swings aren't modeled.
Two years of history is roughly one market regime; simulated paths predict nothing.
Frequently asked questions
What is options backtesting?
A fully specified strategy — entries, exits, sizing, every leg — run mechanically on past or simulated data.
Are the results real or simulated?
Stored history uses real closes; simulated mode invents the path. Either way, prices are modeled and fills happen at mid.
What is overfitting?
Tuning parameters until the curve looks perfect on one dataset — fitting noise, not signal.
Can I trade real money on these results?
No — this page is educational. Real fills pay the spread, face early assignment, and regimes change.
Support the site
Lessons, the Builder, and the Backtest stay free. If they help, you can buy a coffee — no paywall, no account required.