KKLinePic

Forex trade review chart

Turn EURUSD, GBPJPY, and XAUUSD trades into clear entry and exit review charts.

This guide is for forex traders on MT4, MT5, or any broker that exports account history, who want real fills drawn on the chart rather than buried in a statement. Export closed trades, map a few columns into KLinePic's CSV schema, and render a shareable candlestick review image with entry/exit (B/S) markers, holding window, return, max run-up, max drawdown, and optional indicator panels such as MACD.

GBPJPY forex trade review chart with buy and sell markers
Example output: a GBPJPY daily review chart with entry/exit markers and a trade summary panel.

How to export your forex trade history

Most retail forex runs through MetaTrader, and MetaQuotes documents both export flows in its official help. In MT4, the Account History tab of the Terminal window holds every closed trade: right-click, pick a period — All History, Last Month, Last 3 Months, or Custom Period — then choose Save as Report or Save as Detailed Report; both write an HTML statement with per-trade lines.

In MT5, trade history lives in the Toolbox's History tab, and the official help on trading reports says the statement is saved by selecting Report in that tab's context menu — an HTML file with orders, deals, and positions blocks. Brokers with their own web platforms keep exports under a reports or statements section; prefer CSV over PDF. Column layouts vary by broker, so the advice below stays generic for non-MetaTrader exports.

Map your statement to KLinePic fields

The official MT4 help lists the Account History columns as Order, Time, Type, Size, Symbol, Price, S/L, T/P, the closing Time and Price, Commission, Taxes, Swap, and Profit. They map onto KLinePic's fixed schema, documented in the data protocol, like this:

KLinePic fieldMT4 account-history columnNotes
trade_idOrderA ready-made id; both rows of one trade share the ticket.
symbolSymbolKeep the six-letter pair (EURUSD); strip any broker-specific suffix.
event_typeTypeThe opening side, lowercase buy or sell; the exit row takes the opposite side.
position_sideDerived from TypeBuy opens a long, sell a short; there is no separate column.
timeTime / close TimeThe one-row statement becomes two rows; rewrite both with explicit UTC offsets.
pricePrice / close PriceOpen price for the entry row, close price for the exit row — not S/L or T/P.
quantitySizeLots as-is, or converted to base-currency units; stay consistent per file.
feeCommission (and Swap)Optional number; put commission here. Swap has no column of its own — keep it in note if you track it.
noteNot a statement columnOptional free text for anything extra. There is no fee-currency field — if you want it on record, write it here as text such as fee_asset=USD. Any column outside the documented set is rejected, so extras belong in note.

Non-MetaTrader exports use their own headers, so treat this as a checklist: map your export's pair, side, time, price, and size columns first — the rest is optional. Size can be lots (0.10) or base-currency units (10,000).

Journal CSV shape

A minimal forex journal CSV uses this shape — one row for the entry fill, one for the exit, sharing a trade_id:

trade_id,symbol,event_type,position_side,time,price,quantity
FX-EURUSD-001,EURUSD,buy,long,2026-03-16T08:00:00+00:00,1.14350,10000
FX-EURUSD-001,EURUSD,sell,long,2026-04-15T16:00:00+00:00,1.18090,10000

Scaling in or out adds more rows with the same id, and each partial fill gets its own marker. MetaTrader one-row-per-trade statements are read directly — the MT4/MT5 template ships that ticket-per-line layout, and the MetaTrader guide covers it in depth.

