Skip to main content

Add-On Changelog

Latest release: v1.13.12

v1.14.0

  • Trade Copier rejected-order safety (order mode): Copies are now sent once the leader's broker acknowledges the order, rather than the moment NinjaTrader hands it over. If the broker refuses the order, for example because the account is restricted to liquidation only or has hit a prop-firm limit, no copy is sent at all. Previously the copy went out first, and the copier's cancel could not recall a market order already on its way to the broker, so followers could fill an order the leader never got and be left holding a position the leader did not have. The wait costs roughly 20 milliseconds on an order the broker accepts. Opt out per copier with dispatchOnSubmit.
  • Trade Copier repeated-rejection protection (order mode): If a leader account's broker rejects several orders in a row, the copier now pauses copying for that instrument and says so in the Activity Log, instead of replaying the same fan-out for every retry. A strategy that retries a rejected order can otherwise send the same failed trade to every follower dozens of times. Copying resumes automatically as soon as an order fills on the leader again. Tunable per copier with rejectBreakerCount and rejectBreakerWindowSec.
  • Trade Copier Auto-Sync responsiveness: Auto-Sync no longer waits a full interval before rechecking an account it found busy placing a copy. A steady stream of copies could push the check back indefinitely, delaying the cleanup of a follower position the leader does not hold and allowing repeated copies to stack up in the meantime. It now rechecks within about two seconds. Tandem blocks and reconnect quarantines are unchanged.
  • Trade Copier log accuracy: When a leader order is canceled or rejected, the copy log now records what actually happened to the follower's copy instead of reporting it as canceled the moment the cancel was requested. A copy that filled before the cancel could reach the broker is now reported as a failed cancel, so the log no longer shows a filled order as canceled.
  • Trade Copier delayed-fill safety: Fixed a rare timing race where a follower broker left a copied market order unresolved for more than 30 seconds just as Auto-Sync checked the still-flat position. The copier could stop treating the original order as in flight, submit a position correction, and then have both orders fill together, temporarily doubling the follower's exposure. Copied market and partially filled orders now block position corrections until NinjaTrader reports a final order state regardless of elapsed time. Auto-Sync logs a clear warning when it is waiting on a delayed order, and separate copies from partial fills are tracked independently.
  • Signal Share status accuracy (behavior change): A received order is now logged as "Submitted" when it is sent to NinjaTrader, and its outcome is logged separately once NinjaTrader confirms it. Previously the Activity Log said "Placed" the moment the order was handed over, which is before the platform has accepted or refused it. If the order was then refused, for example because Global Simulation Mode was enabled or a prop-firm loss limit was hit, nothing corrected the earlier message and the log's last word on a refused order was success. Rejections now appear as a plain-language warning naming the instrument and the broker's reason, and fills are confirmed in the log, so a submission is never left without an outcome.
  • Signal Share log fix: A received order that needed no action, because the account already matched the sender's position, no longer reports as though an order was placed. It now states that no order was needed.
  • API: Order, execution, position, and connection events subscribed on the WebSocket API now arrive the moment NinjaTrader raises them instead of in the periodic status batch. No client change is needed; the server switches to the immediate path automatically for add-ons on this version. Alerting and the Trade Copier are unaffected.

v1.13.12

  • Account Management startup fix: Fixed the monitor tripping on the previous session's profit/loss right after NinjaTrader starts. NinjaTrader restores the prior session's realized P&L at launch and only refreshes it once the account's connection is established; the monitor could read the restored figure first and block or flatten a flat account on yesterday's result. Thresholds are now evaluated only once the account's connection is up, a short settle window has passed, and the reported P&L is consistent with the session's trades (a flat account with no fills this session cannot have a session P&L). Reporting is unaffected. While a hold is in effect the Activity Log shows a hidden "threshold evaluation on hold" entry, and a plain-language notice if it lasts more than a minute.
  • Trade Copier bracket copies (order mode): Fixed Auto-Sync cancelling a follower's own stop and target copies as orphans after the broker reassigned an order id (common with Stealth Mode on), then refusing to re-place them as duplicates, leaving the follower in an open position with no protection. The sync now recognises copies through their live order links, re-registers a stale link instead of cancelling, and restores a copy whose earlier placement was cancelled. The "Orphan Order Cancel" log entry now names the actual follower order being cancelled and why.

