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

Import trades from NinjaTrader without losing cost data

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

Quick answer

Export Trade Performance with commissions, clean, map, import. Grab the Trade Performance CSV, convert timestamps, standardize symbols, combine partial fills, keep commissions/fees columns, then map timestamp, account, symbol, side, qty, price, and costs into your journal.

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

What you’ll learn

A clean NinjaTrader 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
NinjaTrader 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

NinjaTrader 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
  • NinjaTrader Trade Performance CSV with commissions/fees.
  • 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.
  • NinjaTrader 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 NinjaTrader trades without losing costs

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

  1. 1

    Export your NinjaTrader trades (with commissions)

    Open Trade Performance → Trades, set your date range, and export to CSV with commissions enabled.

    • Use the Trade Performance export (Trades tab) with commissions turned on.
    • Include instrument, account, quantity, price, and commission/fee columns.
    • Export the Trade Performance summary for later cross-check.
    Goal: You have a Trade Performance CSV with commissions for the correct dates.
  2. 2

    Normalize timezone and symbols

    Convert timestamps to your journal timezone and normalize symbols so filters and charts align.

    • Apply timezone conversion from platform time to your review timezone (account for DST).
    • Rename symbols to canonical tickers (ES/MES, NQ/MNQ, CL/MCL).
    • 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 fills by order ID. Calculate weighted average prices and sum costs once per side.

    • Aggregate entries and exits separately if you scale in/out.
    • Add commissions/fees after grouping, not per line if they’re duplicated.
    • Flag any manual adjustments you make.
    Done when: Each trade has one entry and exit row with net costs attached.
  4. 4

    Map fields to your journal

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

    • Timestamp → execution time (converted); Account → account name/ID.
    • Symbol → canonical ticker; Side → long/short; Quantity → contracts.
    • Price → entry/exit; Commission/Fee → costs; Order ID → grouping.
    NinjaTrader column Map to journal Notes
    Timestamp execution_time Convert to target timezone.
    Account / AccountId account Keep if you trade multiple accounts.
    Symbol symbol Normalize ES/MES, NQ/MNQ, CL/MCL.
    Side side (long/short) Use buy/sell or 1/-1 consistently.
    Quantity size Contracts filled (after combining partials).
    Price entry_price / exit_price Weighted average if scaled.
    Commission / Fees costs Sum once per side after grouping.
    OrderId order_id Use to merge partial fills.
    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 NinjaTrader statement for the same dates.
    • Spot-check 3–5 trades for correct side, size, price, and costs.
    • Confirm micro vs e-mini multipliers match your journal settings.
    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 Trade Performance CSV with commissions.
  • Convert timezone and normalize symbols.
  • Combine partial fills; attach costs once.
  • Map fields and validate P&L vs statement.

Common mistakes (and how to avoid them)

Dropping commissions/fees

Skipping cost columns makes profit factor and expectancy meaningless.

Wrong timezone

Leaving platform timestamps unconverted offsets trades and messes up session tags.

Symbol drift

Mixing ES/MES or NQ/MNQ without normalization splits stats and doubles 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 the Trade Performance report (with commissions) or add commissions from your summary 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 platform timezone versus your review timezone and daylight savings. Convert once for all rows before importing.

Micros and e-minis show the same P&L.

Normalize symbols (MES vs ES) and confirm your journal uses the correct multiplier per instrument.

Frequently asked questions

Which NinjaTrader report should I export?

Open Trade Performance → Trades for the date range, enable commissions, and export. Keep the summary for cross-checking net P&L.

Does NinjaTrader include commissions and fees in the CSV?

Yes, the fills report includes commissions/fees columns. Keep them so the journal reflects net P&L.

How do I handle partial fills?

Group rows by order ID, compute weighted average price for entry/exit, and sum costs once before importing.

How often should I import NinjaTrader 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 sim and live trades together?

Yes, but keep the Account column so you can filter. Review sim separately so it doesn’t distort live performance metrics.

How do I handle micros vs e-minis?

Normalize symbols (MES/ES, MNQ/NQ, MCL/CL) and ensure your journal uses the correct tick value/multiplier per instrument.

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.