Free Options Backtesting: Tools, Data Costs and Fill Assumptions
A free options backtester is useful only if its data and simulation support the rule you want to evaluate. A payoff diagram at expiration, a historical option-chain snapshot and a portfolio backtest answer different questions. None establishes future performance by itself.
For options, the test must identify the actual contracts available at each decision time: underlying, put or call, strike, expiration, multiplier and any adjusted deliverable. A stock-price chart alone cannot supply that history.
What free access includes
As checked on October 20, 2026, QuantConnect's pricing page lists options data and backtesting in its free plan. Its comparison separates minute/hour/daily access from tick/second data and distinguishes paid features. Its equity-options documentation is a starting point for contract selection and modelling. Verify the specific dataset, dates and account permissions needed for a proposed test.
Option Alpha's pricing describes a paid subscription, a trial and broker-linked promotional access with qualifying-account conditions. A qualifying broker promotion is not an unconditional free tier for everyone. Read the current funding, balance and integration requirements before relying on it.
Open-source Python frameworks can reduce software-license costs, but they do not automatically include historical option chains or correct assignment and margin models. A manual spreadsheet can inspect a small set of historical trades if suitable quotes are available; it still needs a precise selection rule and an audit trail.
| Research task | Required evidence |
|---|---|
| Draw an expiration payoff | Contract terms, entry debit or credit, multiplier and fees |
| Reconstruct one historical trade | Quotes for each exact contract at entry and exit, plus event handling |
| Test repeated contract selection | The eligible chain and selection inputs available on every decision date |
| Evaluate an intraday exit or 0DTE rule | Sufficient intraday quotes and an execution model for the trigger timing |
| Measure account performance | All positions, cash, margin, costs and mark-to-market equity through time |
No comparison test is documented here between free and paid data, and no AAPL result within 2% or SPY win rate is claimed. Accuracy depends on the dataset and model, not the price label alone.
Define contracts before choosing a tool
A proposed specification might select a put spread at a fixed observation time, within a stated expiration window, using a defined delta range and strike width. Those are example research inputs, not recommended settings.
Resolve ambiguities before running it: what happens when no contract qualifies, multiple contracts tie, quotes are stale, the spread is too wide or a market session is shortened? If delta selects the contract, use a value available at that decision time and document its source. Do not reconstruct the selection using a later day's chain or implied volatility.
Use the same contract identifiers throughout a trade. When a contract expires or is adjusted, silently substituting today's nearest contract would create a different position.
Treat fill assumptions as part of the strategy
The midpoint is a reference price, not a guaranteed fill. A conservative comparison can model buying at the ask and selling at the bid, alongside a clearly stated alternative fill assumption. Neither model reproduces every live execution.
For a multi-leg position, record synchronized quotes for all legs. Four leg midpoints observed at different times are not necessarily an executable package price. Include order size, quote availability and commissions; do not subtract the same spread cost twice if bid/ask fills already include it.
An expiration payoff is simpler than the path taken to get there. For a hypothetical five-point credit spread opened for a one-point credit with a 100 multiplier, the standard expiration diagram gives $100 maximum gain and $400 maximum loss before fees, assuming the intended contract payoffs apply. This arithmetic does not describe interim margin, early assignment, execution costs or losses from managing the resulting position incorrectly.
Exercise, assignment and settlement
OIC's exercise guidance distinguishes American-style exercise before expiration from European-style exercise at expiration. A short American-style position may be assigned before the test's planned exit. Contract-specific settlement also matters: receiving or delivering shares differs from cash settlement.
Define what the simulation does after assignment, including cash or stock positions and any remaining option leg. Do not assume a protective long leg is automatically exercised just because a short leg was assigned. Record expiration cutoffs, dividends and corporate actions relevant to the selected contracts. Consult the exact product specifications rather than treating every index or ETF option alike.
Read the performance metrics correctly
| Metric | Interpretation |
|---|---|
| Win rate | Profitable trades divided by the defined trade count; not enough to describe tail losses |
| Profit factor | Gross profit divided by the absolute gross loss under consistent cost treatment |
| Expectancy | Average net profit or loss per trade in stated units |
| Maximum drawdown | Largest observed peak-to-trough equity decline; not the longest losing streak or a future loss ceiling |
| Return | Depends on the capital denominator, cash flows and sizing convention |
| Sharpe ratio | Depends on return frequency, risk-free-rate convention and return distribution |
A profit factor above one means recorded gross profits exceed recorded gross losses under that definition. There is no universal 1.75 threshold, and a positive sample expectancy alone does not demonstrate a persistent edge. When there are no losses, the profit-factor denominator is zero; report that explicitly rather than inventing a finite ratio.
Keep mark-to-market drawdown separate from a curve that updates only after positions close. The latter can hide large interim losses. Fixed one-contract sizing is a legitimate stated experiment; it becomes misleading when its results are presented as if they used a different capital or sizing rule.
Run one auditable test
- Save the rule, eligible universe, selection time, contract criteria, exits and sizing convention.
- Check coverage and timestamps before evaluating results. Preserve examples of unavailable or rejected trades.
- Run the baseline with documented quotes, costs, settlement and assignment behavior.
- Inspect individual trades and reconcile cash plus positions against reported equity.
- Compare plausible fill and cost assumptions. Keep a later sample untouched during parameter selection and disclose how many variants were tried.
- Use subsequent paper observations to examine current contract selection and order handling. Simulated paper fills also have limitations.
Neither three years of data nor fifty trades guarantees statistical confidence. Correlated positions, overlapping expirations and rare losses can make the effective information much smaller than the trade count suggests.
Pineify can help build Pine rules for an underlying chart and analyze supported exported results. That does not turn a stock strategy into an options-chain portfolio backtest. Evaluating covered calls or iron condors requires contract-level premiums, selection and lifecycle modelling beyond the underlying signal.


