How to Read an MT4 Backtest Report: Costs, Drawdown and Data Quality
The ten-trade ledger and chart in this guide are hypothetical teaching examples. They are not an MT4 export, a tested strategy's performance or a forecast.
An MT4 backtest report becomes useful when you can connect its headline numbers to the trades, modelling method and cost assumptions behind them. Start by checking what was tested, then reconcile the profit calculation and investigate the losses. A positive result is a reason to examine the evidence, not a substitute for that examination.
If you have not yet defined a repeatable test, begin with How to Backtest a Forex Strategy in MT4. This guide focuses on reading the resulting report and spotting conclusions that its numbers cannot support.

Identify the test before comparing its profit
Keep the report beside its EA version, input set, broker or data source, symbol, timeframe, date range, initial deposit and sizing rule. Record the spread and any separately modelled charges. Comparing two account curves without those details can confuse a change in position size with an improvement in the trading rules.
The Results tab records trade operations, including openings, modifications and exits. Its row number is not a completed-trade count; use the order tickets and closing records when reconciling your ledger. MetaQuotes explains these fields and the Save as Report export in its tester results documentation.
Read modelling quality as a data clue
Modelling quality is not the probability of making money. MT4's standard Every tick mode generates a price path from available lower-timeframe OHLC information and interpolation. A large tick count does not turn those generated events into recorded historical quotes. Check the selected mode and data coverage before interpreting precise-looking entries.
MetaQuotes describes the report's modelling-quality band: green indicates use of lower-timeframe data, while red can indicate missing lower-timeframe coverage. There is a specific exception: Open prices only can legitimately show a red band and “n/a” because that mode does not perform the same modelling. Interpret the display in context, then investigate data warnings and unexplained behaviour in the Journal.
A high-looking quality figure cannot answer whether the EA's logic was correct or whether its trading costs were suitable. If the result depends on the order in which a stop and target were touched within a candle, that uncertainty deserves attention even when the report looks tidy.
Check what “net” includes
In MT4's standard setup, the Current spread option captures the spread at the start of the test; it does not reconstruct historical spread variation. Read the configured value as a cost assumption. Compare it with the strategy's intended trading conditions and identify commission, financing and execution assumptions separately.
Be especially careful with custom exports. The MQL4 function OrderProfit() excludes commission and swap. To reconcile a selected closed order's recorded components, use its profit together with the signed values returned by OrderCommission() and OrderSwap(). This does not mean that every standard report omits those charges; it means that a custom column labelled “profit” needs a definition.
Do not subtract a cost twice. If entry and exit prices already reflect the modelled spread, adding the same spread charge again understates the result. Conversely, a zero commission or swap assumption does not establish that the intended live account would charge zero. Our forex spread and total-cost guide explains the distinction.
A worked example: ten hypothetical closed trades
Assume a USD account begins with $1,000, has no deposits or withdrawals, and holds one position at a time. The invented outcomes below already include an assumed spread; commission and swap are set to zero for this base illustration. No symbol, test period or strategy performance is implied.
| Trade | Outcome | Balance after closing |
|---|---|---|
| Start | — | $1,000 |
| 1 | −$40 | $960 |
| 2 | +$100 | $1,060 |
| 3 | +$80 | $1,140 |
| 4 | −$60 | $1,080 |
| 5 | −$90 | $990 |
| 6 | +$160 | $1,150 |
| 7 | −$30 | $1,120 |
| 8 | +$60 | $1,180 |
| 9 | +$50 | $1,230 |
| 10 | −$20 | $1,210 |
The five winning trades add up to $450 gross profit. The five losing trades total $240 in losses. Net profit is $450 − $240 = $210, which reconciles the starting $1,000 to the ending $1,210. If an export displays gross loss as a negative number, use its positive magnitude when calculating the ratio below.
Profit factor = $450 ÷ $240 = 1.875. It is a ratio: this ledger contains $1.875 of gross profit for each dollar of gross loss. It is not a 187.5% account return. Expected payoff = $210 ÷ 10 = $21 per trade. Here “expected” describes the sample's average outcome; it does not promise that the next trade will earn $21.
The win rate is 50%, the average winner is $90 and the average loss is $48. Their weighted combination gives the same average: (0.5 × $90) − (0.5 × $48) = $21. This is why a win rate needs the size of gains and losses beside it. See probability and expectancy in forex for the underlying reasoning.
Separate absolute, maximal and relative drawdown
Drawdown describes a decline from a reference level, so always identify that reference. For the simplified path below, assume there are no additional intratrade highs or lows between the displayed points. That assumption lets us demonstrate the arithmetic; a ledger of closed trades alone cannot establish the deepest loss on open positions.
Absolute drawdown asks how far the path fell below the starting deposit. The lowest displayed balance is $960, so the example's absolute drawdown is $1,000 − $960 = $40.
Maximal drawdown in money measures the largest decline from an earlier peak to a subsequent trough. Here the $1,140 peak after trade 3 falls to $990 after trade 5: $150. Dividing by that peak gives $150 ÷ $1,140 × 100 = 13.16%. This is also the largest percentage decline in this particular path.
Relative drawdown highlights the largest percentage decline. In another account path, the worst percentage episode and the worst dollar episode can occur at different times. MetaQuotes' drawdown definitions refer to equity peaks and subsequent lows. An open trade can reduce equity before its loss appears in the closing balance, so inspect floating exposure as well as the ledger. The risk and stop-loss guide connects that exposure to position sizing.
Stress the result with a transparent cost adjustment
Suppose an additional cost was omitted from the base illustration. Keeping all ten trades and their sizes unchanged, subtract the extra amount once per completed trade. The calculation is simple enough to audit:
| Additional cost per trade | Total additional cost | Adjusted net result | Ending balance |
|---|---|---|---|
| $0 | $0 | +$210 | $1,210 |
| $5 | $50 | +$160 | $1,160 |
| $21 | $210 | $0 | $1,000 |
| $25 | $250 | −$40 | $960 |
These are hypothetical charges, not current broker prices. The spread and commission calculator can help estimate a scenario from your own inputs, with financing and slippage considered separately. If altered costs change position sizing, margin availability or later trading decisions, rerun the strategy: a flat deduction cannot reproduce those effects.
Decide what the report justifies next
Ten invented trades teach arithmetic; they establish no trading edge. With a real test, examine the number and distribution of trades, exceptional winners, losing sequences, the time spent below a previous peak and performance on an untouched period. A dollar gain over an unspecified interval is not an annualized return.
Write the unresolved question beside the report. Missing history calls for data investigation; unexplained trades call for a logic review; an attractive result under one narrow cost assumption calls for sensitivity testing. Preserve the original run when revising anything. Our guide to reviewing a trading system provides a practical keep, pause or change framework.
Next step: check the report against a demo trade log
A strategy report is a record of one test, not evidence that the same settings will work under current execution conditions. Keep the historical run unchanged, then document how the rules behave in a forward test on a demo account. Record which trades were missed, any platform or time-zone differences, and each actual spread, commission or swap.
Use the MT4 trading journal template for an auditable record, then compare historical assumptions with the after-cost profitability audit. An unfavourable comparison is a reason to investigate the rule or data, not to conceal it.
Sources and further reading
- MetaQuotes: MT4 results, calculations and export, report fields and modelling quality, and tester spread settings.
- MQL4 Reference: OrderProfit, OrderCommission and OrderSwap.
- Continue through the trading psychology and testing guides.
Documentation checked: 13 October 2026. Worked examples are hypothetical and do not represent a tested trading strategy.
No comments