v1.13.11

  • Signal Share position accuracy: Fixed broadcasts sent in the instant between an order fill and the platform's position update advertising an incorrect position transition (for example, reporting a move from flat to long while the account was actually short). A follower with resync enabled could read that as being out of sync and incorrectly flatten a correct position. Advertised positions now stay consistent with the sender's fills until the platform confirms them, and rapid consecutive entries report the correct prior position.
  • Signal Share follower cleanup (behavior change): When a sender goes flat, the follower now cancels its remaining Signal Share orders only after its own position is confirmed flat, instead of immediately on receipt of the close. Cleanup no longer runs when a close was withheld, skipped, or rejected, and it is scoped to the sending source, so one source can never cancel orders placed for another source on the same account.
  • Copied OCO reliability: Fixed bracket pairs that could copy without their OCO grouping when the order was reported before its group was finalized on the sender. Copied OCO groups are also now scoped per source and instrument, so identical group names from different sources can no longer collide on one account.
  • Signal Share tracking: Copied orders are registered for tracking before submission, so an instant fill can no longer escape lifecycle logging and cleanup. Long-lived GTC copies also stay tracked while they remain working instead of being dropped after 24 hours.
  • Security: The add-on's backup HTTP delivery path is now validated server-side with the same credentials as the live connection.
  • Stability: Fixed a crash that could close NinjaTrader entirely when a routine background update (status reporting or streaming market data) coincided with a dropped or reconnecting CrossTrade connection. It was most likely to occur during unstable connectivity, such as around weekend data-feed restarts, and could happen even while no trading was underway. Orders and positions were never affected.
  • Stability: Fixed a rare condition where a reply to a platform request could become corrupted when message handling briefly overlapped, causing repeated errors every couple of minutes and, in the worst case, closing NinjaTrader. Replies are now always built from a private copy of the data.
  • Stability: Background reporting tasks now contain unexpected errors and record them in the log instead of allowing them to reach NinjaTrader. Logging itself, credential prompts, and strategy status updates are covered by the same protection.
  • Stability: Fixed "Collection was modified" errors when strategy status reporting coincided with a strategy being added, removed, or shut down.
  • Connection reliability: Restarting the add-on while CrossTrade servers were unreachable could leave two reconnect loops competing indefinitely, producing constant connect/disconnect churn until NinjaTrader was fully restarted. Only one reconnect loop can be active now, and the connection keep-alive and receive paths were hardened against errors during reconnects.
  • Reliability: During heavy message bursts, an internal queue reset could drop the live connection and briefly leave duplicate message processors running. Resets no longer disrupt the connection and can no longer double up.
  • Reliability: Account management evaluations now run one at a time, so rapid settings updates can no longer cause two evaluations to act on the same account at once.
  • Diagnostics: A damaged local activity database is now detected at startup, preserved for support review, and rebuilt automatically instead of silently disabling local logging. The database repair function also preserves the old file instead of deleting it.
  • API: GetBars now accepts the documented "none"/"adjust" values (and legacy true/false) for splitAdjust and dividendAdjust, and rejects invalid values with a clear error instead of failing.

