TROUBLESHOOTING

MetaTrader History Export Not Importing: The Report Problem

MetaTrader 5 does not export a table. It exports a report: a title line, some account metadata, and then three separate tables stacked inside one file, each with its own header. Any importer reading the first line as the column names gets the words "Trade History Report" and nothing else, which is why a perfectly good MT5 export can produce zero trades. This page explains what is actually in that file, which part of it holds your closed trades, and why the fix works regardless of what language your terminal is in.

Why traders can try Aurafy safely

Aurafy is a young, independent trading journal. It earns trust by keeping the local app usable without an account, making desktop data exportable, and being clear about which features are free and which require Pro.

Page updated September 2026

Local-first desktop
Your desktop journal works locally; cloud sync is optional.
No lock-in posture
Desktop data lives in SQLite and can be exported/backed up.
~50% off the stack
Aurafy Pro is $48.88/mo, replaces the ~$103/mo stack of journal + screen recording + bar-replay backtester. The backtester chart is free for everyone; Pro unlocks unlimited simulated trades, history jumps, analytics and exports.
Start free, foreverSee Pro · $48.88/moTry the live demo, no signup

What is actually inside the file

An MT5 history export contains, in order: a title line naming the report, a block of account details, then a Positions table, then an Orders table, then a Deals table. Each has its own header row in the middle of the file. Only the Positions table holds closed round trips, one per row with an open time, a close time, both prices and a stated profit. Orders lists what you asked the broker to do. Deals lists individual executions, so a single trade appears twice. Read Orders or Deals as if they were round trips and you do not get zero trades, you get invented ones, which is worse.

Why this is fixed by shape and not by words

MT5 translates every column name into the terminal's language. We have real uploads from this exact failure in English and in Chinese, where the header reads 时间, 成交, 交易品种, 类型. Matching on words would support only the languages we happened to have a file for, so the parser matches on shape instead. In the Positions header the word for Time appears twice, once for open and once for close, and so does the word for Price. That pair of repeated columns is what identifies the Positions table, in any language, and is also what separates it from the Orders and Deals tables sitting in the same file. Your terminal's language does not matter.

MetaTrader 4, and the broker statement variant

MT4 and the many broker portals built on it usually export a flatter file, one row per closed trade, with headers along the lines of Ticket, Symbol, Type, Lots, Open Time, Open Price, Close Time, Close Price, Swaps, Commission, Profit. That shape imports directly. The variant that fails is the printed statement, which opens with the broker's name in the very first cell. When that happens the column names come out as junk and nothing lines up. If your file starts with your broker's name rather than with column names, look for an export or download button on the trade history page itself rather than the statement or report button.

Symbol suffixes and the number formats

Brokers append their own suffix to symbols, so the same instrument arrives as EURUSD, EURUSDm, USOILm or XAUUSD_ depending on who you trade with. Those are stripped so the instrument still matches. Numbers in these reports also arrive with a space as the thousands separator and sometimes a space after the minus sign, as in 63 490.50 and - 0.75. Both are handled. If a symbol still comes back unmatched, the import tells you which one and how many rows it affected rather than silently dropping them, which is what used to happen.

cTrader, Exness and the other web terminals

Exports from cTrader and from broker web terminals built on it use their own column naming, typically ticket, opening_time_utc, closing_time_utc, type, lots, symbol, opening_price, closing_price. Those route to the same MetaTrader parser and import normally. The one to avoid is the partial export that carries an opening time but no closing time, because those rows are positions still open. As everywhere else in this cluster: if there is no exit on the row, there is no finished trade in it.

Frequently Asked Questions

Which MT5 export should I take?
The one from the History tab that produces the report described above. Aurafy cuts the Positions section out of it for you, so you do not need to edit the file or delete the other tables by hand.
My MT5 report is not in English. Will it still import?
Yes. The Positions table is identified by the shape of its header, specifically the repeated time and price columns, rather than by the words in it. A Chinese language report was one of the files this was built from.
Why did my forex trades import at a strange size?
Forex instruments are priced per standard lot. A file that states size in units of the underlying rather than in lots imports at the wrong scale unless the convention is detected. MetaTrader states lots, which is the expected case. TradeLocker states units, which is covered on its own page.
What does a file actually need before it can become a trade?
Six things: which instrument, which direction, how many contracts or lots, the price you got in at, the price you got out at, and when. A stated profit column can stand in for the exit price, and a pair of fills can stand in for a single round trip. If any of the other pieces is missing from every row, no journal can rebuild the trade, and one that appears to has guessed.
My file is still not importing. What now?
Send it to support@aurafy.dev and say which platform it came from. You are welcome to delete the account number column first, nothing else is needed. Files that arrive this way are what the parsers get built from, and if yours is a format we can already read, you will get told that instead of being left guessing.

Related Resources

CSV Imported Nothing?
The six files that cannot become trades, and how to spot yours in ten seconds.
TradeLocker Import Fix
Three exports look alike and only one of them holds closed trades.
Statement vs Trade History
Why the file your broker calls a statement will never import.

Ready to try Aurafy?

Aurafy is free to start, no card. Every new account also gets 14 days of full Pro first, so you can see everything unlocked before deciding. Pro itself is $48.88/mo, monthly only, and replaces the ~$103/mo stack of journal + screen recording + bar-replay backtester, with a 30-day money-back guarantee if it isn't for you. The TradingView-powered backtester chart is free for everyone, any symbol, any history; Pro unlocks unlimited simulated trades, history jumps, analytics and exports. Start instantly in your browser at app.aurafy.dev. After the trial, Free keeps going as a complete journal: log and import everything, 12 months of trade history, 1 account.

Start free, forever →See Pro · $48.88/moTry the live demo, no signup