TestMaxBlog
backtesting · October 1, 2026 · by Joel

How to Backtest Forex Manually: A EURUSD Walkthrough

A practical EURUSD backtest with fixed entry and exit rules, a trade log, cost assumptions and a checklist for avoiding hindsight.

A manual forex backtest takes a written set of trading rules, applies it to historical currency prices, and records every qualifying trade. To make the result useful, you need to keep future candles hidden, define your trading hours, and account for costs. The chart is only one part of the test.

Here is a complete practice exercise using EURUSD. The prices and results below are invented examples to explain the method. The setup has not been validated as profitable.

Start with a question you can actually answer

“Does my forex strategy work?” leaves too much open. Try this instead: “What happens when I trade the first confirmed break of a fixed EURUSD morning range, using the same entry, exit, and cost assumptions every day?”

That question specifies a market and a repeatable event. It also gives you a reason to record a day with no trade. If you only save days with attractive breakouts, you have already changed the experiment.

If you have never defined a setup before, use the general backtesting guide to write one before choosing a date range.

Write the rules before opening the chart

Use this deliberately simple ruleset as a practice template:

Decision Fixed rule for this exercise
Market and chart EURUSD, five-minute candles
Time convention UTC throughout; this is a fixed UTC exercise, not a claim about a local session opening
Reference range Highest high and lowest low of candles opening from 07:00 through 07:25 UTC
Signal window Candles opening from 07:30 through 08:55 UTC
Signal First completed candle closing outside the reference range
Entry Next available candle's open, in the breakout direction
Stop Opposite edge of the completed reference range
Target Twice the entry-to-stop distance
Time exit Open of the 10:00 UTC candle if the trade is still open
Frequency At most one trade per day

A signal near the end of the window can enter at 09:00. If the next opening price is already beyond the proposed stop in the wrong direction, record the setup as skipped under a rule written before testing.

Use consecutive available dates. Reserve a later, untouched block for a second test. An initial 20-session block is a convenient workflow check, not statistical proof that the strategy works.

Walk through one example

Suppose the reference high is 1.0850 and the low is 1.0830. A completed candle closes above the high, and the next candle opens at 1.0852.

The hypothetical long entry is 1.0852. The stop at 1.0830 is 22 pips away, and the 2R target is 1.0896, 44 pips above entry. For EURUSD, a conventional pip is 0.0001; the extra decimal on many quotes is a smaller fractional increment.

These are price distances. Converting them to account currency also requires position size and, when necessary, a currency conversion. Never copy a position size from another pair because its stop has the same number of pips.

Advance through the chart one candle at a time. Once the signal occurs, write down the entry and planned stop before continuing. That small interruption makes hindsight edits much easier to spot.

Decide how to handle an ambiguous candle

A candle can contain both your stop and your target. Its high and low do not reveal which came first.

Write a policy before the test: use available finer-resolution data, apply a conservative stop-first assumption, or record the result as ambiguous and report a best/worst range. Do not award yourself the target because the candle ended green.

Record gaps separately too. A stop price is a trigger assumption, not a guarantee that execution occurred at that price. The market replay guide explains what replay can show and what simulated fills leave uncertain.

Keep a small record with useful evidence

For each date, save the range size, signal time, entry, planned stop, gross R, estimated costs and net R. Keep a separate note explaining the exit or the absence of a trade. Here is a compact summary of three illustrative sessions:

Session Net result Record note
A +1.90R +2.00R gross less 0.10R costs; target reached
B -1.10R -1.00R gross less 0.10R costs; stop reached
C No trade No qualifying close outside the range

The 0.10R cost is an illustration, not a typical EURUSD charge. Use the spread, commission and slippage assumptions relevant to the execution conditions you want to investigate. If your recorded fills already include a cost, avoid charging it twice.

Keep the original risk denominator fixed. Moving a stop later should not rewrite what 1R meant at entry. The trading journal template gives you a practical review structure.

Read the result before changing anything

Calculate average net R across all trades, the largest peak-to-trough decline, and the number of ambiguous outcomes. Look at the order of trades as well as their total. Ten winners and ten losers can create very different drawdowns depending on their sequence.

Check whether one unusually large result carries the sample. Then run the unchanged rules on your reserved dates. If you change the window, target or filter after seeing those dates, they become development data; you need fresh dates for the next independent check.

The win-rate calculator helps explore how average winners, losers and costs interact. A higher win rate by itself does not settle the question.

Run your first EURUSD practice block

TestMax lets you replay historical prices and place simulated orders while the session unfolds. EURUSD is currently available without a paid instrument restriction; the Free plan has a limited recent history window. Futures such as NQ and ES require Pro. Available chart resolution depends on the instrument and plan, so inspect the session's data range before designing the test.

Create a free TestMax account, select EURUSD, and record the first five sessions using the same rules. Your first useful result is a record you can explain and repeat. Check current plans if you need more history or additional features.

For broader context on the distinction between historical testing and subsequent demo practice, see CMC Markets' backtesting explanation.

Tags: forex backtesting, EURUSD, manual backtesting