Backtesting: validate rules without fitting the past

A useful backtest checks reproducible rules, costs and data not used for tuning. An attractive historical result is not enough to trade.

Fix the rules

Specify symbol, session, entry, invalidation, exit and size before testing. Retain every version and reason for changing it. Choosing parameters after observing profit uses that information to tune the strategy.

Respect chronology

Separate fitting and validation data chronologically. A pending trade only has the time remaining after confirmation. A candle-close entry differs from touching a level. If a bar reaches stop and target without a known sequence, record the ambiguity.

From test to monitoring

Include applicable spread, commissions, financing and execution assumptions. Check tail losses, multiple periods and parameter stability. Then observe new data without reoptimizing after every loss. Simulation does not necessarily reproduce liquidity, rejections or real slippage.

Illustrative example

Testing ten stops and publishing only the best conceals nine trials. Retain all variants, the selection rule and later data that were not used for selection. Also evaluate unfilled and expired trades.

Review checklist

  • Record rules and changes.
  • Validate on later data.
  • Include costs and entry timing.
  • Retain ambiguous outcomes and tested variants.