Most guides to exporting an MT5 statement stop at the right-click. Toolbox, History tab, Report, save. That gets you a file and tells you nothing about what is in it — which matters, because that file is what you hand to a prop firm, a journal, or anyone who wants to check your numbers against something other than a screenshot.

Here is what MetaTrader 5 actually writes down, and what it is worth.

Two files, both called "the statement"

MT5 produces two reports and traders use the same word for both.

The first is the history report. You reach it from the Toolbox, in the History tab, through Report in the right-click menu. MetaQuotes' documentation sets out its structure: a header carrying the brokerage company, account number, account owner's name, deposit currency and the date the report was generated; then tables of Orders, Deals, Positions and Working Orders; then a Summary block of account figures (Balance, Equity, Margin, Free Margin and the rest) and a Details block of computed statistics — Total Net profit, Profit Factor, Expected Payoff, three separate drawdown measures, and the usual breakdowns by long and short. The https://www.metatrader5.com/en/terminal/help/trading_advanced/history_report">MetaQuotes documentation lists them all. It saves as HTML; the terminal also offers a spreadsheet export.

The second is the Trading Report, a more recent addition. It sits under Reports in the View menu, or "Report \ Overview" from the history context menu, and it is a dashboard rather than a ledger: tabs for Summary, Profit/Loss, Long/Short, Symbols and Risks, with Sharpe Ratio, Profit Factor, Recovery Factor, Max. Drawdown, Max. Deposit Load, MFE and MAE among the figures. Build 4150 added export of it to HTML and PDF.

The difference is practical. The Trading Report is the better-looking file and the less useful one, because it is already aggregated. The history report is the one with the rows in it, and rows are what a journal can import. The menu wording can differ slightly between builds and between brokers' white-label terminals, so look for Report rather than an exact phrase.

Orders, deals and positions are not synonyms

This is the part almost every export guide skips, and it is the reason two tools can read the same file and disagree about how many trades you took.

An order is the instruction you sent the server. A deal is an execution — the thing that actually happened on the market. MetaQuotes is explicit that a single order can produce several deals, when the volume you asked for was not covered by one offer. A position is the resulting exposure, assembled by the platform from every deal that opened, added to, partially closed or fully closed it.

So the file holds three different views of the same afternoon. The history tables carry, for orders: the time, symbol, type, volume, requested price, stop-loss and take-profit levels, and the order's final state. For deals, MetaQuotes lists: Time, Deal, ID, Order, Symbol, Type, Direction, Volume, Price, Value, Cost, S/L, T/P, Commission, Fee, Profit, Change, Magic. The positions view reports opening and closing time, closed volume against source volume, the weighted average opening price, the closing price, the total financial result, and Stop Loss and Take Profit.

Note Direction on the deal rows. MetaQuotes documents its values as "in", "out" or "in/out" — the deal's direction relative to the current position in that symbol — and it is how a parser works out which deals pair into one round trip. Note also that your net result on a trade is not the Profit column alone: profit, less commission, less fees, less swap. A statement that looks better than your balance usually means someone read one column.

Netting and hedging change the shape of the file

MT5 runs two position accounting systems. Under netting you hold one position per symbol at a time. Under hedging you can hold several positions in the same symbol, including opposite ones.

That is not a detail. On a netting account, a morning of scaling in and out of one instrument collapses into a single position record with a weighted average price. On a hedging account the same activity stays as separate positions. The deals are identical; the trade count is not. If your journal's numbers differ from the terminal's, this is the first place to look.

The clock is the broker's, not yours

MT5 timestamps history in the trading server's time zone, not your computer's, and the file carries no field naming that zone. Inside the terminal a program can recover the offset — MQL5's own documentation derives it as the difference in hours between local and server time — but an offset in hours is not a named zone with daylight-saving rules attached, and a saved file has neither. Read the statement back months later and you cannot map its rows onto sessions with confidence. Sessions, day-of-week analysis and anything else that depends on hour-of-day inherits whatever offset your broker happens to run, and a Sunday evening open can sit on a Monday row.

What the statement proves

It proves that a broker's server recorded these executions on this account. That is a real and useful thing. It is the difference between a number you typed and a number a counterparty agreed to. It puts entry, exit, size, commission, swap and result outside your memory and outside your optimism.

What it does not prove

It is not an audited attestation. Nobody independent has signed it. The HTML version is generated on your own machine from a template — ReportHistory.htm, in the platform's /Templates folder — which means the file you upload is a local rendering of the server's data, not a signed document from the server. A determined person can edit it before sending it on, and no parser can tell.

It also says nothing about the questions people usually want answered. Whether this is your only account. Whether the losing one is elsewhere. Whether the account is live or demo — MT5 does not stamp that in a way a third party can rely on. Deposits and withdrawals beyond what the balance rows imply. A statement is evidence about executions, not about a trader.

Statement import versus a live connection

Which matters for provenance, not for arithmetic. A statement passed through your machine on the way in, so a journal can only say that it arrived by statement. Trades pulled from the broker on a schedule never touched your hands, and the label says so. Manual entries stay manual and stay editable. Three different claims about how a number got there, and the label is set by the system rather than chosen.

The mechanics of both on TradingSocial — which plan each sits on, symbol suffix matching, and the fact that only closed trades are journalled — are on the MT5 page.

Why any of this matters

For your own review, provenance is almost irrelevant. You know whether you typed it honestly. Your expectancy and R-multiples work the same either way, and the habit of reviewing at all is doing most of the work.

It starts mattering the moment someone else reads your numbers — a prop firm, a subscriber, a partner, an audience. At that point the question stops being "are these good results" and becomes "how did these results get here", and the honest answer is how it arrived, not a verdict on the trader. A broker-synced record says the data never touched a keyboard. A statement import says it came from the broker's ledger by way of your hard drive. A typed record says you typed it.

Three different claims. Worth keeping them three different words.

Sources

Nathan Maiolo
Founder · TradingSocial

Nathan is the founder of TradingSocial. He writes about the habits and the arithmetic behind consistent trading — journaling, risk and review routines — not signals.