Skip to content
Home Workflows Import trades from MetaTrader
Workflow Imports MetaTrader

Import trades from MetaTrader without losing cost data

Export the right MetaTrader report, normalize timestamps/symbols, clean partial fills, and map columns so your trading journal stays net and comparable.

Quick answer

Export Account History with commissions/swap, clean, map, import. Save Account History/Detailed Report to CSV, convert server time to your timezone, normalize symbols (remove suffixes), combine partial closes, keep commission/swap columns, then map ticket, time, symbol, type, volume, price, commission, swap, and profit into your journal.

Time: 10–15 minutes Difficulty: Easy Outcome: Clean MetaTrader CSV ready for ProfitPulse

What you’ll learn

A clean MetaTrader import prevents broken analytics. Export the right report, normalize timestamps and symbols, and keep costs attached so net P&L and R-multiples stay honest.

Best for
Best for
MetaTrader futures traders who want accurate, net P&L journaling.
Non-negotiables
  • Always import net numbers (include commissions/fees).
  • Standardize symbols (ES/MES, NQ/MNQ) and timezones before mapping.
  • Combine partial fills to avoid duplicate trades.

Overview

MetaTrader exports are straightforward once you know which columns matter. This guide shows exactly what to export, how to normalize, and the field mapping to keep metrics intact.

You’ll finish with a CSV that matches your statement and flows into ProfitPulse without manual clean-up.

Pro tip

Save a mapping template once; reuse it daily for fast imports.

What you need before you start

Collect these inputs before you start.

Inputs
  • MT4/MT5 Account History CSV with commissions and swap.
  • Account timezone and target journal timezone.
  • List of canonical symbols (ES, MES, NQ, MNQ, CL, MCL).
Tools
  • ProfitPulse CSV import template.
  • Spreadsheet or CSV editor.
  • MetaTrader statement for P&L cross-check.

Shortcut: If you want this workflow automated, use a trading journal app that supports imports + analytics (ProfitPulse).

Step-by-step: import MetaTrader trades without losing costs

Follow these steps to go from MetaTrader export to a clean, net P&L journal entry.

  1. 1

    Export your MT4/MT5 Account History (with commissions and swap)

    Open Account History (MT4/MT5), choose the date range, then Save as Report/CSV with commissions and swap included.

    • Export Account History/Detailed Report, not the Orders-only view.
    • Include commission, swap/financing, and account/order columns.
    • Export a detailed statement for later cross-check.
    Goal: You have an Account History CSV/report with commissions and swap for the correct dates.
  2. 2

    Normalize timezone and symbols

    Convert broker/server time to your journal timezone and normalize symbols (remove suffixes like .r or .pro).

    • Apply timezone conversion from broker server time to your review timezone (account for DST).
    • Normalize symbols (e.g., EURUSD.r → EURUSD; US30.cash → US30).
    • Keep account/accountId columns if you use multiple accounts.
    Watch for: Wrong timezones or symbols create duplicate trades and broken stats.
  3. 3

    Combine partial fills and costs

    Group partial closes by ticket/position. Calculate weighted average prices and sum commission/swap once per side.

    • Aggregate entries and exits separately if you scale in/out.
    • Add commission/swap after grouping so you don’t double-count costs.
    • Flag any manual adjustments you make.
    Done when: Each ticket has one entry and exit with net costs (commission + swap) attached.
  4. 4

    Map fields to your journal

    Line up MetaTrader columns to journal fields so analytics work immediately.

    • Time → execution time (converted); Ticket → order ID/position.
    • Type → long/short; Volume (lots) → size; Symbol → normalized symbol.
    • Price → entry/exit; Commission/Swap → costs; Profit → reference (net/gross).
    MetaTrader column Map to journal Notes
    Time execution_time Convert broker/server time to target timezone.
    Ticket order_id Use to merge partial closes.
    Symbol symbol Normalize (remove suffix like .r, .pro).
    Type side (long/short) Use buy/sell or 1/-1 consistently.
    Volume (lots) size Convert to your journal units if needed.
    Price entry_price / exit_price Weighted average if scaled.
    Commission / Swap costs Sum once per side after grouping.
    Profit net_pnl Reference net result (commission + swap).
    Goal: Columns align to your journal schema.
  5. 5

    Validate net P&L and metrics

    Cross-check totals before finalizing so analytics are trustworthy.

    • Compare CSV net P&L to the MT4/MT5 detailed statement for the same dates.
    • Spot-check 3–5 trades for correct side, volume, price, commission, and swap.
    • Confirm your journal handles lot size conversion the way you expect.
    Done when: Net P&L and counts match your statement.
  6. 6

    Save the template and repeat

    Lock in your mapping so daily imports are a two-minute task.

    • Save the cleaned CSV as a template with formulas for conversions.
    • Set a recurring reminder post-session to export and import.
    • Automate imports in ProfitPulse once you’re confident in the mapping.
    Outcome: Reliable, repeatable imports.
Checklist (copy/paste)

Run this every time you import.

  • Export Account History CSV with commissions/swap.
  • Convert timezone and normalize symbols.
  • Combine partial fills; attach costs once.
  • Map fields and validate P&L vs statement/report.

Common mistakes (and how to avoid them)

Dropping commissions/fees

Skipping commission or swap columns makes profit factor and expectancy meaningless.

Wrong timezone

Leaving server time unconverted offsets trades and messes up session tags.

Symbol drift

Leaving suffixes (.r, .pro) or broker-specific names unnormalized splits stats and duplicates trades.

No validation vs statement

If you skip the net P&L cross-check, your journal can drift from reality without you noticing.

Metrics that matter (so you don’t “review by vibes”)

If your workflow touches performance, anchor your review to real metrics like profit factor, expectancy, net P&L, R-multiples, and drawdown.

Troubleshooting

My CSV doesn’t show commissions-where do I get them?

Export Account History/Detailed Report (with commission/swap) or add those costs before importing.

Partial fills are creating duplicate trades.

Group by order ID and side, use weighted averages, and sum costs once.

My timestamps are off by hours.

Check broker server time vs your review timezone and daylight savings. Convert once for all rows before importing.

Lot sizing feels off after import.

Confirm the CSV volume column (lots) is converted to your journal units. Set the right contract size/multiplier in your journal settings.

Frequently asked questions

Which MetaTrader report should I export?

Open Account History, select the date range, and export the Detailed Report/CSV with commission and swap included. Keep it for cross-checking net P&L.

Does MetaTrader include commissions and swap in the CSV?

Yes-Account History/Detailed Report includes commission and swap columns. Keep them so the journal reflects net P&L.

How do I handle partial fills?

Group rows by ticket/position, compute weighted average prices for entry/exit, and sum commission/swap once before importing.

How often should I import MetaTrader data?

Daily is best-export after the session so costs and context are fresh. Weekly is okay if you keep a consistent mapping template.

Can I import multiple accounts or hedged positions?

Yes. Keep account IDs and ticket numbers so you can filter by account and merge hedged legs by ticket.

How do I handle symbol suffixes (.r, .pro, .cash)?

Strip broker suffixes (EURUSD.r → EURUSD) and map cash/CFD symbols to your journal equivalents before import.

Next step

Turn this workflow into a system.

ProfitPulse is a trading journal app built for cost-aware, risk-weighted review. Import trades, tag setups, track net P&L, and review edge using expectancy, profit factor, and drawdown.