Backtesting notes: reading a report without trust

How to read a backtest without trusting it too much: the knobs that move results, the biases that flatter them, and a discipline for reading reports.

What a backtest is

A backtest replays a strategy against historical candles and reports what would have happened. It is a simulator with a known input and a deterministic strategy, which makes it excellent for answering "what did this rule do to that data" and poor for answering "what will this rule do next month". The distinction is the entire discipline.

The knobs that move results

KnobWhat it changesDirection of temptation
Fee assumptionCost per round tripZero fees, infinite confidence
Slippage modelFill price realismOmitted entirely
Pair listWhat is tradedCurated after the fact
PeriodWhich historyOnly the kind year
TimeframeGranularityWhatever looked steepest

Every one of these knobs is legitimate and every one has a direction in which results improve. A backtest report that does not state each knob's setting is a report that cannot be audited, whatever its total profit.

The biases that flatter results

A discipline for reading reports

  1. Read the trade count and the period before the profit line. Three hundred trades over two years outranks thirty trades over a fortnight.
  2. Read the maximum drawdown next to the profit. Profit is what the strategy makes in a good moment; drawdown is what it asks you to endure on the way.
  3. Re-run the same strategy on a period it was not tuned on. The drop from in-sample to out-of-sample is the honest number.
  4. Turn fees up and see if the strategy survives. If profit vanishes at realistic fees, it was never there.

Red flags in a report

FreqDesk
An independent reference desk for open trading bots.
desk@freqdesk.pro
About this desk
Privacy notice
Terms of use

FreqDesk is an educational publication about open-source trading software. No software is hosted or distributed on this domain, and no trading advice is given.