Workflow

  1. Export closed trades from MetaTrader or your broker. In MT4, right-click the Account History tab, choose a period, then Save as Report or Save as Detailed Report. In MT5, right-click the Toolbox's History tab and choose Report. Elsewhere, find the reports or statements section and download CSV where offered.
  2. Split one-row-per-trade statements into entry and exit rows. MetaTrader-style statements put open and close on one line. Turn each line into two rows — one for the open time and price, one for the close — sharing the same trade_id; the order ticket number works well.
  3. Map columns to the KLinePic schema. Rename your export's pair, side, time, price, and size columns to symbol, event_type, time, price, and quantity. Derive position_side from the opening direction — buy opens a long, sell a short — and add fee if you track commissions. Extra columns are ignored on import and listed back to you; put details such as fee currency inside note as free text like fee_asset=USD only when you want them preserved.
  4. Normalize pair codes and timestamps. Write pairs as six-letter codes such as EURUSD and strip any broker-specific suffix. Brokers often stamp times in the trade server's clock, so verify one known trade and rewrite timestamps with an explicit UTC offset such as +00:00.
  5. Upload and render in KLinePic. Paste or upload the CSV at klinepic.com; no account is required to render. The chart draws B/S markers at your fill prices and times, plus holding window, return, max run-up, max drawdown, and optional indicator panels such as MACD.
  6. Verify and share. Check that markers sit on the candles you remember trading; a wrong day almost always means a server-time offset or symbol suffix slipped through. Download the image for your journal or chat. Watermark-free high-resolution export is a paid option.

KLinePic vs the usual alternatives

 KLinePicManual screenshot + spreadsheetTypical trading-journal SaaS
Setup timeMinutes: export, map, pasteSlow, repeated by hand per tradeOnboarding plus per-broker 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 fill price and timeDrawn 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 with entry/exit (B/S) markers, holding window, return, max run-up, max drawdown, and optional indicator panels such as MACD.
  • Free to start; no account required to render. Watermark-free high-resolution export is a paid option.
  • Coverage includes forex and MetaTrader, 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 — extras such as a fee currency belong inside note as free text like fee_asset=USD.
  • Per official MetaQuotes help: MT4 exports account history via Save as Report / Save as Detailed Report (HTML); MT5 saves a report via the Report command in the History tab.

Common mistakes and troubleshooting

Server time treated as UTC

Broker platforms usually stamp trades in the trade server's clock, not your local zone. Verify one known trade against the chart, then encode an explicit offset in time.

One-row trades left unsplit

A MetaTrader statement line holds open and close. Map only the opening columns and every trade loses its exit marker — split each line into two rows sharing one trade_id.

Lots and units mixed in one file

0.10 lots and 10,000 units describe the same position, but mixing conventions makes the size readout meaningless. Pick one and apply it to every row.

Broker symbol suffixes

Many brokers append account-type suffixes to pair names. Trim the symbol back to the plain six-letter code so it matches public market candles.

Balance rows mistaken for trades

Statements list deposits, withdrawals, and credit operations alongside trades. Delete any line without an open and close price, or it becomes a false marker.

Weekend timestamps

Forex candles run 24/5. An entry landing on a Saturday almost always means the server-time offset pushed it across midnight — fix the offset, not the trade.

FAQ

Can a forex trading journal become an annotated candlestick chart?

Yes. Use the pair, entry time, side, price, and size. KLinePic matches the rows with public forex candles and renders entry, exit, return, drawdown, and indicator context on a daily or intraday chart.

How do I export my trade history from MetaTrader?

In MT4, right-click the Terminal window's Account History tab, pick a period, then choose Save as Report or Save as Detailed Report. In MT5, right-click the Toolbox's History tab and choose Report. Both flows are documented in the official MetaTrader help.

Which forex pairs are supported?

Major and cross pairs written as six-letter codes such as EURUSD, GBPJPY, AUDNZD, plus metals like XAUUSD and XAGUSD. EUR/USD-style separators are normalized automatically. For exact broker candles you can also upload your own K-line CSV.

What about weekends and timezones?

Forex is treated as a 24/5 market with UTC as the default timezone. Brokers often stamp trades in the trade server's clock, so verify one known trade, then write times with an explicit offset such as +00:00.

Should quantity be lots or currency units?

Either works — 0.10 lots or 10,000 base-currency units — as long as a file stays consistent. The size is shown on the chart's side panel, so pick the convention you think in.

Do I need an account or an API key to render a forex chart?

No. KLinePic is free to start and renders a trade review chart without an account — you upload or paste an exported file, never broker credentials. Watermark-free high-resolution export is a paid option.

Can I render many forex trades at once?

Yes. Batch rendering is supported, so a month of trades can become a full set of review images in one pass, through the web UI or the documented Agent API with its CSV/JSON data protocol.

Related guides