DocsBacktests
BacktestsGuide

Backtests

A backtest is where a strategy meets real quotes. You define a multi-leg options position, step it minute-by-minute over one symbol's intraday history, and read the equity curve, margin curve, and per-trade ledger it produces. This section takes that run apart one piece at a time.

Updated Jul 20262 min read

Where a backtest sits in the pipeline

A backtest is the terminal stage of the research pipeline: Signal and EDA, then Model, then Backtest. The stages before it are optional. You can validate a signal or train a model on it first, but you do not have to. Every workflow ends in a backtest, because that is the only stage where a strategy is priced against historical quotes.

One run covers one symbol. For the symbol universe and how far each symbol's history reaches, see data coverage; that page is the single source for coverage, so no other page repeats it.

The engine and the interface

The backtest engine is the source of truth: the three fill modes, the five sizing modes, REG-T margin with auto-decomposition, the deficit and halt layer, the results frames, and streaming, resume, and extend. The three fill modes are the Backtest.ai fill model (calibrated, and the one that matches paper and live trading), mid (the optimistic bound), and bid_ask (the pessimistic bound). A run fixes one of them.

The visual Backtest tab carries the position designer, the condition builders for entry, exit, and adjustment logic, the capital form, and the results charts. The Signal language is the path underneath it: legs, entry and exit signals, adjustment triggers, and contract selection all have a code form.

Every run carries a benchmark it is read against, the S&P 500 total return by default.

The articles in this section

Was this page helpful?