NinjaTrader 8 stores everything you have done, but it does not show it in a way that is useful for a journal. Here are the three ways to get your trades out: the Trade Performance report, the executions export and the local database. And, more importantly, what each one contains and what to check before trusting the numbers.

Trades and executions are not the same

An execution is a fill: an order that got filled, with its time, price and quantity. A trade is the pairing of an entry with an exit. If you buy 3 MES in one order and sell 1 + 2 in two orders, you have three executions and, depending on how they are paired, two trades (3 entered against exits of 1 and 2) or one full position. Partial fills, scaling and reversals are why two exports of the same day can produce different figures: it is not an error, it is a pairing decision.

For a journal, what you want to analyze are trades (decisions), but what guarantees the data is complete are executions (facts). It pays to have access to both.

Exporting from Trade Performance

It is the most direct way to get trades already paired, with profit, commission and maximum excursions:

  1. In the Control Center, open New → Trade Performance.
  2. Pick the account or accounts in the top selector and the date range (From / To).
  3. Press Generate and go to the Trades tab.
  4. Right-click the grid and choose Export…. You can save as CSV or Excel.
  5. Repeat per account if you want separate files, or export them all together: the Account column tells each trade apart.

The file carries, among others, the columns Instrument, Account, Market pos. (Long/Short), Qty, Entry price, Exit price, Entry time, Exit time, Profit, Commission, MAE and MFE. It is everything a journal needs to compute R, expectancy and session slices, as long as you record the initial risk separately, because the report does not know where your stop was.

Exporting executions

The Executions tab of the Control Center lists every fill of every account, and it also exports with right-click → Export…. Each row carries Instrument, Action (Buy/Sell), Quantity, Price, Time, E/X (entry or exit), Position, Name, Commission and Account. It does not carry profit, because a fill on its own has no profit: the later pairing computes it.

This export is the one to use when you scale in or out, when you want to reconstruct exactly what happened in a long-held position, or when the Trade Performance report paired the trades in a way that does not match how you think about them.

The local database: NinjaTrader.sqlite

All of the above comes from the same place: NinjaTrader 8 stores executions, orders and trades in a local SQLite database at Documents\NinjaTrader 8\db\NinjaTrader.sqlite. The file contains the full history of every account that has ever been connected, simulation and live, without you exporting anything.

Reading that database directly is the only way to have a journal that updates without manual steps: no range to choose, no files to name and no duplicates to watch, because every execution has a unique identifier. It is also what lets prop firm accounts be detected on their own: the account names of Apex, Topstep or Lucid sit in the database exactly as NinjaTrader sees them.

What each export gives you

PathContentProfit and commissionMAE / MFEEffort
Trade Performance → TradesTrades paired by NinjaTraderYesYesManual, per range
Control Center → ExecutionsEvery individual fillCommission onlyNoManual, per range
NinjaTrader.sqliteExecutions, orders and trades of every accountYesYesNone after the first time

Spreadsheet, daily CSV or direct read

With the trades out of NinjaTrader, there are three possible destinations:

  • Spreadsheet. You paste the CSV and add setup, risk and note columns. Fine for one account and few trades; with two prop firm accounts and scaling, the upkeep eats the analysis.
  • Journal with CSV import. You export every day or week and the journal computes the metrics. It works if you have the discipline to export and if the journal deduplicates properly.
  • Journal that reads the database. Nothing to export; your work is only what the machine cannot do: tag the setup, annotate and save the screenshot. It is the option with the least friction and, for that reason, the one that survives the bad months.

Whichever path you take, what turns data into a journal is what you add. In how to keep a futures trading journal you have what to record per trade and what to measure.

Common traps

  • Time zone. NinjaTrader displays times in the zone set in Options, usually the PC's. If your journal assumes another one, days shift and the prop firm's daily limit stops adding up. Check a trade you remember after importing.
  • Commissions. The Commission column only has data if the connection reports them or if you configured them on the account. If it is zero, your gross and net P&L are the same number, and with micros that lies.
  • Duplicates from overlapping ranges. Two exports that share days insert the same trades twice unless the journal deduplicates by identifier.
  • Simulation accounts mixed in. Sim101 and your real accounts live in the same database and the same report. Filter by account or the analysis blends practice and money.
  • Contract multipliers. When rebuilding trades from executions, profit depends on each symbol's point value. A journal that does not know a symbol should warn you and use a multiplier of 1, never invent one.
  • Rollover. After the expiry change, the same strategy shows up in two instruments (ESU6 and ESZ6). Group by symbol root, not by specific contract.

Frequently asked questions

Where is the NinjaTrader 8 database?

In the user's documents folder: Documents\NinjaTrader 8\db\NinjaTrader.sqlite. It is a regular SQLite file containing the executions, orders and trades of every connected account, simulation included.

Should I export trades or executions?

If you only want the result per trade, Trade Performance already gives you paired trades with profit, MAE and MFE. If you need to rebuild scaled or partial entries, export the executions: every fill with its time, price and quantity, and let the journal pair them.

Why do my times not match the prop firm chart?

NinjaTrader displays times in the time zone set in Options, usually the PC's. The prop firm dashboard usually uses Chicago or New York time. Before comparing days, and especially daily limits, make sure the journal knows which time zone your exports are in.

Next step

If you use Chrome, Edge or Brave, connect the database with the NinjaTrader journal and forget about exporting. If you prefer CSV, export one closed week from Trade Performance and check the three numbers from the warning above. Then spend the time you saved on what actually changes results: tagging and measuring.