v1.13.10

  • Trade Copier missed-trade fix: Fixed an issue where the copier could intermittently miss a leader order or fill entirely, leaving Auto-Sync to catch the follower up a few seconds later, which showed up as delayed copies and slippage. Most likely on machines starved for CPU (for example, single-core VPS plans). The copier now also logs a clear "missed event" warning in the Activity Log if a leader fill goes unprocessed, instead of staying silent.
  • Trade Copier close reliability (order mode): Fixed followers being left in an open, unprotected position after a leader Close when a stale correction record from a previous trade blocked the flatten. Manual Sync and leader Close now always force a correction through.
  • Trade Copier position-sync safety (order mode): Fixed Position Sync occasionally submitting an extra correction order while a fast reversal was still filling, which briefly took the follower past the copier's Max Quantity and then reversed itself, appearing as opposite-direction "hedging" orders. Syncs now wait for the copier's own orders to fully settle, verify the live position immediately before correcting, and will never submit a correction that would exceed the copier's Max Quantity. Corrections that alternate directions without settling are halted with a warning in the Activity Log. Post-fill checks now also cover reversals into a long position, and a burst of fills triggers one sync instead of several.
  • Reconnect stability: Fixed NinjaTrader assertion errors after a data-feed reconnect while an ATM strategy was live, which could recur daily and require a NinjaTrader restart. ATM strategies are no longer restarted by the reconnect policy (NinjaTrader re-attaches them to their positions natively), and a strategy that is already running can never be initialized a second time.
  • Reconnect reliability: A strategy restore attempt that times out no longer resumes unexpectedly later in the session, and a restore is only reported successful once the strategy actually starts; otherwise it is retried on the next reconnect.
  • Stability: Fixed a rare error dialog that could appear in NinjaTrader during heavy signal activity around a connection outage. Orders and positions were never affected.
  • Reliability: Fixed an issue where status reporting could begin logging errors every few minutes and not recover until NinjaTrader was restarted.
  • Activity Log cleanup: Suppression notices for repeated messages now follow the visibility of the message they suppress, so diagnostic-only entries no longer surface a "Suppressed duplicates" line. Timestamps inside message text now read as plain elapsed time instead of a machine-format date.

v1.13.9

  • Signal Share status accuracy (behavior change): Routine lifecycle events (OCO cleanup, cancel-after-fill) are logged as informational with the cause stated, not as failed copies. Real rejections still report as failures with the broker reason.
  • Clearer Signal Share messages: Status messages state account, instrument, and outcome; identifiers are no longer truncated.
  • Honest failure counters: Expected lifecycle events no longer inflate a subscription's failure count, streak, or at-risk status.
  • Skipped-entry symmetry: Cancels and modifies for intentionally skipped entries (multiplier rounds to 0 contracts) are marked skipped by design instead of failing with "order not found".
  • Order links survive broker reconnects: A brokerage reconnect mid-trade no longer breaks the link between the sender's order and the receiver's copy, so later cancels and modifies keep working instead of failing with "order not found or already terminal". Links also persist across NinjaTrader restarts.
  • Cancels retry after an outage: A cancel arriving while the account's connection is down is re-applied automatically on reconnect, so GTC stop/target copies can no longer keep working (or fill) through an outage.
  • Flat sender, clean receiver: When the sender goes flat, the receiver also cancels its remaining Signal Share working orders for that instrument, even if an individual cancel was missed. Only orders Signal Share placed are touched.
  • Real OCO brackets on the receiver (behavior change): Copied stop/target pairs are placed as a true OCO group, so filling one side cancels the other even when a relayed cancel can't be applied. Opt out per subscription with nativeOco.
  • Distinct cancel outcomes: "Not found" and "already Cancelled/Filled" report separately, and a cancel against a disconnected account says so.
  • Backtest commission templates now apply: fill.commission_template attaches to the isolated Backtest account and is reflected in per-trade and total commission. Unknown template names fail with the available list, and a resolved template that still yields zero commission adds a commission_warning to the result.
  • Backtests report effective parameter values: Results include effective_parameters and flag parameter_drift when an input no longer holds its applied value after the run, distinguishing inputs reset by the strategy's own code from engine issues.
  • ATM entries honor STRATEGY_TAG (behavior change): ATM orders on the ATI path now run the same Strategy Lock check and claim as regular orders; previously these positions were left unmanaged. Blocked commands log the reason in the Activity Log.

