Topic · Research Practice & Backtesting
← All topicsBacktest Methodology
35 articles · 5 checkpoints · 22 deeper reads · 8 reference notes
Every article, in reading order
plant a flag as you finish eachRead these first
Every row of market data carries a time, but it is usually the time the event happened, not the time you could have known about it. Indexing a backtest by the wrong one is the single most productive way to invent an edge that does not exist.
A backtest built as a loop over timestamped events, where the strategy only ever sees what had already arrived. It is slower to write than a vectorised backtest and far harder to cheat with, which is the entire point.
A normal backtest trades an unlimited amount at the printed price, so its Sharpe is the Sharpe at zero dollars of capital. Capacity-constrained backtesting re-runs the strategy at real book sizes and reports the curve instead of the number.
An options backtest built on end-of-day mid prices can show a beautiful Sharpe ratio for a strategy that would have lost money on every single real fill. Options need their own backtesting discipline because the quoted price is rarely the tradeable one.
The rule your simulator uses to decide whether an order filled, and at what price, usually matters more than the signal. Four defensible fill rules on the same strategy can produce four completely different businesses.
Then the rest