Backtesting tips for more reliable research
Make your data, execution assumptions, and costs part of the experiment.
Make the experiment reproducible
Save the original dataset, the exact strategy parameters, and the cost assumptions. AlgoIndex records dataset and strategy checksums with each result. A checksum identifies the file; it does not establish that the underlying data is complete or accurate.
Respect the decision clock
A signal generated from a closed bar cannot fill at that bar’s earlier open. The SMA research engine evaluates prior closed bars and uses the next bar open with adverse slippage. This avoids one common timing error but does not model exchange execution.
Read more than the return
Inspect the equity curve, maximum drawdown, number of fills, costs, and remaining open quantity. Final equity includes open positions marked at the final close. It is not necessarily cash that could have been realized at that price.
Challenge the fill model
This engine assumes whole-share fills and applies configurable cost and slippage basis points. It omits partial fills, liquidity limits, corporate actions, exchange calendars, and actual tax schedules. Repeat the research with more adverse assumptions and review a separate out-of-sample period.
Put the process into practice.
Explore historical research and manual paper simulation in your private workspace.
Open Workspace →