How to Read an EA Backtest Report: 9 Checks That Separate Real Profit From a Pretty Picture
- An MT4/MT5 Strategy Tester report has almost 40 numbers, but most people look only at net profit and the chart, the two things that are easiest to dress up.
- We use a real report that someone sent us to check (the EA is not named): 30,000 turned into 302,757 profit, +1,009% in 9 months, and we go through what the numbers say that the headline does not.
- The three fastest checks: equity drawdown vs balance drawdown, the test period, and average profit per trade vs real trading costs.
The example used throughout
The report is an MT5 test on XAUUSD, H1 timeframe, January–September 2026. The headline numbers look excellent:
| Deposit → net profit | 30,000 → 302,757 (+1,009%) |
| Profit factor | 1.66 |
| Recovery factor · Sharpe | 12.99 · 3.64 |
| Win rate | 68.5% |
| Trades | 68,522 (about 370 per trading day) |
| Balance drawdown | 4.0% |
| Equity drawdown | 27.4% |
| Average win · average loss | $16.25 · $21.34 |
| Z-score | −26.92 |
| Leverage used | 1:2000 |
Looking only at the profit and the 4% balance drawdown, this seems like the best EA on the market. Now let's go point by point.
1. Test period: long enough, and covering every kind of market?
This example was tested for only 9 months, during a strong, persistent gold rally. No 2013-style collapse, no 2022 bear market, no day where gold fell hundreds of dollars.
Gold changes character over time. In real data, the average daily range was about $13 in 2019 and about $53 in 2025. A system that looks great in one era can break in the next.
Rule: ask for at least 10 years of testing, ideally 20+, including the 2008 crisis, the 2013 gold crash, the 2020 Covid shock and the 2022 downtrend. If the seller avoids showing those periods, that is your answer.
2. Equity drawdown vs balance drawdown
This is the single most important line in the report, and the one most people skip.
- Balance only changes when a trade is closed.
- Equity is the real value of the account right now, including open trades.
Here, balance drawdown is only 4.0% but equity drawdown is 27.4% (about 23,310), almost 7 times larger. The EA holds losing trades open and waits for price to come back. The balance line stays smooth because all the losses are hidden in open positions. That is the signature of a grid or averaging EA.
We simulated exactly this kind of EA on 22 years of real gold prices in Grid and Martingale EAs on Gold: roughly 3 in 4 accounts were wiped out within two years.
Rule: an EA that cuts losses trade by trade has equity drawdown close to balance drawdown. If equity drawdown is more than twice the balance drawdown, be very careful.
3. Average profit per trade vs real costs
Some quick arithmetic with the report's own numbers:
Check: 302,757 ÷ 68,522 trades ≈ $4.42 per trade ✓ (the small difference is rounding in the report)
So if real costs per trade in a live account (wider spreads than in the test, slippage, commission, server latency) are higher than in the test by just $4.42 per trade, the 302,757 profit becomes zero.
An EA that trades 370 times a day for a few dollars each is extremely sensitive to costs. Its backtest means very little until you see a live account.
Rule: divide net profit by the number of trades and compare it with your broker's real spread. If profit per trade is close to the cost, the system is hanging by a thread.
4. Win rate vs the size of wins and losses
A 68.5% win rate sounds good, but the average loss ($21.34) is larger than the average win ($16.25). A high win rate combined with losses bigger than wins is the pattern of a system that "takes small profits and lets losses run". It works until it meets a large losing trade.
In the same report, the largest single loss was −722 and the longest losing streak was 18 trades totalling −7,791. Ask yourself whether you could live with that in your first month.
Rule: never read win rate on its own. Always read it together with the average-win to average-loss ratio and the maximum losing streak.
5. Z-score: are the trades independent?
The Z-score in an MT5 report measures whether wins and losses come in unusual clusters. Near 0 means trades are roughly independent. Strongly negative means wins tend to follow wins and losses tend to follow losses.
This example has a Z-score of −26.92, which is extreme. It suggests the EA opens trades in linked baskets, for example several averaged trades that are closed together, rather than making independent decisions.
Rule: a Z-score beyond about ±3 deserves an explanation. Beyond ±10 it is almost certainly a basket system.
6. A curve that is too smooth
This report has an LR correlation of 1.00 and a Sharpe ratio of 3.64; the profit curve is almost a straight line. That sounds like good news, but in real markets a directional system has visible losing periods. A near-perfect line usually comes from losses hidden in open trades (see point 2) or from testing in a one-way market (see point 1).
Rule: a curve that looks too good should make you ask more questions, not fewer.
7. Modelling quality and latency
This example used "Every tick based on real ticks", which is better than modelling from candles, and set 191 ms of latency, which shows some care. But for a system that targets 1–2 points per trade, real-world latency and slippage during news are usually worse than any setting in the tester.
Rule: "Open prices only" or "1 minute OHLC" results are meaningless for high-frequency systems. Systems that hold trades for hours are much less sensitive to this.
8. Leverage and margin use
This example used 1:2000 leverage with a maximum deposit load of 10%. High leverage lets an EA hold many positions without a margin call. On a real account with lower leverage, or with a broker that reduces leverage around news, the same system may be force-closed much sooner.
Rule: re-run the test at the leverage you will actually use. If the result changes a lot, the system depends on leverage more than on analysis.
9. Out-of-sample testing and live results
This is not in the report, but it matters most. A system tuned to fit one dataset (overfitting) looks great on that data and breaks on data it has never seen.
- Two-halves test: split the data into a first and second half. A genuinely good system is profitable in both, not hugely profitable in one and losing in the other.
- Live results: ask for verifiable live statistics (for example a Myfxbook account with verified tracking) of at least 6 months, and compare them with the backtest over the same period.
The example in this article has neither.
Summary checklist
| Check | Good sign | Warning sign |
|---|---|---|
| Test period | 10–20+ years incl. 2008, 2013, 2020, 2022 | A few months, or uptrend only |
| Equity DD vs balance DD | Close to each other | Equity more than 2× balance |
| Profit per trade | Many times real costs | Close to spread/commission |
| Win rate | Consistent with win/loss sizes | Very high, but average loss bigger than win |
| Z-score | Near 0 | Beyond ±10 |
| Curve shape | Visible losing periods | Near-perfect straight line |
| Stop loss | Every trade has one | None, or too far to matter |
| Leverage | Result holds at lower leverage | Needs 1:1000+ to survive |
| Live results | Verifiable live account, 6+ months | Screenshots only |
If you have a report file, try our free EA checker, and see the full criteria we use on our own EA at What Makes a Good EA.
Notes
- The example comes from a report sent to us for review. We do not name the EA because the goal is to teach how to read a report, not to attack a product.
- No single number decides everything. Read several checks together. A system that passes every check can still lose money.
This article is for educational purposes and is not investment advice. Trading gold and CFDs carries a high level of risk and you may lose all of your capital. Past performance does not guarantee future results.
