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
- Run the full cost audit: spread (if not in the data), commission, swap on overnight holds, slippage buffer.
- Compute expectancy, profit factor, max drawdown, longest streak.
- Segment by session and regime — edges often live in subsets.
- Read the equity curve for fragility (outlier-carried results).
- 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 →What Is Manual Backtesting? (vs Automated)
Definition, how it differs from coded backtests, and when each fits.
Candle-Stepping vs Tick Replay: What Your Test Can’t See
Why replay granularity changes your results.
How Many Trades Makes a Valid Backtest?
30? 100? 200? What sample size actually buys you.
12 Manual Backtesting Mistakes That Invalidate Results
The errors that make results meaningless.
Forward Testing After the Backtest
The bridge between backtest and live.
Manual Backtesting in Excel: When It Works
The spreadsheet method, honestly assessed.
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