WotT Copier v0.4.0: The Freeze That Only Happened Live — and Full Account Reconciliation
The biggest Copier update yet: a rare live-connection deadlock that could freeze NinjaTrader is fixed and verified with a real trade, and the last MVP module ships — continuous account reconciliation with quarantine and alarms.
WotT Copier v0.4.0 is out — the most important update since the project started. It pairs a critical stability fix caught on live prop accounts with the last functional module of the MVP: continuous account reconciliation with alarms. Battle-tested on a live market, and functionally complete.
If you're new here: WotT Copier is my free trade copier for NinjaTrader 8 — one master account, unlimited followers, and every follower carrying its own SL/TP brackets on the broker's server. The full write-up lives on the tool page.
The freeze that only happened live
The symptom. On live prop accounts, the first copied entry of a session could occasionally freeze the entire platform — windows stopped responding and NinjaTrader had to be killed from Task Manager. The positions had already opened, but the protective brackets never made it out. On a simulation account the problem never showed up once. That combination — open positions, no stops, dead platform — is exactly the scenario this project exists to prevent, which made it the highest-priority bug the copier has ever had.
The cause. A classic cross-thread deadlock. The copier's engine was making blocking platform calls (creating a market-data subscription, submitting orders) while holding its own internal lock. On a simulation connection those calls return instantly. On a live broker connection they need a round-trip with the adapter thread — which, at that exact moment, was delivering an event and waiting for the same lock. Engine waits for adapter, adapter waits for engine, and the UI thread queues up behind both. The whole platform stops.
The fix. A ground-up rebuild of the engine's threading model around one iron rule: under the lock, the engine may only touch its own state — any call that can block runs outside it. Order intents are registered by name before submission, orders are created and sent outside the lock, and a short registration step right before the send closes the consistency gap — so no broker confirmation can ever outrun the engine's state, and a quarantine or FLATTEN triggered in the meantime safely invalidates the send.
The verification. Confirmed with a real trade on a live market: entry copied in 0.4 seconds, the market-data subscription — the exact step that used to freeze the platform — went through cleanly, brackets landed on the broker's server, and a manual exit was mirrored in 200 ms.
Two smaller fixes worth knowing about
Duplicate brackets. On a follower entry, the protective orders could briefly multiply — two or three stops instead of one. Freshly created orders sit in a transient state for a fraction of a second, and the sync logic treated that state as "dead" and rebuilt the bracket. The transient state now counts as alive, and the "creation in progress" flag clears only after a confirmed send. Result: exactly one OCO pair per entry.
Updates without restarting the platform. After a recompile, the NinjaTrader menu entry could still launch the old version of the window. The add-on now cleans up its menu entry on reload — updating the copier takes a recompile, not a full platform restart.
New: full account supervision (the last MVP module)
v0.4.0 ships the reconciliation module — the copier now continuously verifies that every account actually is what the engine thinks it is:
- Reconciliation every ~1 second. Expected state is compared against the real account state read straight from the broker — positions and orders, not the engine's own memory. A position mismatch persisting over 5 seconds with no operation in flight → Desync status, account quarantine, and an alarm with the full story in the log ("expected X, actual Y").
- Foreign-order detection. A manual order placed on a follower account on a copied instrument → instant quarantine. The copier stays true to its core principle: it never guesses and never "repairs" on its own — it stops copying and hands the decision back to you.
- Automatic cleanup. When master and follower are both flat and orphaned copier orders are still hanging on the account, they're cancelled without your involvement.
- Startup scan with a banner. On window open, the copier detects leftovers from a previous session — working orders, open follower positions — and shows a banner with Cancel orphans / Flatten listed accounts buttons. No automatic action, full user control. A direct lesson from the freeze: after a hard platform kill, nothing gets left unsupervised.
- Disconnect handling. An account that loses its connection goes Desync without quarantine, and order routing to it is fully blocked; after reconnection, reconciliation decides on its own whether the account came back aligned.
- Audio and visual alarms. A transition into Desync or NoProtection triggers a system sound; a position without a stop (NoProtection) additionally flashes red and repeats the sound every 10 seconds for as long as the state lasts.
- AutoFlattenOnNoProtection — an opt-in config option (off by default): on a confirmed missing stop, the copier may flatten the account automatically.
What's next
One thing: a visual overhaul of the copier window. The current UI is functional but raw — the next release focuses on a cleaner table, modern typography and a color scheme that sits properly in NinjaTrader's dark theme.
The full version history is in the changelog on the tool page.
v0.4.0 describes the state of the code as of August 18, 2026; acceptance testing of the reconciliation module is in progress. Trading futures involves substantial risk of loss — the copier is an execution tool and guarantees no results.
Read next
Walmart Beat Its Numbers and NQ Dropped 200 Points — the Math Doesn't Add Up
Walmart beat on revenue and EPS, fell ten percent, and NQ lost 200 points — far more than its index weight can explain. Where the rest of the move came from, what it says about next week, and my one trade of the session, warts included.
Nvidia Earnings and Warsh's First Jackson Hole: 48 Hours That Could Set NQ's Autumn
Nvidia reports Wednesday after the close. Two days later, Kevin Warsh delivers his first Jackson Hole keynote as Fed Chair — with a hike, not a cut, as the live question. Two catalysts, 48 hours, no precedent. The map, the history of this slot, and how I plan to trade (or skip) each session.
NQ Week Ahead (Aug 17–21, 2026): The Breakout Meets FOMC Minutes, Walmart and OPEX
NQ enters the week holding above the 2026 high-volume node, roughly 3% below all-time highs. FOMC minutes, Walmart earnings and monthly OPEX will test whether the breakout is real. The full level map and calendar inside.