TapeSheet

Home MT5 report analyzer

MT5 report analyzer

MetaTrader 5 does not record trades. It records deals — the individual fills that make up a position. Turning those back into trades correctly is most of the work, and it is where analyzers quietly disagree with your broker. Drop the report in and see the whole account. Free, no account, nothing uploaded.

The analyzer is the drop zone. Nothing is uploaded, and there is nothing to sign up for.

Which MT5 export works

The HTML report: Toolbox → History → right-click → Report → HTML, having first set the period to All History. It arrives asReportHistory-<account>.html and contains Summary, Orders, Deals and usually Positions sections. Brokers customise the template freely — extra columns, renamed headers, translated labels — and the parser matches on header meaning rather than column position, so those variations are handled.

Full walkthrough: how to export an MT5 report.

“Open XML” works too, and so does HTML. The Open XML option saves with an .xlsx extension but is actually legacy SpreadsheetML — plain XML, not a real Excel workbook — and TapeSheet reads it directly. Both exports produce the same numbers here. What we cannot read is a genuine .xlsx: if you opened the report in Excel and saved it, export it again from MetaTrader instead.

How deals become trades

A position in MT5 is opened by a deal with direction in and closed by one or more deals with direction out. Analyzing the deal list directly gives you nonsense: every entry counts as its own event, and a position closed in three parts looks like three unrelated things happened.

TapeSheet reconstructs positions in the order MT5 itself intends:

  1. By position identifier, when the report has one. Each deal carries the id of the position it belongs to. This is exact — no inference, no ambiguity — and it is what makes reversals and partial closes come out right.
  2. FIFO, when it does not. Plenty of broker templates omit the Position column entirely. Closing deals are then matched against open volume oldest-first, which is the convention MT5 uses and the one your broker's own accounting follows.

A partial close produces one closed trade per closing portion, with commission, fees and swap attributed pro-rata by volume. An in/out reversal deal closes the existing lot and opens a new one with the remaining volume, which is exactly what the terminal did.

Two more details that change the numbers: commission is deduplicated where a broker records it on both the order and the deal, and cancelled or rejected orders are excluded — they never produced P&L, and counting them wrecks win rate.

Hedging vs netting accounts

MT5 supports both, and the difference confuses more people than any other part of the format.

Account typeWhat the terminal doesWhat you see here
HedgingSeveral independent positions in the same symbol, including opposite directions, each with its own ticket.Each position is its own trade. Long and short in one symbol stay separate rather than cancelling out.
NettingOne position per symbol. A trade in the opposite direction reduces, closes or reverses it.Reversals split correctly: the closing portion becomes a completed trade, the remainder opens a new one.

If your figures ever disagree with the terminal, the account type and the partial-close convention are the first two things worth checking — andtelling us about it is the most useful message we receive.

Every instrument your broker lists

Symbol handling is generic. Suffixes are normalised, so us30.cash andUS30 are one symbol, and price precision is inferred from the price strings in your own file rather than a hardcoded symbol table. Metals, indices, crypto CFDs and futures CFDs analyse identically to FX pairs.

This is worth stating plainly because it is not the norm: TradeZella's MT4/MT5 replay is forex-pairs-only, with CFD and index support listed as coming soon (as published, August 2026). There is no supported-instrument list here, because there is no special-casing to limit one. For instruments where “a pip” is not a meaningful unit, points are the honest reading and the product says so.

The honest caveats

  • Drawdown is balance-based. The report has no intra-trade equity, so a position that ran far against you and closed flat contributes nothing. Your real equity drawdown was deeper.
  • Server time, no timezone marker. Set the broker offset once or every session and hour breakdown is shifted by that many hours.
  • Swap and commission are read as recorded. Where a broker books costs outside the report, our totals will differ from the account statement by exactly that amount.
  • Your broker's records are authoritative, not our reading of them.

The full list is on the risk disclaimer page.

Nothing uploads, and that is checkable

The analyzer is a single HTML file with the parser, metrics engine and charts inlined. Your report is read with the browser's file API and parsed on your device — there is no backend, no database and no upload endpoint. Watch the Network tab while you load a file, or disconnect from the internet first and use it anyway.

Also worth reading

Deals in, real positions out

See what your MT5 account actually did, reconstructed properly.

Analyze my MT5 report