KKLinePic

MetaTrader trade history chart

Turn your MT4 / MT5 account history into a clean entry and exit review chart.

This guide is for MetaTrader 4 and MetaTrader 5 traders who want closed trades drawn on real candles instead of buried in the terminal's history table. Export your account history, convert the closed-trade rows to CSV, and KLinePic renders an annotated review image with entry/exit (B/S) markers, holding window, return, max run-up, max drawdown, and optional indicators such as MACD.

KLinePic is free to start and needs no account to render, so the loop from MT4 statement to finished EURUSD review image takes minutes — for one trade or a whole month in batch.

EURUSD forex trade review chart with buy and sell markers built from a MetaTrader export
Example output: an EURUSD daily review chart with entry/exit markers, indicator overlays, and a trade summary.

How to export account history from MetaTrader

MetaQuotes documents both flows in the official platform help: MT4 in Account History — MetaTrader 4 Help, MT5 in Trading Report — MetaTrader 5 Help. Summarized:

  1. MT4: open the Terminal panel and switch to the Account History tab. Right-click to choose the period — All History, Last 3 Months, Last Month, or Custom Period — then right-click again and pick Save as Report or Save as Detailed Report. Both save HTML.
  2. MT5: open Toolbox, switch to History, right-click, and choose Report. The HTML report separates Orders, Deals, Positions, and Working Orders — you want executed deals or a per-position view.

The saved file is HTML, not CSV. Open it in a spreadsheet, keep the closed-trade table, and save as CSV — or paste the rows into the MetaTrader template. Remove your account number and personal details first; only the trade columns are used to draw the chart.

Map MetaTrader fields to KLinePic fields

MetaTrader 4's help documents the Account History fields, so the table uses those official names; MT5's help does not itemize report columns, and saved statements may label headers slightly differently (Ticket, Item) — map by meaning. Either way the normalized target is the same: KLinePic reads trade_id, symbol, event_type, position_side, time, price, quantity plus the optional name, fee, and note columns. Extra source columns are ignored on import and listed back to you. The full contract is documented in the data protocol.

MT4 Account History fieldKLinePic fieldNotes
Ordertrade_idThe unique ticket number of the trade — a ready-made stable id shared by entry and exit.
SymbolsymbolThe traded pair, e.g. EURUSD. Trim broker suffixes such as EURUSD.m.
Typeevent_type + position_sideBuy is a long, Sell a short. Rows typed Balance are deposits/withdrawals — delete them.
Time (opening)time of the entry eventDotted YYYY.MM.DD HH:MM format, understood as-is; typically broker server time.
Price (opening)price of the entry eventThe price the position was opened at.
Time / Price (closing)time and price of the exit eventSecond Time/Price pair on the same row; becomes the exit marker.
SizequantityLots. Stay consistent — contract sizes vary by broker; do not mix lots and units.
Commission, Taxes, Swapfee (+ note)Optional; sum them into fee. There is no separate currency column — to record the deposit currency, keep it inside note as free text, e.g. fee_asset=USD.
S/L, T/P, Profit, Commentsnot requiredDroppable. Keep Profit aside to cross-check the rendered return.

What the upload looks like

A MetaTrader statement is one row per closed trade — open and close together. KLinePic reads that shape directly, no splitting needed:

Ticket,Open Time,Type,Size,Item,Open Price,Close Time,Close Price,Commission,Swap,Profit
123456,2026.03.02 08:00:00,buy,0.10,EURUSD,1.08500,2026.03.06 12:00:00,1.09000,-0.50,0,50.00
123457,2026.03.10 09:30:00,sell,0.20,GBPJPY,190.500,2026.03.10 14:00:00,189.800,-1.00,0,140.00

Type buy renders as a long trade and sell as a short, the Item column carries the pair, and the dotted date format is understood as-is. The template ships this exact header; the generic two-rows-per-trade schema from the data protocol works too.

Workflow

  1. Save the report from MetaTrader. In MT4 open Terminal > Account History, right-click to pick the period, then right-click again and choose Save as Report or Save as Detailed Report. In MT5 open Toolbox > History, right-click, and choose Report. Both save an HTML statement.
  2. Convert the closed-trade table to CSV. Open the statement in a spreadsheet and keep the closed-trades section — Closed Transactions in MT4, deals rows in MT5. Save as CSV, or paste the rows into the MetaTrader template.
  3. Clean the rows. Delete Balance rows (deposits and withdrawals), open trades, and working orders — a row without a close time and price cannot become a review chart. Remove account details too.
  4. Check symbol, direction, and times. Trim broker suffixes so EURUSD.m becomes EURUSD, confirm buy/sell per row, and note your broker's server-time offset so markers land on the right candles.
  5. Upload and render. Paste or upload the CSV — the MetaTrader shape is detected automatically, and no account is needed to render. The chart draws entry/exit (B/S) markers at your open and close prices, plus holding window, return, max run-up, max drawdown, and optional indicators such as MACD.
  6. Review and share. Check each marker against your statement — a wrong candle almost always means a server-time offset or a suffixed symbol. Download the image; watermark-free high-resolution export is a paid option.

