The fastest way to kill a new trading journal is to start it by typing in six months of history. Nobody finishes. The second fastest is to skip the history and start from zero, which means the journal says nothing useful for a month. The way out is an import: export the trades your platform already has, bring them in once, tag them in bulk, and start logging new trades by hand from there. This guide covers the exports platform by platform and the checks that keep an import from quietly corrupting your statistics.

Before you export: decide the time zone

Every platform stamps trades in its own clock. MetaTrader uses the broker's server time, often GMT+2 or GMT+3 and sometimes changing with daylight saving. Binance exports in UTC. TradingView uses the time zone set on the chart. Your journal wants everything in one zone, usually yours, so that "trading day", session labels and hour-of-day breakdowns mean the same thing across accounts.

So the first question any import should ask is: what time zone is this file in? Answer it per file, not per account; the same broker can change server time between years.

MetaTrader 4 and MetaTrader 5

MetaTrader has no public API, so the report is the way out. Menu names vary slightly between builds and brokers.

MetaTrader 4. In the Terminal panel open the Account History tab, right-click, choose the period (All History for a first import), then right-click again and pick Save as Detailed Report. The result is an HTML file with every closed order, its open and close time and price, size, commission, swap and profit.

MetaTrader 5. In the Toolbox open the History tab, set the period, right-click and choose Report, then save as HTML (or Open XML). MT5 lists deals rather than orders; a good import groups the deals of one position into one trade, which matters when the position was closed in parts.

Both reports contain the symbol as the broker names it (EURUSD, EURUSD.m, XAUUSDc). Keep the broker's name as the symbol and let the journal map it to a contract size; renaming by hand creates duplicates on the next import.

Binance spot and futures

Binance keeps spot and futures history in different places and formats.

Spot. Orders, then Spot Order, then Trade History, then Export. Choose the range (a maximum window per export applies; do several if you need a year) and download the CSV. Each row is a fill, with pair, side, price, executed quantity, fee and the fee asset.

USDⓈ-M futures. Orders, then Futures Order, then Trade History, then Export. Rows are again fills, with realised P&L per fill. An import should combine the fills that opened and closed one position into one trade, otherwise every partial fill shows up as a separate win or loss and the win rate is meaningless.

Fees in a different asset (BNB) are the usual trap. Decide once whether the journal converts them or ignores them, and apply the same rule to every import.

TradingView: list of trades

TradingView does not export your broker's fills directly, but if you trade through a connected broker or test a strategy, the Strategy Tester has a List of Trades tab with an export button (CSV). Each trade appears as two rows, entry and exit, with date, price, contracts and profit. Time is in the chart's time zone, which is the one to pick when the import asks.

Any other broker: a CSV with a column mapping

For everything else, export whatever CSV the platform offers and map the columns. The minimum a journal needs per trade:

  • open time and close time (or one timestamp if the platform only has one)
  • symbol
  • direction
  • entry price and exit price
  • quantity
  • fees
  • net result, if the platform provides one, so the import can check it against the prices

Optional but valuable: stop loss and take profit at open, since those make R-multiples and exit analysis possible. If your old spreadsheet has them, map them.

What a good import checks before writing anything

  1. A preview with a handful of parsed trades, so a wrong column mapping or a wrong time zone is caught before two hundred rows are written.
  2. Duplicates. Re-importing the same report, or an overlapping range, must not create copies. The import should recognise trades already in the journal by their platform id, or by symbol, time and size when there is no id.
  3. Fills grouped into trades. Partial entries and partial exits under one trade, with the average price available but the fills preserved.
  4. Contract multipliers. One NQ point is $20; a forex lot is 100,000 units. If the platform gives a profit figure, the import can compare it with the computed one and flag the rows where they disagree.
  5. Open positions. A trade that is still open in the platform should arrive as an open position, not as a closed trade with a zero result.

After the import: tag in bulk

The import gives you numbers. The tags give you the lessons, and tagging two hundred trades one at a time is almost as bad as typing them. Do three passes from the trades table with multi-select:

  • Strategy. Sort by symbol and time, select the trades of each setup, assign the strategy tag. Ten minutes.
  • Mistakes. Sort by result, start from the biggest losers, tag the ones you remember. Do not invent memories for the rest; "no tag" is honest.
  • Sessions. These should be assigned automatically from the close time and your time zone; if your journal does not do it, skip them.

Then open the analytics page. The first import is usually the most informative review a trader ever does, because it is the first time the history is in one place with the arithmetic done right.

Doing it in SetupBook

Trades, then Import. Choose the source (MetaTrader 4 statement, MetaTrader 5 report, Binance spot or futures history, TradingView list of trades, SetupBook's own CSV, or any CSV with a column mapping), pick the file's time zone, check the preview and confirm. Trades already in the journal are skipped, fills are grouped, and symbols keep their own contract multipliers. Afterwards the trades table lets you select many rows and set the strategy, mistakes, setup quality or session for all of them at once. The import section of the user guide has screenshots for each source, and the free account has no limit on how much history you bring.