Supported brokers/NinjaTrader trading journal

A trading journal for NinjaTrader that grades the trade, not just the P&L.

NinjaTrader tells you what you made. It does not tell you if you moved the stop, took the third trade after your two-trade limit, or traded a setup that was not in your plan. Actal takes one export a day from NinjaTrader 8 and does that part. Rules checked on every trade, a grade on execution, mistakes added up in dollars, one thing to fix each week.

Free during beta · No card · Verified on real exports

Does NinjaTrader have a built-in trading journal?

Sort of. NinjaTrader 8 has a Journal display inside Trade Performance. You right-click an execution or a trade, pick Add Journal Note, and type. That is it: a text note attached to a trade, with no grade, no mistake tags, no rules, no plan and no way to see what a habit has cost you over a month. Trade Performance itself is a good stats screen, with P&L by instrument, by time and by day, plus MAE and MFE. Most NinjaTrader traders who keep a real journal use the stats there and a journal outside the platform for the rest.

What changes

Where NinjaTrader traders get stuck, and what a week with Actal looks like.

Today

Green week, no idea why. Red week, no idea why. Trade Performance shows the P&L by hour and by instrument and I still cannot tell you what I did right.

With Actal

Every trade has a grade and a reason. You can see which ones were good trades that lost and which were bad trades that got paid, and after twenty of them you stop mixing the two up.

Today

I have typed moved stop again into the Journal note five times this month. Nothing happens with it.

With Actal

Moved stop is a tag with a running cost. This month it says minus $1,306 and it becomes the one thing you work on this week, with the count on the dashboard every morning.

Today

My rule is two trades a day. NinjaTrader will happily let me take the fifth one at 10:15 and never mention it.

With Actal

Rules are checked on every import. The broken one is the first thing you see, in red, on the day it happened. Stopping at your limit counts as a rule kept.

Today

Sim101, an eval and the funded account. Three reports, three windows, and the same mistake on all of them that I only notice in hindsight.

With Actal

All accounts side by side, one dashboard, one execution score. A habit that shows up on all three is obvious in a week, not a quarter.

Today

I plan the day in my head. By 10:30 the plan is whatever the market is doing.

With Actal

A, B and C scenarios written before the open, a closeout after it. Within a month you know how often you traded against your own plan, and that number moves.

Today

I tried a stats journal. Four hundred charts and I still did not know what to fix on Monday.

With Actal

One weekly focus, picked from the most expensive mistake first. Fix it, then the next one. Three months of that is a different trader.

MAE and MFE, P&L by hour and instrument, and the executions with commissions all stay in Trade Performance. Actal does not replace them. It grades what they cannot.

Export in a minute

How to get the file out of NinjaTrader.

Written from NinjaTrader's own documentation and checked against real files where we have them. The same guide shows on the import page and next to any error.

Executions, not a summary

The Executions tab lists every fill with commission, an entry or exit flag and the position size after the fill. Actal rebuilds the round trips from the fills and uses NinjaTrader's own flags to check itself. If they disagree, you see a warning on the preview, not a wrong trade in your journal.

Commissions come with the file

NinjaTrader writes the commission on every execution, so net P&L is right without setting a default. If you use a sim account with zero commission, that is what gets imported.

Sim101 and evals count

A sim account exports the same file as a live one. Keep Sim101, an Apex or Topstep eval you run inside NinjaTrader, and the funded account side by side, each as its own account, with one set of rules or separate ones.

Times without a zone

NinjaTrader writes a 12-hour clock with no timezone, for example 2025-12-17 10:49:10 PM. Actal reads it in your profile timezone and shows the first trades on the preview so you can check the times before anything is saved.

Trade Performance, Executions tab
  1. 1In the Control Center choose New > Trade Performance.
  2. 2Pick the account and the date range, then click Generate and open the Executions tab.
  3. 3Wait for the grid to fill, right-click inside it and choose Export; under Save as type pick CSV and save.
Columns to expect: Instrument, Action, Quantity, Price, Time, ID, E/X, Position, Order ID, Name, Commission, Rate, Account, Connection.
  • The E/X column and the Position column are used as checks; the round trips are rebuilt from the executions themselves.
  • Commissions in the file are used as-is.
  • Times are written as date plus a 12-hour clock with no timezone (for example 2025-12-17 10:49:10 PM); they are read in your profile timezone.
  • Verified against a real export from this platform.
Other ways to get the file
NinjaTrader 7

