Where prices come from
Real quotes (SPY, AAPL, NVDA, TSLA): actual end-of-day option chains from a public Kaggle dataset (CC0), taken at the 4pm close. You sell at the real bid and buy back at the real ask, using the real IV and delta of each strike. Coverage: AAPL Jan 2016 to Mar 2023, TSLA 2019 to 2022, SPY and NVDA 2020 to 2022. A few trading days are missing from the dataset; those reuse the previous day's chain.
Modelled prices (any other ticker, or any day outside those windows, or if you choose "Modelled only"): calculated, because historical option quotes are not free.
- Stock price: real daily closes. Real quotes use unadjusted prices like the original chains; charts and the model use split-adjusted prices. An expiry that would cross a stock split is not offered.
- Option price: Black-Scholes, 4% rate, no dividends, no early assignment.
- Implied vol: trailing realized vol (30 & 90 day blend, earnings jumps excluded) × the IV premium setting, plus a put skew. Before an earnings report extra variance is added equal to that ticker's recent earnings moves; it disappears afterwards (IV crush). Earnings dates only exist from 2022.
- Model fills: bid/ask spread of 4% of price, min $0.05.
- Always: $1 commission per contract to open, closing is free. Reg-T style naked margin: larger of 20% of stock minus the OTM amount or 10%, plus premium; a strangle needs the bigger side plus the other premium. Cash settlement at the expiry-day close. Trades and exits happen at the daily close only.
Use "Compare real vs modelled" in the backtest tab: the model is kinder than reality, mostly because real implied vol jumps the moment markets panic while a trailing-vol model reacts slowly. That is exactly the risk a naked strangle is exposed to.