v1.13.8

  • Signal Share accuracy: Broadcast positions no longer count resting stops and targets as filled, fixing false "out of sync" detections and wrong-direction announcements on bracket orders.
  • Resync safety: Corrections wait for the position to settle before the next signal is processed, and are capped relative to the source's target size; oversized corrections are withheld with a logged warning instead of submitted.
  • Missed-signal replay: Receivers that reconnect after a brief outage automatically request missed broadcasts, delivered in order and deduplicated so nothing runs twice.
  • Reliable broadcast delivery: Broadcasts go over both the live connection and HTTP with server-side deduplication, so a degraded connection can't silently drop signals.
  • First broadcast under load: Fixed a race where a rapid modify could suppress the initial order broadcast.
  • Fractional multipliers (behavior change): Signals that scale below 1 contract are now skipped instead of rounded up. The old round-up behavior is available per subscription via the new "Minimum 1 lot" setting.
  • Smarter rate limiting: Under burst load only order-modification broadcasts are shed; entries, exits, and cancels always deliver.
  • Broadcaster management: Bulk invites, paginated follower lists, and per-source subscriber limits.
  • Performance: Batched execution audits, periodic sweep of per-order tracking maps, and earlier filtering of ineligible order events.
  • Optimization sweeps honor fixed parameters (behavior change): Fixed parameters values now apply to every sweep iteration instead of silently running at strategy defaults. Sweep results will differ from earlier builds; the new numbers are the correct ones.
  • Strategy re-enable reliability: Re-enabling a disabled account-hosted (headless) strategy now recreates it from its saved deployment, instead of failing with enable_unconfirmed and a dead Strategies-grid checkbox.
  • Strategy lifecycle diagnostics: If an enable or disable operation exceeds its time budget, the activity log records a warning with the affected thread and recovery guidance.
  • Strategy start arguments: StartStrategy accepts period as a string or whole-number decimal and rejects anything else with bad_arg, instead of silently substituting 5-minute bars.
  • Cleaner sweep results: trades_count_raw is included only when it carries a real flushed trade count.
  • Adopt manually-attached strategies: The new AdoptStrategy call brings a strategy attached by hand in NT8 under CrossTrade lifecycle management without redeploying it. Adopt while it's running; re-adopting refreshes the record after input changes in NT8's UI.
  • Multi-timeframe restore accuracy: Reconnect restore and adoption now record a strategy's true primary bars period, so a restored multi-timeframe strategy no longer comes back running on an added timeframe.

v1.13.7

  • Commission accuracy: Session commissions now come from NT8's account-level commission counter instead of a trade-history reconstruction. This fixes phantom negative "Unrealized" values on flat accounts (typically the size of one round trip's commissions) after a settled trade and at the Globex open.
  • Unrealized PnL: Displayed unrealized is always pure mark-to-market, matching NT8's own Unrealized column. Commission effects are reported in their own fields instead of being folded into unrealized.
  • Commissions in the dashboard: The Account Manager shows session commissions beneath Total PnL, with open-position commissions in the tooltip.
  • Threshold correctness: Monitors with "Include Commission" enabled evaluate thresholds on the corrected values, so triggers fire at the true P&L rather than one carrying the phantom offset.
  • Consistent naming: Dashboard labels now match NinjaTrader's vocabulary: Realized PnL, Unrealized PnL, and Total PnL.
  • Compatibility: Add-ons back to v1.12.0 keep working with the updated dashboard; unrealized displays correctly on all of them. On add-ons older than v1.13.7, Total PnL can still include the old phantom commission offset until you update.

v1.13.6

  • Account P&L: Reports and risk thresholds now use NT8's broker-session realized P&L.
  • Safer backtests: Strategy backtests use only NT8's isolated Backtest account.
  • Reliable optimization: Parameter sweeps reset each run, reject invalid inputs, and rank by the selected fitness metric.
  • Strategy controls: Disable and enable actions are verified against NT8; headless strategies can be recreated safely.
  • Reconnect recovery: Running strategies restore once after a connection loss, without duplicates.
  • Clearer alert logs: Alert activity uses plain language, one log source, and links to the live console.
  • Historical data: GetBars supports a configurable timeout from 2 to 25 seconds.