Control Center, Account Performance, Generate, then the Executions tab and right-click, Export. The columns are close enough that the same importer reads it. If it is not recognised, the column mapper takes it in one pass.

NinjaTrader Brokerage on the web

The web platform is Tradovate underneath. Its file comes from Account Reports, Orders tab, and it has no commission column. The Tradovate page has that guide, and Actal recognises both files by their header, so import whichever you have.

Rithmic or CQG behind NinjaTrader

If you also log into R | Trader, its Order History exports one day per file with commission and a timezone in the header. Use whichever is easier; NinjaTrader's Executions tab is usually the quicker one.

After the import

Every trade checked against your rules, then graded.

Daily loss limit, max trades, size and cooldowns are checked the moment the file lands. Then each trade gets a grade on execution with your own setup criteria as the checklist, a mistake tag if there was one, and the chart marked up so the lesson sticks.

Rules judged on import, broken ones first
A to F on execution, P&L in a separate column
Mistakes with a running dollar cost
One thing to fix each week
actal.io/trades/9e54…
Trade review
3 of 7 in the queue
MNQZ5Short · 4 contracts
28 Aug 10:42 → 11:07 · Apex Eval 50K
−$418.50
23,412.25 → 23,464.50 · 25 min
Add screenshot
Paste a screenshot to attach · click one to annotate
stop moved here
▤ library✎ annotate
annotated
10:55 Price came back to entry and I moved the stop instead of taking the flat. Third time this month.
Rule break on this trade
Kept trading after the daily loss limit ($750) was hit
2 trades after the line, netting −$418.50.
Discipline grade
A1
B2
C3
D4
F5
D · Rules broken, position held past the plan.
Mistakes
Moved stopTraded past daily loss limitChasedRevenge
Tags
pullbackopen driveNY session
Strategy
Opening drive
State
Frustrated
Trade 3 of 7 in the queue
J / K to move · 1–5 to grade · ⏎ to save
Save & next
When the import goes wrong

Five things that happen with NinjaTrader files, and the fix.

The file is rejected

You exported the Trades tab or the Summary. Actal needs the Executions tab. Go back to Trade Performance, switch the display to Executions, right-click the grid and Export as CSV.

Trades are missing

Trade Performance only shows the account and date range you generated. Check the account dropdown and the dates, click Generate again and export. Nothing you already imported is doubled.

P&L does not match NinjaTrader

Two usual causes. One: a position was open across the date range, so one side is in the file and the other is not. Export a wider range. Two: NinjaTrader shows P&L per instrument with its own point value; check the symbol setup in Actal if a contract looks off by a fixed factor.

Times are a few hours off

The file has no timezone. Set your profile timezone to the one NinjaTrader shows in the Control Center and import again. The preview shows the times before you save.

Half a trade shows as its own trade

Partial fills and scale-outs are normal and are rebuilt into one trade. If you see two, the fills are in different accounts or the export cut across a day boundary. Export the full day for one account.

actal.io/settings/rules
Settings
Risk rules
Risk rules
Your own limits, checked against every trade automatically. Stopping at a limit is a rule kept; the trades taken after a line is crossed are what break it.
1R = $250R size
Pause
Stop for the day after losing 3R ($750)Daily loss limit
every account · hit 4×, respected 2×, last 90 days
Pause
At most 6 trades per dayMax trades per day
every account · kept every day, last 90 days
Pause
Wait 15 min after a losing tradeCooldown after a loss
every account · broken on 1 day, last 90 days
Pause
Only trade between 09:30 and 11:30Trading window
every account · kept every day, last 90 days
Pause
Stop for the day after 3 losses in a rowStop after consecutive losses
every account · hit 1×, respected 1×, last 90 days
Pause
Also for

Sim, eval, funded and live, side by side.

Each NinjaTrader account becomes an account in Actal with its own rules where they differ, and one dashboard across all of them. A habit that shows up on every account is easy to see.

Apex, Topstep, MFF and other evals run through NinjaTrader
Sim101 and Playback sessions
Any broker behind NinjaTrader: Continuum, Rithmic, CQG, Tradovate, Interactive Brokers
Questions

NinjaTrader questions

Control Center, New, Trade Performance. Pick the account and dates, Generate, open the Executions tab, right-click the grid and Export as CSV. Drop the file on the import page. The header is recognised, the preview shows the first trades, and you click Import. About a minute.

Import today's NinjaTrader session. Grade it tonight.

One export, one minute, and the rules tell you how the day actually went. Free while in beta, no card, everything unlocked.