Three checkpoints in this guide
Follow the full walkthrough in order, or jump directly to one of its main sections.
NinjaTrader's Trade Performance can tell you what an account earned. A journal should help answer the next question: which decisions are working, and which keep costing you money? Before drawing that conclusion, make sure partial exits, fees and account history are counted consistently. One trading idea can produce several fills and more than one completed trade in a platform report.
The useful sequence is execution → closed position pieces → your trading idea → repeated pattern. If the second step is wrong, a convincing win rate or AI explanation is just decoration.
A fill, a completed trade and a trading idea are different units
NinjaTrader's Trade Performance display can count scale-ins and scale-outs as separate completed trades; its Trade object reference uses a two-contract, two-exit example. That is useful for execution review, but it may not match the unit you planned as one setup. NinjaTrader already offers trade statistics and period analysis. The reason to add a journal is to connect those results to your plan and repeated behavior, not to replace a functioning platform report.
Here is hypothetical arithmetic, not an observed NinjaTrader or TSB account. A trader buys two Micro E-mini S&P 500 (MES) contracts at 5,000, exits one at 5,003 and the other at 4,999. CME's MES contract specification gives $5 per index point per contract. The first exit earns 3 × $5 = $15 gross; the second loses 1 × $5 = $5 gross. The whole position earns $10 gross. If the entry costs $2 in commission and each exit costs $1, all three executions cost $4 and the whole position nets $6 before any other fee.
The economic result is still $6 whether a report calls this two completed trades or one trading idea. But a report that counts the two exits separately might show one winning pair and one losing pair; a journal grouping the entire plan as one campaign sees one positive idea. Those are different denominators, not proof one platform calculated money incorrectly. If a commission feed arrives later, even the $6 is provisional until the broker's final charge is reconciled. Neither example implies NinjaTrader uses this exact hypothetical fee schedule.
Four checks before trusting a futures performance number
| Check | What to compare | Why it matters |
|---|---|---|
| One account and period | Keep Live, Demo, prop and personal results separate; use the same dates and trading-day boundary | Otherwise an apparent pattern may belong to no single account |
| One whole trade idea | Check whether every entry and partial exit is attached to the intended position | A two-exit plan may be shown as two completed trades but still be one decision |
| Actual net result | Include the fees that the account record really shows, and use the right contract value | A profitable tick count can turn into a smaller—or losing—dollar result |
| Complete enough history | Compare the oldest and newest records and a few known trades with the original account report | A recent-activity view is not proof the selected period is complete |
The Desktop Executions tab is a current-day view, not proof of a complete historical record. Conversely, the Trade Performance guide explains why an older entry can appear when it is needed to complete a position inside your chosen dates. Do not delete it as a “duplicate” without checking the original trade. NinjaTrader also warns that a missing historical execution can make performance data incorrect. Compare a few known closed trades and the period total with the original account before analyzing a strategy. If history remains incomplete, the answer is not verified, not an invented win or loss.
The same care applies to simulated and prop accounts. A platform brand on the screen does not tell you which broker, environment or program supplied the record. Keep account identities separate and verify any prop-rule replay against the named program and phase; it is not automatically part of the NinjaTrader P&L calculation.
Why does your journal disagree with NinjaTrader P&L?
A mismatch does not automatically mean the platform or journal is wrong. First establish what each number measures. Is one figure gross and the other net of commission? Is one in points or ticks while the other is in dollars? Does one report contain a Demo account, a different contract, an open position, or trades outside the selected dates? NinjaTrader's Trade Performance settings let you select accounts, instruments and display units, so save that scope before comparing totals. A screenshot of an equity curve without those settings is not a reproducible benchmark.
Next find the first trade that differs, rather than trying to explain a month-end gap from memory. Compare its account, instrument, entry and exit times, quantity, price, gross P&L and recorded commission with the original execution record. If one two-contract entry was closed in two pieces, ask whether the other system shows two entry–exit pairs or one grouped position. The $6 example above would legitimately have a different trade count under those two definitions, even though the combined result is the same. If a fee is absent in one source, label the comparison provisional; do not silently insert an estimated commission and call it verified.
If the earliest mismatch is a missing opening fill, check the history window and export type. The current-day Executions tab is not a full archive, while Trade Performance can include an earlier execution needed to complete a trade inside the selected period. If a past execution is genuinely missing, NinjaTrader's help says its performance report can be inaccurate. Re-export or investigate the source before treating an apparent loser, winner or duplicate as a behavioral pattern. For a TSB import, compare the same known trade after the source arrives; a green connection indicator alone is not a reconciliation result.
Keep a short discrepancy note: account and period; first divergent trade; which field differs; original source used; resolved or still unknown. That note prevents the next review from building a confident explanation on an unresolved data gap. It also separates a counting difference from a money difference—two problems that need different fixes.
What can the platform tell you, and what should a journal test?
NinjaTrader's Trade Performance can already expose trade-level profitability, commissions, period analysis and chart links. Use it when your question is “what did this account's executions produce?” A trading journal should add something distinct: whether the same planned setup works in one market or session, whether partial exits help net result, or whether a repeated post-loss decision erodes the edge. NinjaTrader can show executions; the source file cannot know why you broke a rule unless you record that context.
For a first review, take a small run of fully closed trades. Reconcile its total net P&L to the platform/account report. Then tag each idea, not just each fill, with the setup, planned risk and exit reason. Compare like with like: same contract family, same account/environment and an adequate sample. If three late-session entries lost while the other 40 were profitable, that is a clue to inspect the three charts and conditions—not yet proof that late trading is the cause. Write one next-session test and revisit it as new comparable trades arrive.
If several automated strategies share an account, keep each strategy's result separate from the whole-account result. NinjaTrader's Trade Performance guidance notes that account-level pairing can ignore which strategy generated a fill. Do not call one strategy profitable merely because the combined account is up.
A review you can repeat after the next 20 closed ideas
Start with a defined account, contract family and period, not a convenient collection of best-looking charts. Take 20 fully closed trading ideas as a manageable review batch—not a magic statistical threshold. If a position scaled out twice, keep its fills together while retaining the platform's separate trade rows for reconciliation. Record the setup you intended, planned risk, entry reason, exit plan and any change you made after entry. A source export can tell you what filled; only your notes, screenshots or other recorded context can establish what you meant to do.
For each idea, calculate the total after available fees and compare it with the original account record. Then ask two separate questions. Execution: did the actual entries and exits follow the plan? Edge: among comparable ideas, did this setup produce a positive after-cost result? A trader can execute a losing plan faithfully, or make money while repeatedly breaking a rule; mixing those judgments hides the next useful change. If risk sizes differ, compare outcomes against each idea's planned risk as well as dollars, and do not let a large position make one setup look better merely because it was larger.
Group the reviewed ideas by one variable at a time—setup, market, session or exit method. Keep an eye on sample size and changing market conditions. If five partial-exit ideas beat five single-exit ideas, that is a reason to inspect the trades and write a prospective test, not evidence that partial exits caused the improvement. The next test might be: for one defined setup, record the exit rule before entry, then compare whole-idea after-fee outcomes over the next set of eligible trades. Save exceptions and skipped setups too; otherwise a clean-looking journal can be a selective memory of only the trades you liked.
The output of a good review is deliberately small: one verified strength to keep, one repeated cost to investigate, and one rule to test next session. If the source still disagrees with the account report, the output is simpler: the exact discrepancy and what data is needed to resolve it. More charts or a fluent AI summary cannot replace that first step.
Can you bring NinjaTrader history into TSB?
TSB currently lists both a read-only NinjaTrader connection and a supported file upload in its source directory. The integration page explains the Demo/prop versus Live choice and when an older CSV export can help. Start with the account you actually want to review; after the first sync or import, check one older partial exit and one recent round trip against the original account report. A “connected” badge alone does not prove that the requested history, fees and prop-linked trades arrived. If something is missing, investigate the gap or use the supported export route before relying on a journal verdict.
If that check passes, the point of TSB is not another equity curve. The point is to use your own trade history to find which decisions helped, which habits created avoidable drag and what to test next. If the source is incomplete or the result does not match the broker, stop at the discrepancy. A useful system should say not verified before it gives a confident diagnosis from bad data.
With Full Access, TSB AI Coach can review selected, available history for exit quality, costs, setups and data gaps, then point back to the recorded trades behind an observation. It does not analyze an unlimited lifetime history merely because an account is connected. For the scale-out example, the useful question is whether planned partial exits improved the whole idea after fees across comparable trades. If the plan or an opening fill was never recorded, Coach should say what is missing before offering a verdict.
Ask about the decision, not just the red number
“Why do I keep losing on NinjaTrader?” is a reasonable starting question. The answer should not jump from a red equity curve to a personality diagnosis. Choose an account, market and review period, then ask something the history can actually test: “Do my planned scale-outs help after fees?” or “Are my late-session entries worse within the same setup?” The value of an ongoing journal is that you can revisit that question as comparable trades accumulate.
For the scale-out question, record the planned exit rule and group every partial exit with its original idea. Compare whole-idea net outcomes with similar single-exit ideas, not a mixed pile of trades from different contracts or risk sizes. The $6 example shows why: a higher pair-level win rate can appear without any change in money made. If commissions or an entry are missing, repair the history first. Otherwise, the most fluent AI answer is still a guess.