Backtesting on Real Data
Run your EA over years of real market history — and read the report honestly.
Written and reviewed by the Fundezy team · how we produce this
A backtest replays history through your EA: symbol, timeframe, date range, then tick by tick — every OnTick fed with real past prices. The platform's data comes from a real historical market-data archive, so the prices your EA reacts to actually happened.
The controls
In the Strategy Tester you choose:
- EA file — upload your
.mq5source - Symbol + timeframe — e.g. EURUSD H1
- Date range — long enough to span trends and ranges (a trend-only sample will flatter trend strategies)
- Inputs — override the EA's defaults for this run
Run it and you get the full report: trades opened/closed, win rate, net P/L, per-trade detail with timestamps.
How fills work here (and what that means)
The engine is precise by design: fills land on the closing side's quote (a long exits at the bid) at the triggering bar's timestamp, and a bar that gapped through your level fills through it — the tester charges that gap plus execution slippage, a spread-relative draw charged on every crossing fill (market entries, stops, manual closes; a take-profit is a limit order, and fills at its level unslipped). The live terminal prices fills the same way off the same draw — same sides, same slippage — so a backtest and a live run charge the same cost stack in the same conditions, and a stop can step through on minute granularity just the same. Real brokers slip further, especially through news. Prefer strategies whose edge survives giving back a pip or two per trade (Course 01's cost lesson, quantified); the tester charges the full cost stack, so its P/L already nets costs out.
Reading the report like a professional
The first number everyone looks at is net P/L. Look at these first instead:
- Number of trades. Below ~30, the statistics are noise; you have learned nothing yet. Get more data or a more active strategy before concluding anything.
- Max drawdown (from the equity path). Two systems with equal profit and different drawdowns are not equal — Course 03, Lesson 5.
- Trade distribution. A few huge winners propping up many small losers = fragile, luck-dependent. Look for broad-based profitability.
- Win rate × average R — the expectancy arithmetic you already know.
The three classic traps
- Look-ahead bias — using information the EA couldn't have had at decision time. The platform's shift-based API (
shift 0= current,shift 1= closed bar) keeps this honest if you let it: act on closed bars (shift ≥ 1) unless you truly mean to trade intrabar. - Survivorship of symbols — you chose EURUSD because it's still here. Fine for learning; know that it's a filter.
- Overfitting — the subject of the next lesson, and the one that eats the most capital.
The workflow that works
Change one thing per run and keep a lab notebook (your journal, again): date range, inputs, results, hypothesis for the next run. Backtesting without notes is just gambling with more steps.
By the numbers
Sample size decides everything: below 30 trades a report's win rate is indistinguishable from luck; 100+ starts to deserve a grade. And know your simulator's costs: both fill on the bid/ask sides, so a round trip pays one full spread plus the flat $7/lot round-turn commission, plus execution slippage on every crossing fill — the same draw in the tester and on the live terminal. The tester even mirrors the live spread's rollover blowout around the 5pm New York crossing (21:00Z EDT / 22:00Z EST); the live desk adds the real news-calendar blowouts on top. Real brokers can be harsher than both.
Practice in the simulator
Backtest the example EA on EURUSD H1 — apply what you just read with simulated money.
Check your understanding
4 questions · answer all, then submit.