v1.13.5

  • Database reliability: WAL mode, write serialization, and retries prevent dropped audit rows under load.
  • Signal Share: Durable sequence numbers prevent valid signals from being rejected after a broadcaster restart.

v1.13.4

  • Trade Copier: Fixed position doubling, orphaned contracts, dropped fills, and slow dead-connection detection.
  • Account discovery: Signal Share and Trade Copier now detect accounts that connect after startup.

v1.13.3

  • NinjaScript: AI-generated edits apply without restarting NT8, including packaged add-on installs.

v1.13.2

  • Order auditing: Added GetOrderLifecycle across RPC, REST, and MCP.

v1.13.1

  • Trade Copier: Fixed partial-fill under-copying and residual follower drift after exits.

v1.13.0

  • Added the MCP Trading server, Signal Share, and Manual Trading dashboard.
  • Added NT8 v8.1.7.0 support.
  • Fixed reconnect orders firing before the account reached Connected.
  • Prevented one leader from flattening another leader's shared follower position.

v1.12.5

  • Increased signal deduplication time to prevent duplicate orders.

v1.12.4

  • Fixed Trade Copier reconnect races and scaling mismatches.
  • Fixed Auto-Reconnect misclassifying recovery failures as clean disconnects.

v1.12.3

  • Prevented Auto-Sync from running while copier orders were still active.

v1.12.2

  • Fixed Change and Cancel lookups when Trade Copier was enabled.

v1.12.1

  • Added collection locking for better thread safety.

v1.12.0

  • Added strategy tags for position ownership across automations.
  • Added CancelAndBracket, wait-for-fill brackets, and ATM strategy aliases.
  • Redesigned the Home and Webhooks pages with live account data and the Automation Wizard.
  • Added auto-reconnect, data watchdog, counter-position, and account visibility settings.
  • Added Account Manager outlier protection.
  • Added Trade Copier fills-only mode and stronger reconnect, sync, and tag handling.
  • Expanded the Advanced Commands examples.

v1.11.2

  • Launched Trade Copier and streaming market data.
  • Improved copier logging and added Account Management Hybrid Mode in alpha.

v1.10.20

  • Moved Trade Copier into public beta with multi-leader and multi-follower support.
  • Added tandem operation with Account Management and experimental Hybrid Mode.

v1.10.9

  • Released the Trade Copier beta.
  • Added flexible instrument formats to Cancel, Flatten, and GetPosition.

v1.9.1

  • Fixed incorrect Strategy Sync labels for reduced long and short positions.

v1.9.0

  • Released TradingView strategy synchronization.

v1.8.3

  • Added NT8 v8.1.5 compatibility and general availability for continuous contracts.

v1.8.2

  • Improved ATM strategy attachment and added early continuous-contract support.

v1.8.1

  • Added position P&L thresholds to Unrealized Mode.
  • Moved Closing Only order blocking out of beta.

v1.8.0

  • Added redundant order processing to reduce connection-loss timeouts.
  • Added early Closing Only order blocking through Account Management.

v1.7.3

  • Corrected a compilation error from v1.7.2.

v1.7.2

  • Improved order queue throughput and reduced Activity Log warning noise.

v1.7.1

  • Improved reconnect reliability and ATI-disabled alerts.
  • Added user order ID queries and account snapshots.
  • Expanded Flatten and Close Position filters and sizing options.
  • Added webhook notes to the Activity Log and Alert History.

v1.6.0

  • Fixed Account Manager P&L lockups under high CPU load.
  • Added position reversal and per-account kill and Closing Only switches.

v1.5.10

  • Fixed reconnect failures after repeated disconnects.

v1.5.9

  • Added Auto-Connect.

v1.5.4

  • Completed Account Management features.

v1.5.1

  • Added the first Account Management beta.

v1.5.0

  • Improved startup, shutdown, and keepalive behavior.

v1.4.9

  • Improved connection stability.