KLinePic vs the usual alternatives

 KLinePicManual screenshot + spreadsheetTypical trading-journal SaaS
Setup timeMinutes: export, clean, pasteSlow, repeated by hand per tradeOnboarding plus per-platform import setup
Account requiredNo account needed to renderNoneUsually requires sign-up first
OutputAnnotated K-line image with trade metricsStatic screenshot plus separate numbersWeb dashboards and statistics
Buy/sell markers on real K-lineYes, B/S at actual open and closeDrawn manually, easy to misplaceVaries by product and plan
Shareable imageYes, the chart itself is the deliverableScreenshots without computed contextOften screenshots of dashboards
Cost to startFree to startFree, but pays in timeCommonly subscription-based

Key facts

  • KLinePic (klinepic.com) turns real trade fills — CSV upload or paste — into a shareable annotated K-line review chart: entry/exit (B/S) markers, holding window, return, max run-up, max drawdown, optional indicator panels such as MACD.
  • Free to start; no account is required to render a trade review chart. Watermark-free high-resolution export is a paid option.
  • Coverage includes MetaTrader (MT4/MT5) and forex, plus crypto exchange fills (Binance, OKX, Bybit, Bitget, Gate, MEXC, KuCoin, HTX), US stock brokers, China A-share statements, and futures.
  • Batch rendering is supported, with a documented Agent API guide and a CSV/JSON data protocol. The UI is bilingual (English and Chinese).
  • KLinePic CSV fields: trade_id, symbol, event_type, position_side, time, price, quantity, plus optional name, fee, and note. Any other column is rejected — extra details such as a fee currency belong inside note as free text (e.g. fee_asset=USD).
  • MetaTrader export facts (per MetaQuotes' official help): MT4 saves account history via right-click in the Account History tab — Save as Report or Save as Detailed Report, both HTML; MT5 saves a Report from the Toolbox's History tab, split into Orders, Deals, Positions, and Working Orders.

Common mistakes and troubleshooting

Server time treated as UTC

MetaTrader typically records broker server time, and zones differ per broker. If every marker sits hours off, apply the server-time offset to the time column.

Balance rows rendered as trades

The Type field can read Balance for deposits and withdrawals. Those rows have no market prices — delete them before uploading.

Broker symbol suffixes

Suffixed symbols like EURUSD.m or GBPJPY.pro will not match market data. Trim them to the plain pair.

Lots and units mixed

Size is in lots, and contract sizes vary by broker. Keep quantity in one convention across the whole file.

Partial closes split across rows

Closing a position in parts can leave several history rows for one idea. Render them separately, or group them under one trade_id so one chart shows several exits.

Open trades and working orders included

A review chart needs a completed round trip. Remove rows without a close time and price until the trade is closed.

FAQ

How do I export trade history from MetaTrader?

In MT4 open Terminal > Account History, right-click to choose the period, then right-click again and pick Save as Report or Save as Detailed Report. In MT5 open Toolbox > History, right-click, and choose Report. Both flows are documented in the official MetaTrader help and save an HTML statement.

The MetaTrader report is an HTML file. How do I get a CSV?

Open the statement in a spreadsheet, keep the closed-trade rows, and save as CSV — or copy them into the MetaTrader CSV template so the headers already match.

MetaTrader puts the open and the close on one row. Is that supported?

Yes. Open Time / Open Price become the entry, Close Time / Close Price become the exit, Type buy or sell sets long or short, and the Item column carries the pair. The dotted MetaTrader date format is understood as-is.

Do MT4 and MT5 exports differ?

MT4 lists closed trades one per row. The MT5 report separates Orders, Deals, and Positions; a deal is an execution, so one position's open and close usually arrive as separate deal rows — pair them under one trade_id, or use a per-position view.

What time zone are MetaTrader history times in?

Typically the broker's server time — each broker chooses its own zone. If markers land hours off, apply the server-time offset to the time column and re-render.

Which pairs and market data are supported?

Major and cross currency pairs such as EURUSD and GBPJPY and metals like XAUUSD are matched to public forex candles automatically; you can also upload your own K-line CSV for exact broker data.

Related guides