How to Manually Backtest a Strategy, Step by Step

Last updated: 2026-06-11

In short

The workflow: (1) write if-then rules, (2) pick one instrument + a regime-diverse date range, (3) replay with the future hidden, (4) take every valid setup and log it, (5) reach 100+ trades, (6) compute net-of-costs expectancy, drawdown and streaks. Discipline checkpoints at each step below — skipping them is how backtests become fiction.

Step 0: Rules on Paper First

Before any chart: entry conditions, exit conditions, stop placement, position sizing, management — each written as a testable if-then statement. Checkpoint: could a stranger take the same trades from your document? If not, tighten it. Ideas that occur to you mid-test go on a parking list for the next test — rule drift mid-run contaminates everything.

Step 1: Choose Instrument and Window

One instrument per test (EUR/USD is the standard lab rat: liquid, tight spreads, well-documented behavior). The window must contain trending, ranging and volatile regimes — 6–12 months for intraday strategies, years for swing — and your data must pass two checks: granularity matches your stop size (ticks if stops live inside single bars) and you know the server clock before writing any time-based rule.

Step 2: Set Up the Session

Replay tool open, chart on your trading timeframe (plus your context timeframe if the rules use one), journal ready with columns: date/time (server), setup tag, direction, entry, stop, target, exit, result in R, session, nights held, notes. Start the replay at your window’s beginning with everything to the right hidden.

Step 3: Trade the Replay — the Discipline Core

  • Fast-forward the dead time; slow to real-ish speed when conditions approach. (This is where replay speed range matters — at high multipliers, a month of quiet costs minutes.)
  • Every valid setup gets taken. Not the photogenic subset — cherry-picking is the classic silent corrupter.
  • Place the full order: entry, stop, target, at sizes from your sizing rule. If the tool simulates fills against real bid/ask data, trust them; if it’s candle-stepping, apply pessimistic same-bar rules.
  • Manage by the rules, not by feelings about this particular replay trade.
  • Log immediately after each close, including the note field — “entered late,” “hesitated” — because execution patterns are findings too.

Step 4: Reach a Real Sample

100 trades minimum, 200 preferred. Resist analyzing at 30 — early numbers are variance wearing a costume. If sessions span days, note where you stopped (tools with saved sessions resume where you left off).

Step 5: Analyze — Net, Not Gross

  1. Run the full cost audit: spread (if not in the data), commission, swap on overnight holds, slippage buffer.
  2. Compute expectancy, profit factor, max drawdown, longest streak.
  3. Segment by session and regime — edges often live in subsets.
  4. Read the equity curve for fragility (outlier-carried results).
  5. Stress: doubled costs, pessimistic fills. Survives → proceed to forward testing. Dies → the finding is real and free.

The Checkpoints, Compressed

Rules written before the chart · future hidden · every setup taken · no rule changes mid-test · 100+ trades · costs charged · segments checked · stress passed.

Each checkpoint exists because skipping it produces a specific, known failure — covered one by one in the mistakes guide.

Frequently Asked Questions

How long does the full workflow take?

With a fast replay tool: rule-writing an evening, 100 intraday trades across roughly 3-6 replay sessions, analysis another evening. Call it one to two weeks part-time per strategy — against months for the same sample on a demo account, and far less than the cost of discovering the strategy live.

Should I backtest multiple timeframes at once?

Use multiple timeframes only if your rules genuinely require a context timeframe — and ensure the tool keeps them synchronized to the replay clock so higher-timeframe candles don't reveal the future. Testing multiple independent strategies simultaneously is a different thing: don't — interleaved decisions contaminate both logs.

What if I make a misclick or obvious input error during replay?

Annul it honestly: tag the trade as an input error, exclude it from strategy statistics, and note it separately — unless similar errors keep happening, in which case they're an execution finding that belongs in the results. Tools with jump-back let you replay the moment cleanly.

Do I restart the whole test if I accidentally saw future bars?

Not the whole test — but the contaminated stretch is compromised: skip forward well past what you saw (a few days of data) and resume. The honest log notes the gap. If it happens often, change the workflow or tool; future leakage is the one error replay exists to prevent.

More in Guide

All Guide →

Practice This in a Free Replay Tool

StrategyTune replays real bid/ask tick data for 70+ instruments in the browser — free, no registration, no downloads. Place simulated trades and see your stats build.

Open StrategyTune