Every backtest stores:
- The exact strategy JSON used (strategy snapshot).
- The date range, starting capital, and any fee / slippage overrides.
- The candle source (Binance for crypto, Databento for CME).
Re-running a backtest from the detail page uses the snapshot, not the current strategy JSON. This means edits to the live strategy do not change historical backtest results.
When the snapshot helps
- Debugging a live regression - compare the snapshot from a good backtest against the current JSON to find what changed.
- Reviewing old runs - even if the strategy was edited a year ago, the original backtest still shows the right config.
- Bug reports - attach the snapshot when reporting "this backtest looked wrong."
What the snapshot doesn't capture
- Candle data updates. If we backfill or correct historical candles, a re-run will produce different fills.
- Engine version. A bugfix in the engine between two runs can change results. The snapshot doesn't tag the engine version yet.
For both of the above, the original recorded trades and metrics remain unchanged - only re-runs are affected.
