1. Write the rules down before you look at a chart
A backtest tests a written rule set, not a vibe. Before your first replay, write down:
- Market and session — for example ES, regular trading hours only.
- Setup — what has to be true before you consider a trade.
- Entry — the exact trigger and order type (limit at a level, stop above a high, market on a close).
- Stop and target — where each goes, in ticks, points or structure.
- Size — a fixed number of contracts or a fixed dollar risk per trade.
- Management — breakeven, partials, time stops.
- No-trade conditions — news, a minimum range, a maximum number of trades a day.
If you catch yourself making a judgment call during the test, stop and add a rule for it. Changing rules halfway through means you’re testing two strategies with half the sample each.
2. Choose the data and the timeframe
Intraday futures strategies need one-minute data at minimum — on a 5- or 15-minute bar you can’t tell whether your stop or your target was hit first. Also check the price basis. Most continuous series are back-adjusted, which shifts historical levels; that matters when your rules reference round numbers or exact prior levels. On Charts Replay, ES is kept at true traded prices from 2016 and NQ is back-adjusted from 2021, and each is labeled.
Pick a period that covers different conditions — a trending year, a choppy year, a volatility spike — rather than the stretch that happens to flatter your setup.
3. Hide the future
The biggest flaw in manual backtesting is hindsight. Scrolling a static chart, your eye goes straight to the setups that worked. Use a replay tool that reveals one bar at a time and decide before the next bar prints. Don’t peek ahead, and don’t skip days that “look boring” — boring days are part of the sample.
4. Use resting orders, not hindsight fills
Saying “I would have bought the low” is not a fill. Place the order the way you would live and let price come to it. A realistic replay engine should:
- Every one-minute bar is matched before it is drawn, whatever timeframe is on screen — an order placed on a 4-hour chart fills in the minute price actually reached it.
- Limits fill when price reaches them; stops fill when price crosses them.
- Gaps are priced against the bar’s open: a buy limit gapped through fills at the better open, a stop gapped through fills at the worse open plus slippage.
- When several orders trigger in the same bar, stops match before limits.
Include commissions. At $2.50 per contract per side, a one-lot round trip costs $5 — 0.1 point on ES, 0.25 point on NQ — and for scalping strategies that alone can turn a winner into a loser.
5. Log every trade
For each trade record the date and time, direction, entry, stop, target, exit, exit reason (target, stop or manual), size, P&L in dollars and in R, the maximum favorable and adverse excursion (MFE/MAE), and a screenshot or note on the setup. Log the trades you skipped or cancelled as well — they show where your rules are vague.
6. Get a big enough sample
Ten trades tell you almost nothing; a few lucky winners can carry a small sample. A common rule of thumb is at least 100 trades across varied conditions before you trust a win rate, and more if the strategy trades rarely or has a low win rate with large winners.
7. Read the results
- Win rate — winners ÷ total trades. Meaningless on its own.
- Payoff ratio — average win ÷ average loss.
- Expectancy — (win rate × average win) − (loss rate × average loss). This is what you make per trade on average; it must be positive after costs.
- Profit factor — gross profit ÷ gross loss. Above 1 is profitable; how far above tells you how much room there is for real-world slippage.
- Maximum drawdown — the deepest peak-to-trough fall in equity. Ask whether you could sit through it live.
- Results in R — expressing P&L in units of initial risk lets you compare trades, days and markets fairly.
8. Common mistakes
- Look-ahead: deciding with information the bar hadn’t revealed yet.
- Cherry-picking days or periods.
- Ignoring commission and slippage.
- Changing the rules mid-test.
- Optimizing the stop and target on the same data you then quote results from.
Doing this in Charts Replay
- Create a session: pick ES or NQ, a starting minute, your account size and commission.
- Choose continuous replay, or a fixed daily window if your strategy only trades certain hours.
- Replay at 2× to 60× or step one bar at a time; switch freely between 1m and 1D.
- Place limit, stop and market orders on the chart exactly as you would live. Every new position carries a stop and a target, so its risk is defined before the trade.
- Open the session report for win rate, profit factor, payoff ratio, drawdown, the equity curve, the trade calendar and MAE/MFE — every number traces back to a specific trade.