The copy-paste tax nobody budgets for
MetaTrader is still where a huge share of retail forex and CFD trading happens, and it keeps a complete record of every position you close. The problem is getting that record out in a form you can actually study. Most people end up squinting at the terminal, retyping entry prices into a spreadsheet, fumbling the lot size, and giving up after a week. The trades were journaled perfectly by the platform; the human in the loop was the weak link.
You do not need to copy-paste anything. Both MT4 and MT5 can export a detailed statement of your closed positions in one click, and that file is a clean, structured record you can turn into a journal directly. Here is how to pull it, the one setting that trips almost everyone up, and what to do with the file once you have it.
Exporting a detailed statement from MT4
In the MT4 desktop terminal, open the Terminal panel at the bottom of the screen and click the Account History tab. Right-click anywhere in that tab and you'll see a small menu. First choose the period you want — All History is the honest choice, because a journal built from your best month only lies to you. Then right-click again and choose Save as Detailed Report.
“Detailed Report” matters. The plain Save as Report option gives you a thinner summary; the detailed version keeps the open and close times, prices, volume, swap, commission and profit for each position. MT4 saves it as an .htm file. Don't be put off that it's HTML rather than a spreadsheet — every row you need is in there, and an importer reads it far more reliably than your eyes read the terminal.
Exporting from MT5
MT5 is similar but tidier. Open the Toolbox at the bottom, click the History tab, and set the date range at the top-left (drag it back far enough to cover your whole account, not just this week). Right-click in the History tab and choose Report, then export — MT5 will offer XLSX or HTML. The spreadsheet export is convenient, and it separates Deals from Orders, which becomes important in a moment.
Whether you trade on MT4 or MT5, the statement is the source of truth you want to journal from — not a manual note you jot down at the end of the session, when the losing trades are the ones you conveniently forget.
Deals versus positions: MT5's netting trap
A quick word on MT5, because it catches people out. MT5 records individual deals — each buy or sell fill — rather than tidy round-trip positions. Depending on whether your account is hedging or netting, a single trade idea can appear as several deals that have to be paired up to compute the real profit and loss on the position. MT4, by contrast, groups things into closed positions more directly.
This is exactly the kind of accounting that a spreadsheet does badly and quietly. If you're matching fills by hand you will mis-pair some of them, and your win rate and average loss will be wrong in ways you never notice. Let software do the round-trip pairing; it's deterministic work that machines don't get bored doing.
The server-time trap
Here is the setting that ruins more forex journals than any other: the timestamps in your MT4 or MT5 statement are in your broker's server time, not your local time. Most forex brokers run their servers on a GMT+2 or GMT+3 offset (roughly aligned to the New York close), which means the numbers next to your trades can be several hours away from the clock on your wall.
Why does that matter for a journal? Because almost every useful pattern in trading is time-shaped. “I lose money in the first thirty minutes after London opens.” “My revenge entries cluster right after the New York lunch lull.” If your timestamps are silently offset by three hours, every one of those conclusions points at the wrong session, and you'll change the wrong habit. Before you trust any time-of-day analysis, find out your broker's server offset (it's usually in the account details or a quick support question) and note it. A good importer lets you set that offset once so every trade lands in real time.
Turning closed positions into a journal
A raw statement is a ledger, not a journal. It tells you what happened but nothing about why. The point of journaling is to attach the story to the numbers so the expensive habits become visible and, eventually, priced. Once your positions are imported, the work is small and repeatable:
- Tag the behaviour, not just the pair. “Traded through news”, “oversized”, “revenge entry”, “moved my stop” — tagged per trade and totalled per month. Revenge entries: −$1,180 this month is not a feeling; it's a bill.
- Read the timestamps in real time. With the server offset corrected, group your results by session and by the gap between one stop-out and the next entry. Tilt shows up in the clock before it shows up in the equity curve.
- Watch position size drift. If your average lot size this month is double last month's with no change in strategy, that's a story worth writing down before the account writes it for you. There's more on this in our note on risk per trade and lot sizing.
None of this predicts the next trade, and it isn't meant to. A journal is a rear-view mirror: it studies your own past positions so the same mistake costs you once instead of monthly. The drawdown that ends a forex account is almost never a single bad idea — it's the same behaviour, repeated, as we cover in the drawdown spiral.
Skip the retyping entirely
This is the whole reason PnL Book exists for forex traders: drop in the detailed statement you just exported, set your broker's server-time offset once, and every closed position is paired, priced and ready to tag — no cell-by-cell copy-paste, and no lost trades. If you're chasing a funded-account payout, the same import turns your evaluation history into a running tally of what each habit is quietly costing you. You can import an MT4 or MT5 statement here and see your own numbers, honestly, in the currency you actually trade in.