NinjaTrader 8 ships with the most flexible export grid of any retail futures platform — almost every panel can right-click → Excel or CSV. That power is also the trap: there are at least three different "trade history" grids that export different rows, two columns that look identical but mean different things, and a rollover-symbol quirk that silently splits your ES history into a dozen pieces. This guide walks the clean path.
NinjaTrader 8 has more built-in performance views than any other retail futures platform — Account Performance, Trade Performance, Strategy Analyzer, the Control Center's grids, even Market Replay's own log. But none of them give you a record you can take with you, version, or analyze against rule mechanics. The CSV does:
NinjaTrader 8 is desktop-only (Windows; Mac users run it under Parallels or a Windows VM). Every grid in NT8 supports a right-click export, but the right grid to start with for journaling is Account Performance → Trades:
If it's not already visible, NT8's main menu bar has a "Control Center" entry. Account Performance, Orders, Executions, and Positions all live under the Control Center's tabs.
Inside Account Performance you'll see sub-tabs — Summary, Trades, Orders, Executions, and an equity chart. The "Trades" sub-tab is the closest thing NT8 has to a round-trip ledger and is the right starting point for almost every journal.
At the top of the Trades grid, pick the account (or "All Accounts" if you're auditing across the whole NT8 install) and a date range. For prop-firm review, set the range to match your evaluation or payout cycle. The grid updates live as you change filters.
NinjaTrader's export menu is hidden in the right-click context menu of every grid, not in the toolbar. Right-click any row → "Excel" exports to a working .xlsx; "CSV" writes a comma-separated file. CSV is what almost every journal expects.
Open the file (Excel, LibreOffice, or any text editor) and compare the row count against the Trades grid's total. If they don't match, your grid filters are different from what you exported (a common gotcha — filters live on the grid, not the export dialog).
NT8 splits the same trading day across three different grids, and the difference matters for your journal:
Column names and order vary slightly by NT8 build and by data-feed connection. These are the fields that consistently appear in the Trades export — verify yours and map them to whatever tool you import into.
| Column (typical name) | What it means | Why it matters |
|---|---|---|
| Instrument | The futures contract with rollover suffix (ES 03-26, NQ 06-26, MES 09-26) | If you trade rollovers, the instrument string changes every quarter — group by root in your journal, not by the full instrument label |
| Account | The NT8 account name (Sim101, your Topstep XFA, Apex eval, etc.) | NT8 will happily mix sim + live accounts in a single export — filter on this column before any P&L math |
| Strategy | The strategy that opened the trade ("Manual" for hand-clicks, the strategy name for automated) | If you run an ATM + manual hybrid, this column is how you separate the two for honest performance review |
| Market pos. | Long or Short — for the round-trip | Cleaner than fill-level Buy/Sell because it reflects the actual trade direction |
| Quantity | Contracts in the round-trip | For a 4-contract entry exited as 2+2, this is still 4 — NT8 aggregates at the trade level |
| Entry price / Exit price | Qty-weighted average prices for the open and close legs | Already aggregated across partial fills — saves you the math the Tradovate CSV makes you do |
| Entry time / Exit time | Round-trip start and end timestamps, in NT8's configured timezone | NT8 timezone usually matches your data feed's session timezone (CT for CME), not your local PC clock — verify before importing |
| Profit / Cum. profit | Net P&L for the trade and the running total | Profit is per-trade; Cum. profit is the column to use for an equity curve |
| Commission | Per-trade commission as configured in NT8's commission template | If your commission template is wrong or missing, this column lies — verify against your broker's monthly statement before trusting cumulative net P&L |
| MAE / MFE | Max adverse excursion + max favorable excursion (in points or currency, per your settings) | The single most under-used pair of columns in any NT8 export — perfect for "how much did I leave on the table" + "how close did I come to my stop" analysis |
Profit column. It should equal the total P&L shown in the Account Performance Summary for the same date range and account filter. If it doesn't, you're either missing rows, double-counting (sim + live mixed in), or your commission template changed mid-period.
Most "my NT8 numbers don't match my journal" tickets trace back to one of these three.
NT8 uses contract-specific instrument labels (ES 03-26, ES 06-26, ES 09-26) rather than a continuous symbol. Every quarter your ES trading splits into a new row of the instrument list, and if your journal groups by full instrument label rather than root, your equity curve looks like four small histories instead of one continuous one.
ES NN-NN instrument to the root ES. Same for NQ, MES, MNQ, RTY, etc. Aurafy does this automatically. If you're scripting in Excel, a simple split-on-space → take first token does it.
NT8 lets you "Export All Accounts" in one click, which silently merges your Sim101 practice account with your funded XFA. Sim P&L isn't real, but the export doesn't flag it as fake — every row looks the same. A journal that imports an "all accounts" CSV with no filter shows you an inflated equity curve that includes thousands of sim-money trades.
Account column ruthlessly before any P&L math.
NT8 displays and exports timestamps in the timezone configured under Tools → Options → General → Time zone — which for most CME-focused data feeds defaults to America/Chicago, not your local time. A 9:30 AM ET trade exports as 8:30 AM CT. If your journal assumes the CSV is in UTC or local time, every session-time analysis will be off by an hour or more.
NT8 exports go in cleaner than Tradovate's because the Trades grid already aggregates fills into round-trips. But these cleanup steps still pay off if you're scripting, exporting into Notion / Sheets, or moving between journals:
Entry time and Exit time to ISO 8601 with an explicit timezone offset (2026-06-02T08:30:00-05:00). Most downstream tools read this cleanly.root column derived from the instrument (ES 03-26 → ES). All cross-quarter analysis groups by root.Aurafy's NinjaTrader 8 importer maps rollover instruments to roots, filters out sim accounts when asked, normalizes the data-feed timezone, and overlays MAE/MFE on the chart at the time of the trade. Drag the CSV into your account, pick the timezone if asked, and your trades land grouped by round-trip with R-multiples, prop-firm rule tracking, and chart context already overlaid. Free tier — 1 account, 30 days of history, no card required.
Start importing free More on Aurafy + NinjaTraderOnce your CSV is in a journal, a few free Aurafy tools layer prop-firm rule math on top of any NT8 trade history — no signup required:
Account Performance is closer to a journal than Tradovate's Performance view — you get MAE/MFE, an equity curve, and trade-level commission. But it tags nothing (no setup labels, no playbook column, no chart screenshots tied to trades), and it doesn't compute R-multiples or track prop-firm rules. For execution monitoring it's enough; for learning your edge across months, you'll outgrow it.
Yes — NinjaScript can read SystemPerformance.AllTrades and write a CSV with any column layout you want. For one-off journal exports this is overkill; the right-click → CSV path takes ten seconds. For automated nightly exports into a long-term database, NinjaScript is the right path. Aurafy and most journals import the right-click CSV, not the NinjaScript output, so the two flows don't compete.
Two reasons usually. First: prop-firm dashboards compute P&L net of the firm's commissions + exchange-fee schedule, which may differ from NT8's commission template. Second: post-August-2024, Topstep accounts on NinjaTrader 8 require the TopstepX DLL — and TopstepX's dashboard is the canonical P&L source, with NT8's local Profit column potentially trailing it by minutes. When the two disagree, the firm's dashboard wins for funded-account rule tracking.
Same flow, separate accounts. If your prop firm exposes both inside NT8, the Trades grid shows them as separate Account entries and you export them one at a time. Never combine eval and funded data in a single journal view if you're analyzing rule-survival rates — they have different rule sets and different psychological pressures.
The Trades view does not (only round-trips that actually filled). The Orders view does. If you want to audit how often your stops or limits got cancelled before filling — a useful execution-quality metric — pull the Orders view separately, and never mix the two CSVs.
No. NT8's CSV export is grid columns only — no screenshots, no Chart Trader notes, no NinjaScript variables. If you need screenshots tied to trades, capture them outside NT8 (Aurafy's recorder is one path) and key them by entry timestamp in your journal.
The export path is identical — the data feed only changes the live ticks, not how the Trades grid records them. Where it does matter: with Rithmic-routed accounts, the multi-firm-on-one-Rithmic-login workflow lets you trade Apex + Bulenox + MFFU under one NT8 install, and each will show up as its own Account row in the export. See our Rithmic journal guide for the multi-firm workflow.
Yes — the Trades grid and right-click export work identically on the free sim build. This means you can practice the journal workflow on Sim101 before your first funded day. The only difference: sim trades have Sim101 in the Account column, which makes filtering them out trivial later.
Aurafy imports the standard NT8 Trades export, maps rollover instruments to roots, filters sim from live, normalizes the data-feed timezone, computes R-multiples per trade, and overlays everything on the chart at the time of the round-trip. Topstep / Apex / MFFU / TPT / Tradeify / Bulenox / Earn2Trade rule tracking included. Free tier — 1 account, 30 days history, no card.
Start free — no card See pricing