MT5 & MT4 backtest report analyzer
Drop in the spreadsheet MetaTrader wrote for your Expert Advisor and read it from a different angle. The Strategy Tester tells you what your EA made. This tells you what that number is actually resting on — how much of it the broker took, how much of it came from five lucky trades, how long the account sat under water, and whether the lot size was quietly doubling after every loss.
DROP YOUR METATRADER .XLSX HERE
An MT5 Strategy Tester report, an MT5 terminal history report, or an MT4 statement re-saved as .xlsx. Nothing is uploaded — the spreadsheet is read by JavaScript inside this page.
In short
- The Strategy Tester tells you what your EA made. This tells you what that number is resting on.
- Three things sink most profitable-looking backtests: the broker's cut, a handful of outlier trades, and lot size that grows after losses. None of the three are in MetaTrader's summary.
- Works with an MT5 Strategy Tester report, an MT5 terminal history report, or an MT4 statement re-saved as .xlsx.
- The file is read inside your browser. It is never uploaded and never stored.
What MetaTrader prints, and what it leaves out
The MT5 report is a good summary and a poor autopsy. Every figure in it describes the whole run as one number, and it never turns around and interrogates that run. Here is the same set of questions put to both.
| The question | MT5 Strategy Tester | This analyzer |
|---|---|---|
| How deep was the drawdown? | Yes — Balance Drawdown Maximal | Yes, peak to trough |
| How long were you under water? | Not shown | Longest stretch in days with no new high |
| Did the account ever recover? | Not shown | Trades back to a new high, or “never” |
| What did the broker take? | Lists commission and swap per deal, never totals them | Cost drag as a share of gross profit |
| Does it survive without the best trades? | Not shown | Drop the best N and watch the net move |
| Did lot size grow after losses? | There is a Volume column, but nothing asks | Escalation rate and a martingale flag |
| Which session or hour lost money? | No concept of time of day | Session, hour, day and month splits |
| Do wins and losses arrive in clusters? | Not shown | Trade-to-trade correlation |
| Is the sample big enough to mean anything? | Prints two decimals for eleven trades | Stated before anything else on the page |
What the analyzer measures
Cost drag
Commission plus negative swap as a share of gross profit. A scalper trading 3,000 times can hand 60% of its gross to the broker — and nothing in the standard report puts those two numbers side by side.
Profit concentration
Remove the best N trades — N is a control you can drag — and see what is left. If 400 trades go from +$4,100 to −$300 once you drop five, that is not an edge that repeats.
Drawdown recovery
How many trades it took to make a new equity high after the worst trough — or a plain “never” if the run ended still under water.
Equity stagnation
The longest stretch, in days, with no new equity high. A 12% drawdown lasting three days and one lasting seven months are not the same experience — only one gets abandoned by a real person.
Lot escalation
How often size grew after a loss, and how many times bigger the largest position was than the smallest. When both are high that is martingale, and the curve is smooth until it is not.
Trade dependency
The correlation between one result and the next. Near zero means independent; strongly positive means losses cluster, so the same average result comes with a much worse ride.
Session and hour splits
Net, win rate and expectancy across Sydney, Tokyo, London and New York, by hour of the broker's clock, by weekday, by month, and by how long trades were held.
Sample size, said out loud
Under about 30 closed trades, nothing on the page should be trusted; under 100 it is a hint, not a verdict. This is deliberately the first thing shown, not a footnote.
How to export the report from MetaTrader
MT5 Strategy Tester — an EA backtest
Run the test, open the Backtest tab, right-click anywhere in the results, choose Report, then Open XML (MS Office Excel 2007). You get the Settings block, the Results summary, and the full Orders and Deals tables. This is the richest export and the one the tool is built around.
MT5 terminal history — a live or demo account
Toolbox → History tab → right-click → Report → XLSX. Exported in the Positions view this file carries an S/L column, which means risk per trade can be reconstructed.
MT4 — one extra step
Right-click in Account History → Save as Detailed Report. MT4 writes .htm rather than .xlsx, so open that file in Excel or LibreOffice and re-save it as .xlsx. The Closed Transactions grid is read in full, including Commission, Taxes, Swap and the S/L and T/P columns.
How your trades are rebuilt
The three exports have three different shapes. A terminal Positions report and an MT4 statement already give one row per closed trade — the easy case. The Strategy Tester's Deals log does not: it records entries and exits as separate deals with no position id, so entries are matched to exits first-in-first-out per symbol, the same order MetaTrader closes them in. A partial close becomes its own trade row, the entry price of a partially matched exit is the volume-weighted blend of the legs it consumed, and commission is charged from both sides of the round turn.
One limit worth stating plainly
- No stop-loss in a Strategy Tester export. The Deals log has no S/L column, so R-multiples and average R:R cannot be reconstructed from it. Export from the terminal's History tab in the Positions view, or use an MT4 statement, and the stop comes with it.
What a backtest can and cannot tell you
Every number here describes past behaviour on one broker's historical data, at one spread model, over one period. It is not a forecast and none of it is trading advice. A backtest is most useful for ruling things out: a system that cannot survive its own costs, or that dies when you remove five trades, or that only ever worked in one session, has told you something real. A system that survives all of those has told you far less than it feels like it has.
If you would rather test a discretionary strategy by hand than code an EA, that is what the rest of this site does — a bar-by-bar replay simulator where you place the trades yourself. See MT4 Strategy Tester vs manual backtesting for the comparison, or the Monte Carlo simulator to see the spread of outcomes a strategy like yours could produce.
Frequently asked questions
Is my backtest file uploaded anywhere?
No. The spreadsheet is parsed by JavaScript inside your own browser. It is never sent to a server, never stored, and disappears when you close the tab.
Does it work with MetaTrader 4?
Yes, with one extra step, because MT4 saves a Detailed Statement as .htm rather than .xlsx. Open that file in Excel or LibreOffice and re-save it as .xlsx, then drop it in.
Why can't it show my average R:R?
The Strategy Tester's Deals log has no stop-loss column, so risk per trade is unknown. Export from the terminal's History tab in the Positions view, or use an MT4 statement, and the S/L column comes with it.
What counts as a big enough sample?
As a rough guide: under 30 closed trades, treat nothing as meaningful; under 100, treat it as a hint. The report tells you which band your file falls into before it shows you anything else.