Positions, Deals, Orders — pick the first
In the terminal, Toolbox → History shows your account history, and right-clicking offers a report. The tab you are on when you export decides what you get, and this is the part that catches people.
| Report | One row is | Use it? |
|---|---|---|
| Positions | a completed round trip — open and close together | ✅ yes |
| Deals | a single fill; one position with a partial close is several deals | only for execution detail |
| Orders | an instruction, which may have been cancelled and never filled | ❌ no |
Export Deals and a position you scaled out of three times arrives as four rows. Nothing errors — your trade count is simply inflated, your average trade shrinks, and your win rate is computed over events that were never separate decisions.
Export Orders and you get rows with no result at all, because an order that never filled has no outcome.
What the positions report carries
Thirteen columns, and it is worth knowing them because they decide what any journal can tell you:
Position · Symbol · Type · Volume · Open Time · Open Price · S/L · T/P
· Close Time · Close Price · Commission · Swap · Profit
Three details matter more than the rest.
Profit is gross. Commission and swap sit in their own columns and are not subtracted from it. Any tool that shows you the Profit column alone is showing you a number you never received.
S/L and T/P are your intentions, recorded. Most exports have nothing like this, and most journals throw them away on import. They are the only machine-readable record of the plan you had before the outcome existed. A zero means no level was set.
Position is a stable identifier. It is what makes re-importing the same file safe: rows already seen are recognised rather than duplicated.
The trap: which stop is in the file
The S/L column holds the final stop, not the one you set at entry.
If you widened a stop while the trade ran and were then taken out at the new level, the export shows that new level and the exit matching it perfectly. There is no trace of the original. Every tool reading this file — ours included — will read that as discipline.
This is not a MetaTrader flaw; a closed-position report is a summary, and summaries lose the middle. It is worth knowing because it is the single most common way a plan breaks, and no upload will ever catch it.
Date format
MT5 writes dates as 2026.05.04 09:47:06 — dots, 24-hour clock, no timezone marker. The times are in the server's timezone, which is frequently not yours and frequently not UTC either; many brokers run their servers on an offset chosen so the daily candle closes at a convenient hour.
For comparing your own trades against each other this changes nothing. For "what time of day do I trade worst", it means the answer is in server hours unless you know your broker's offset and adjust.
HTML report or CSV
The right-click menu offers a report as HTML; some builds also export the history grid to CSV. Both work here — our importer detects the format from the file's contents rather than its extension, so a renamed file still parses correctly.
If your file has an .htm extension and the tables inside carry those column headers, it is read the same way as the CSV.
What to do with the file
Drop it into any of the analyzers — what overtrading costs you, intent vs execution or the discipline check. They read it in your browser, with no upload and no account, which also makes them a quick way to confirm you exported the right report before importing it anywhere.