NinjaTrader Trade Copier Diagnostics with AI
The trade copier moves orders from a leader account to one or more follower accounts. When the copier works, you don't think about it. When it doesn't, you need to know exactly why. AI agents through CrossTrade MCP are well suited to this: they can correlate add-on activity, order state, and execution data across accounts in seconds.
Why copier incidents are hard to debug manually
A copier incident has three timelines:
- Leader account: order, fill, position state.
- Follower account: order, fill or rejection, position state.
- CrossTrade Add-On: routing events, max-contract checks, account-state checks.
You have to read all three in parallel and at the right granularity. Doing that by hand at the speed required to act in the next session is exactly the kind of work an AI agent does well.
Leader/follower lifecycle
A normal copier event looks like this in the activity log:
14:32:10 copier leader account fill received
14:32:10 copier follower routing started
14:32:11 copier follower order submitted
14:32:11 copier follower fill confirmed
A bad copier event might look like:
14:32:10 copier leader account fill received
14:32:10 copier follower routing started
14:32:11 copier follower rejected: max contracts reached
The agent's job is to identify the failure pattern and translate it into a fix.
Common failures
| Pattern | Likely cause | What to check |
|---|---|---|
| Follower rejected: max contracts | Account is already at or above its position limit. | ListPositions on follower. |
| Follower missed | Follower account is disconnected. | GetConnections. |
| Follower late | Routing delay or broker latency. | Timestamps in GetActivityLog. |
| Quantity scaled wrong | Copier ratio or per-account quantity override. | Copier configuration. |
| Symbol mismatch | Follower account does not subscribe to the instrument or uses a different exchange. | MarketInfo on follower. |
| Existing position conflict | Follower already holds a position in the symbol. | ListPositions. |
| Bracket/ATM mismatch | Leader uses bracket; follower account does not have it configured. | Copier configuration. |
What CrossTrade logs
The add-on activity log captures every copier event the add-on observes. Routine info entries describe normal routing. Warning entries surface skipped or rejected follower events. Error and debug entries are admin-only.
For an account-owner non-admin user, the visible severities are Info, Warning, and Hidden. Catch-handler errors are intentionally hidden from non-admin users; they are part of the add-on's internal exception telemetry, not a signal for the user.
What MCP lets the agent compare
| Source | What the agent uses it for |
|---|---|
GetActivityLog | Add-on's view of routing and rejections. |
ListOrders (per account) | Confirms what NT8 actually placed. |
ListExecutions (per account) | Confirms fills. |
ListPositions (per account) | Confirms final state. |
GetAccountSummary / GetWatermarks | Account-level constraints. |
GetSignalHistory | If the leader fill came from a webhook, ties it back to the source. |
Funded account examples
"Why did the follower not fill?"
For APEX1234 (leader) and APEX1235 (follower), pull GetActivityLog between 14:30 and 14:35 today. Find the leader fill and the corresponding follower routing entry. Tell me whether the follower order was submitted, and if so, whether it filled. If it was rejected, give me the reason verbatim from the activity log.
"Why is the follower one contract short?"
Pull the last hour of GetActivityLog for follower APEX1235. List any entries where the routed quantity differs from the requested quantity. Report the reasons.
"Why are followers out of sync?"
List positions on APEX1234 and APEX1235. Compare instrument by instrument. Report any mismatches in side, quantity, or average price. Then pull GetActivityLog for the last hour and tell me when the divergence started.
Prompt examples
Single-incident diagnosis
A copier incident happened around 14:32 today. Leader APEX1234 filled long 2 MES. Follower APEX1235 did not. Pull GetActivityLog for both accounts between 14:31 and 14:33. Compare to ListOrders and ListExecutions. Tell me where the routing failed.
Daily copier audit
Audit copier behavior for APEX1234 leading APEX1235 and APEX1236 for today. List every leader fill and whether each follower matched. Report total mismatches and the most common cause.
Cross-account state check
List positions for APEX1234, APEX1235, APEX1236. Tell me which accounts are in sync and which are not. Do not place anything.
Incident review checklist
When you find an incident, walk through this list with the agent:
- Was the leader fill clean? Single order, expected quantity, expected price.
- Did the add-on receive and route the fill?
- Did each follower submit an order?
- If a follower rejected, what is the verbatim reason?
- If a follower filled, is the quantity correct?
- Is the resulting position consistent across accounts?
- If not, is the divergence reversible via a flatten, or does it require manual reconciliation?
The agent can run each step. You decide which fixes to apply.
FAQ
Can the agent fix the copier?
No. The agent diagnoses. Configuration changes happen in CrossTrade's UI.
Can the agent rerun a missed signal?
No. The agent reads history.
What if the follower's account is on a prop firm with strict rules?
Many firms restrict trade copying or restrict it across firms. Inspect copier behavior read-only and verify the firm's rules before relying on the copier across funded accounts.
Does this work across brokers?
Yes, as long as both accounts are connected to NT8 through CrossTrade.