MT5 stores orders, deals and positions as three separate things. Understanding that is the difference between a journal that reconstructs your trading and one that invents it.
Export an MT5 history report after a month of trading and count the rows. A trader who took forty positions will frequently find well over a hundred lines. Nothing has gone wrong. MT5 is showing deals, and a single position you entered once, scaled out of twice, and closed at a stop is four deals with four prices and four commission entries.
Every difference between a good MT5 journal and a bad one traces back to how that pile of rows gets folded back into the forty decisions you actually made. This post is about that mechanism: what MT5 stores, how a connected account reads it, and what to check before you trust the first import.
MT5's history is built from three related record types, and they are not interchangeable.
An order is a request. Buy 0.7 lots at market, or place a limit at a level. It has a state: placed, partially filled, filled, cancelled, rejected. Orders that never filled still exist in the record, which is useful — a pattern of rejected orders usually means a spread filter or a minimum-distance problem worth knowing about.
A deal is an execution. It is the thing that moved money. Deals carry a direction flag describing whether they opened exposure, closed it, or reversed it, and it is that flag a journal uses to decide whether a row is an entry or an exit.
A position is the net exposure that deals create and destroy. On MT5, deals carry a position identifier, and that identifier is the key that folds the pile of rows back into one trade.
There is a fourth category worth knowing about: deals that are not trades at all. Deposits, withdrawals, credits, swap postings and commission corrections appear in the same history stream. A journal that counts them as trades will report a nonsense win rate the first time you top up an account.
TIP
The fastest way to sanity-check any MT5 journal is to compare its trade count to the Positions view in the terminal's own history tab for the same period. If the journal shows more trades than MT5 shows positions, it is treating scale-outs as separate trades.
MT5 accounts come in two varieties and prop firms issue both.
On a hedging account you can hold a long and a short on the same symbol simultaneously. Each position is its own object with its own identifier, and reconstruction is straightforward.
On a netting account there is one net position per symbol. Buying 0.3 while long 0.5 leaves you long 0.8 on the same position identifier at a new average price. Selling 0.5 while long 0.5 closes it entirely. There is no second position, and the concept of "the trade" now spans several decisions at several prices.
This matters because most journal tooling was written against the hedging model, which is what MT4 always was. On a netting account the same tool may report an average-price position as a single trade with an entry price you never traded at, or split it into pieces that do not correspond to anything you decided. Neither is wrong exactly — but you need to know which one you are reading before you draw conclusions from it.
Two fields on a deal carry the information a journal needs to group and label trades, and both are worth using deliberately.
The magic number is set by whatever expert advisor placed the order. Manual trades have a magic number of zero. If you run more than one automated strategy, giving each a distinct magic number is the single cheapest thing you can do for future analysis, because it lets the journal separate strategies without any tagging by you. Retrofitting this later is impossible — the historical deals will not acquire a number they never had.
The comment is free text attached at order placement. Brokers sometimes overwrite it, and it can be truncated, so it is not reliable as the sole identifier. As a secondary label — a setup name, a signal reference — it is useful, and it survives into the exported history.
There are three common ways a journal gets your MT5 history, and they differ in what they can see and what they ask of you.
You export the history from the terminal as a report file and upload it. No credentials leave your machine and nothing runs continuously.
It works, and its limitations are exactly what you would expect: it is a snapshot, it depends on you remembering, and the report's column set is fixed by the platform. Reports also round some values for display, which occasionally produces small discrepancies against the account's own figures. For a trader reviewing monthly, this is perfectly adequate.
MT5 accounts have an investor password alongside the master password. It permits logging in and reading everything — balance, positions, history — and does not permit placing, modifying or closing orders.
This is the right credential for a journal, and it is worth insisting on. A journal has no reason to hold a master password, because a journal has no reason to be able to trade. If a service asks for the master password to read your history, that is a question worth asking them directly.
With a read-only connection the journal can poll continuously, which means closed trades appear without you doing anything, and open positions can be shown live.
A small expert advisor or script running in your terminal pushes deals to the journal as they happen. It sees everything the terminal sees, including modifications as they occur, and it requires no credentials at all because it is already inside the session.
Its weakness is the familiar one: it only runs when the terminal runs. Close MetaTrader for a week and the week is missing until the next backfill.
Most services that sync continuously use one of the last two and backfill history on first connection.
WARNING
Whatever route you choose, check what the service stores and for how long, and whether the connection is genuinely read-only. Read-only access to an account is still access to a complete picture of your trading, and that is worth treating as sensitive even though it cannot place an order.
The first sync is the only time you will care enough to check, so check properly.
If all six pass, the derived statistics are worth reading. If any fail, fix it before you look at a single chart, because a wrong number presented confidently is worse than no number.
The case for automation is not that it is more accurate in principle — a carefully kept spreadsheet is accurate. It is that the spreadsheet stops getting kept in exactly the weeks you most need the record: the busy ones, the losing ones, the ones where you broke a rule and did not feel like writing it down.
The case against blind automation is the last row. A synced journal can be confidently wrong in ways a spreadsheet cannot, which is why the six checks above are not optional.
Keep it to what MT5 cannot supply and what you will actually do:
Four fields, a few seconds each. Everything else the platform already knows.
For the capability boundary in general — which fields any broker feed can fill and which four only you can — read automated-trading-journal-what-it-captures. If you are choosing between keeping the record by hand and connecting an account at all, trading-journal-guide makes that argument.