Skip to content
MERIDIAN

Download

Get the Meridian AddOn

One file, installed with NinjaTrader's own importer. Nothing to compile, no installer to run, and about two minutes from download to the Meridian window.

  • ✓ Windows 10 or 11 with NinjaTrader 8
  • ✓ Works with every broker connection NinjaTrader supports
  • ✓ A Meridian account — the free trial needs no card
Meridian Signal Desk
AddOn for NinjaTrader 8 · version 5.1.0
Email us for the AddOn

We reply with the installer, usually within the hour on market days.

Install in three steps

The same steps install it the first time and update it later.

  1. 1

    Download the .zip

    Save it anywhere, such as your Downloads folder. Don't unzip it — NinjaTrader reads the zip as it is.

  2. 2

    Import it into NinjaTrader

    In NinjaTrader's Control Center choose Tools → Import → NinjaScript Add-On…, pick the zip, and click Yes if it asks to replace an older version.

  3. 3

    Restart and sign in

    Restart NinjaTrader, then open New → Meridian Signal Desk. Sign in with your dashboard user id and password, and the PC links itself.

Updating?

Follow the same three steps. Your accounts, settings, webhook secret and sign-in are kept, so there is nothing to set up again. The version you are running is shown at the top of the Meridian window and on your dashboard, which tells you when a newer one is out.

Installed it from a .cs file before?

Remove the old file first, or NinjaTrader reports a duplicate: open New → NinjaScript Editor, find VisualCopierAddOn_15 under AddOns, right-click it and choose Remove. Then import the zip as above. Your settings stay.

Next: pair the PC and send your first signal · Stuck? Troubleshooting or email us.

What's new

Every version, newest first. Click a version to see what changed in it.

Version 5.1.0 Latest November 8, 2026
  • The broker's answer is timed. When the broker first acknowledges a signal's order, the copier records how long that took from the moment it submitted it. A limit or stop order gets a journal line, "Broker accepted … in Nms", since its fill may come much later or never. A market order's fill line ends "broker accepted in Nms". The dashboard's signal timeline shows it as its own step, between "handed to the broker" and the fill.
Version 5.0.0 November 7, 2026
  • Action needed only if you open the dashboard or a script from ANOTHER device on your network (straight to the copier PC's port 8080). Reads from another device now need the local API token — before, anyone on the same network could read your status, positions and journal with no credential. Find the token in the dashboard under Copier Setup → Connection → Local API, and paste it into that device's dashboard (same card) or send it as the X-Meridian-Token header from a script. Nothing changes on the copier PC itself, or on the hosted dashboard at meridiansignaldesk.com.
  • The Local API card shows the token, rotates it, and points to the guide (docs/LOCAL_API.md) with a Python example for reading the desk, previewing a signal and sending one.
  • No counter positions (Copier Setup → Exposure caps, off by default): most prop firms count being long one market of a group while short another as hedging. Choose "not on the same account" or "not across any of my accounts", and an order that would open the other side of a position held in the group (NQ / ES / YM / RTY by default) is refused — exits always go, and a reversal only closes. A leader and its followers are judged together, so a reversal is never blocked by its own copies.
Version 4.42.0 November 7, 2026
  • Live trailing drawdown. For an intraday trailing drawdown the copier now raises the peak from the best price each open position reached between its readings (every 2.5 s), not only from the readings themselves — a spike between two readings used to be missed, leaving the copier's floor below the firm's. The Prop accounts card shows, live: the room left above the floor + buffer, how many points each open position can go against you before the floor and the price where it sits, where the floor moves if you take the open profit now, and the room left if you give it back.
  • Graduated steps as the room shrinks (Prop rules, all off by default): at a share of the drawdown you choose, the copier warns, then halves new entries (never below 1), then allows exits only. Each step is alerted once a day as it gets stricter. Exits and reductions are never cut.
  • Payout-zone lock (Prop rules, off by default): set the balance to keep — e.g. your firm's payout safety net. Once the closed balance reaches the arming balance (blank = that balance + twice the buffer), the account is flattened and locked if its value falls back to it + the buffer. Risk sizing and the steps above measure from it once armed.
  • Correlated exposure caps (Copier Setup, off by default): a net dollar cap per group of markets that move together — NQ, ES, YM and RTY by default, micros included — for one account and/or the whole desk. Entries past a cap are cut to what fits or refused; exits and hedges always go through. The Dashboard's exposure strip shows how full each cap is.
  • Sandbox preview for the dashboard's new alert checker: an alert message is run through the real parser, exits, sizing and every guard for its account and each follower, and the answer says what would be placed — nothing is placed or written to the journal.
Show 80 older versions
Version 4.41.2 November 7, 2026
  • The Connections tab's Provider column no longer reads "Provider31". NinjaTrader names most broker adapters only by number; the AddOn now uses the connection type's own name where NinjaTrader gives one (Rithmic, Tradovate…), and the dashboard shows a dash rather than a number.
Version 4.41.1 November 7, 2026
  • Charts Pro's footprint on an older AddOn now says "recompile (F5)" instead of crashing the dashboard. A copier still on 4.38.0 answered the footprint request with the plain order-flow view, the page read it as bars and the whole dashboard fell over to its error screen. The AddOn now answers 404 for any order-flow address it does not know, and the dashboard treats an answer without bars as an older AddOn.
  • A footprint bar whose last minute has no recorded last trade closes at that minute's open, not at 0. Only a damaged or hand-edited order-flow save could produce such a minute — the AddOn's own recording always stores the last trade — so this is a guard, not a fix for a bar you would have seen.
  • Saving the day's order flow (once a minute) no longer holds up the live price feed while a busy day's footprint is written out, and one minute missing its open/high/low drops only that minute from the save rather than the whole instrument's day.
Version 4.41.0 November 7, 2026
  • The dashboard's Connections tab shows each connection's provider (Rithmic, Tradovate, CQG…) and, for a connection that has dropped, the accounts it carried earlier this NinjaTrader session — so the dashboard can say which leader or follower went down with it. Adding, editing or deleting connections stays in NinjaTrader.
Version 4.40.2 November 6, 2026
  • The Live Console's SELL and BUY show the bid and the ask. The live price stream only carried trades, so both buttons showed the last trade; it now sends the inside quote whenever it moves.
Version 4.40.1 November 6, 2026
  • Live Console chart bars no longer vanish mid-chart. NinjaTrader's history request often lags by several minutes on the newest bars, so a reload left a hole. While a chart is open the AddOn keeps each minute from the live feed and fills the gap.
Version 4.40.0 November 5, 2026
  • Price alerts: set from the Live Console chart, watched on NinjaTrader's live price, sent to you once when crossed (a spike through still counts). At most 50 armed.
  • Setup tags: a TradingView alert can carry an optional "setup" name, and every journal line of that signal shows it — so results can be compared by setup.
Version 4.39.0 November 5, 2026
  • Footprint for Charts Pro: the order-flow recording also keeps each minute's open, high, low and the volume bought and sold at each price, saved with the day, so Charts Pro can draw footprint bars of 1–60 minutes counted from 18:00 New York.
Version 4.38.0 November 4, 2026
  • Order flow: each trade is read as a buyer or a seller from the bid and ask and summed per session (Asia, London, New York), per price and per minute, with the latest prints. Every signal is stamped with the buying-minus-selling of the 5 and 15 minutes before it, so you can later see whether trades with the flow did better. Recorded from when the AddOn starts watching (NinjaTrader keeps no bid/ask history) and saved each minute, so a recompile resumes the day with the gap marked.
Version 4.37.2 November 3, 2026
  • A max stop cancelled by the broker or prop firm is now said, and not fought. A prop firm's risk system can cancel a stop it does not allow — usually one risking more than its own limit. The copier used to put the stop straight back, the firm cancelled it again, and the journal said nothing about who cancelled it. Now each such cancel gets a journal line ("cancelled OUTSIDE NinjaTrader … the copier puts it back"), and after 3 in 2 minutes on the same position the copier stops re-placing it, alerts you, and the dashboard's max stop card shows the position as unprotected by a broker stop. The next position gets its max stop as usual. Cancels made on this PC — by the copier, by you in NinjaTrader or from the dashboard — never count.
  • The fix: set the account's max stop or Max Loss inside the firm's limit, so the firm keeps it.
Version 4.37.1 November 3, 2026
  • A locked account now closes a new position instead of fighting its own max stop. When an account locked by its Max Loss (or another guard) took a manual entry, the copier put the max stop on, the lock cancelled it, and the max stop went straight back — every 5 seconds, with the lock never getting to close the position. The lock now holds the max stop off while it closes the position, as its first flatten already did, and the max stop is free again once the account is flat.
Version 4.37.0 November 3, 2026
  • Stop to break-even now takes your followers with it. The order ticket's Stop to BE (key E) goes to the copier as one command. The leader's own stop moves to its entry; with only the max stop on the position, a stop for the whole position is placed at the entry and the max stop is cancelled as covered. Copying fills only (Mirror Limits/Stops off), every follower gets the same at its own entry, so a follower that filled a tick worse is not stopped at a loss. Mirroring, followers already copy the leader's stop and are left to it.
  • A follower whose break-even stop fills is not bought back in while its leader stays in the trade, as after its max stop. It follows again once the leader is flat or a new trade is copied.
  • A follower that is not connected, or whose price is not past its entry yet, is named in the journal with its stop left where it is. The dashboard says which followers were moved.
  • Followers cannot be sent Stop to BE themselves: their stop is their leader's to move.
Version 4.36.0 November 3, 2026
  • Yesterday's loss is no longer counted again today. Now and then NinjaTrader does not reset an account's realized P&L at the 18:00 New York open, so the new session started with the last one's figure (2026-11-03: one account opened at −$1,065.60 with no trade since). When an account opens a session still showing exactly the last session's figure and has not traded since, that amount is now left out of its day P&L everywhere: the window, the dashboard, the session history, and Max Loss, Trailing Drawdown and the profit cap. The journal says so once, and again when NinjaTrader resets the account itself. If anything is uncertain, NinjaTrader's own figure is used, so a loss is never hidden. The baseline is kept in MeridianCarry.json across restarts.
Version 4.35.1 November 2, 2026
  • Every flatten of a leader now takes its followers at once. 4.35.0 did it for the trade console, the dashboard and the window; a TradingView flatten alert on a leader, and a leader flattened by its own guard (Max Loss, Trailing Drawdown, profit cap, consistency guard), still left followers to the reconciliation pass a few seconds later.
  • A follower that is not connected when its leader is flattened is now named in the journal ("NOT flattened with its leader … log in and check it") instead of being skipped silently.
Version 4.35.0 November 2, 2026
  • Flattening a leader flattens its followers in the same moment — from the trade console, the dashboard's row button and the window's FLATTEN — on the instrument each follower trades (a mini leader with micro followers closes the micros). They used to be closed by the reconciliation pass about 5 s later, at a worse price.
  • A take-profit against a position no longer gets its own bracket. A signal's target and stop are placed only on the part of a fill that opened a position: a sell that only reduced a long gets none, so its exits can no longer fill straight away and put the position back on.
Version 4.34.0 November 1, 2026
  • Consistency guard (each account's rules): *Guard the consistency rule* stops new entries for the day (block) or flattens and locks to bank the day (flatten) once today's total reaches what the firm's consistency rule allows. The cap never sits below the best other day and does not apply before the evaluation has banked profit. It lifts at NinjaTrader's day reset.
Version 4.33.3 November 1, 2026
  • The "part of the … plan" notice now names the plan your subscription catalogue puts the feature on (for example Max for the copier schedule), instead of a name built into the AddOn.
Version 4.33.2 October 31, 2026
  • Signal Share is now called Twin Desk in the journal and every message this PC writes. Nothing else changes: the settings, the dashboard board and how it works are the same.
Version 4.33.1 October 31, 2026
  • Replay reaches older sessions. A replay of a session more than about a day and a half back came back with no bars: the AddOn kept the newest 2000 bars NinjaTrader returned before cutting them to the session, and for an older date those were all after it. It now cuts to the session first, so a replay goes back as far as NinjaTrader's own minute history.
Version 4.33.0 October 30, 2026
  • "Lock until the session resets" now survives a restart. A Max Loss, Trailing Drawdown or Drawdown Floor lock is kept in MeridianLocks.json and put back when NinjaTrader starts, so restarting after raising a limit no longer lifts it. A lock from an earlier trading day is dropped, so NT's reset still lifts it as before. Nothing changes while the option is off.
Version 4.32.0 October 30, 2026
  • Tilt guards (each account's Discipline settings): *Pause after any loss* — no new entries for N minutes after every losing trade — and *No sizing up after a loss* — after a losing trade the account may hold no more contracts than that trade did, until a winning trade or the next day. Closing orders always go through.
  • Pre-session checklist (Copier Setup → *Pre-session checklist*). When it is required, neither the copier engine nor the signal listener starts — by hand, from the dashboard, the schedule or a restart — until the Dashboard's *Before the open* card is done for the trading day. Its answers (bias, max loss, plan) go to the journal.
  • Past sessions for the dashboard's new Replay page: the chart's bars for any window up to three days, from NinjaTrader's own history.
Version 4.31.0 October 30, 2026
  • A live price stream for the dashboard's new Live Console (beta). While that page is open, the AddOn subscribes to the chart's instrument on NinjaTrader's own feed and sends its trades four times a second, so the forming candle moves like a TradingView chart. It is subscribed only while the page is open (shared if two tabs watch the same instrument) and dropped when the last one closes; it never touches the order path, and it cannot push the dashboard's main live feed aside.
Version 4.30.0 October 30, 2026
  • Lock until the session resets (Copier Setup → *Account guard*). When it is on, a Max Loss, Trailing Drawdown or drawdown-floor lock holds for the rest of the trading day: raising the limit or the P&L coming back no longer lifts it. NinjaTrader's day reset does.
  • Outlier check before a guard flattens (off / low / medium / high, medium by default). A P&L reading that does not add up — the account's open P&L far from its positions', or an implied price move no session makes — is read again for up to 5 seconds. A real loss is acted on; a bad tick is not.
  • Per-account limit options, in each account's panel: *flatten and lock* or *alert only* (one alert a session, the position kept); measured on the *Total* or on *closed trades only*; *after* or *before* commission.
  • Cycle accounts: an alert sent to "account": "A1,A2,A3" goes to the account already in a position on that instrument, else to the first one that is connected and not locked. When the first hits its daily limit, the next signal goes to the next one. The journal says which and why.
  • MAE / MFE: every open position's worst and best point is read every 2.5 s and goes to the bridge with the closed trade. P&L History → Insights shows them per instrument.
Version 4.29.0 October 30, 2026
  • Alerts can say much more about their exits and size. All optional — an alert without them trades exactly as before. Signal Console → *TradingView strategy alert* builds the message. - Stops and targets in points or dollars: stopLossPoints / profitPoints, stopLossUsd / profitUsd (per contract), converted to ticks on the order's instrument. - Size from risk: riskUsd (dollars) or riskPct (% of the account) lost at the stop gives the number of contracts; quantity is then the most. Needs a stop. - Scale-out targets: "targets": [{"ticks": 20, "qty": 1}, {"points": 10, "qty": 1}], up to 5. Each target gets its own stop, one-cancels-the-other, like an ATM bracket — a filled target takes its stop with it, so the stops never add up to more than the position. - Break-even (breakevenTicks, breakevenOffsetTicks) and trailing stop (trailTicks, trailStartTicks): checked every 2.5 s; the alert's stops only ever move toward the market. The max stop at the broker keeps its own distance. - A malformed exit (a target with no distance, a risk with no stop) is refused with the reason.
  • The news guard's *Protect* mode now moves stops through the same code, and its journal lines say so.
Version 4.28.0 October 30, 2026
  • Risk sizing: an entry is cut to what the account can afford to lose at its stop. Switch it on per account in its prop rules (*Size entries to the room left*). Before an order that opens or adds goes out, the copier takes the nearer of the room above the drawdown floor + buffer and what is left of the day loss limit, takes off what positions on other instruments already risk at their max stop, and cuts the order to the contracts that still fit at its stop — or refuses it when none do, with a journal line that names the numbers. The stop is the signal's own (stopLossTicks), else the account's max stop at the broker; with neither the risk cannot be priced and the order goes as sent. It applies wherever max contracts already does — a signal, a copy, the sync pass, a mirrored resize, an order edit — so a cut copy is never topped up later. Off by default: nothing changes until you switch it on.
  • News guard: a new "Protect stops and block" mode. As a red-folder window opens, every position at least 2 ticks in profit has its stop moved to break-even (never wider), then new entries are refused until the window closes, as *Block* does. The max stop at the broker keeps its own distance — it is never moved or doubled. A position not in profit keeps its stop.
Version 4.27.0 October 30, 2026
  • Signal Share is set up on its own board, for every PC. Copier Setup → Signal Share now shows your main PC on the left and one column per linked PC, like *Who copies whom*. Each PC lists its own accounts: on the main PC pick the broadcaster accounts, on each other PC pick the receiver accounts and each one's size. Save on a column and that PC applies it at once — you no longer have to make a PC the main one to set it up. The copier's leaders and followers are not touched. - Several accounts on each side. The main PC broadcasts the *combined* position of its broadcasters (long 2 + long 1 = long 3); every receiver account follows it at its own size. - A copier leader can broadcast or receive; a copier follower can do neither — its orders already come from its leader, so following too would trade it twice. The board does not offer followers, the server refuses them, and this AddOn refuses one that slips through and says why. - The window says what this PC does, under the day's P&L: *PRIMARY — broadcasting …*, *RECEIVER — following on … ×0.5*, or *STANDBY*. It changes the moment you change the main PC or a receiver on the dashboard. - Sync / flatten / leave on the dashboard now act on one receiver account. - A PC never set up on the new board keeps its 4.26.0 settings until you save its column.
Version 4.26.0 October 29, 2026
  • Signal Share: your other PCs follow your main PC's position. On the dashboard (Profile → PCs, then the Signal Share card), mark a linked PC as a *receiver*. In Copier Setup → Signal Share, choose the account the main PC broadcasts and, on each receiver, the account that follows it and at what size (x0.5, x1, x2 …). After every fill on the main PC, each receiver trades the difference on its own account through the same path a TradingView signal takes: its schedule, max contracts, drawdown floor and news guard still apply, and its own followers copy it. - It follows positions, not orders: a receiver enters at market after the main PC's fill, and never mirrors resting limits or stops. - A receiver that reconnects is never replayed stale orders. It gets the main PC's current position and its age. If the position is younger than *catch-up max* (10 s), it trades to it. If it is older, it waits, and the dashboard asks you to sync, flatten or leave it. Choose *catch-up: auto* to always trade to it. - The dashboard says when a receiver is out of sync, with the reason: what it holds against what it should hold, or that it is offline while the main PC is in a trade. It tells you again when the receiver is back in sync. - Every leg is timed on one clock: the main PC's fill → sent, the server's relay, the receiver's read → order → fill, and the receiver's slippage against the main PC in ticks. - The share path is checked every 5 minutes in the session, without placing anything. Two failures in a row raise an alert. - Only your own PCs, on your own account, ever receive the share. Opening or adding to a position waits for the receiver's signal listener to be started; exits go through regardless. - A share order counts toward the receiver's daily trade limit, like any signal.
Version 4.25.5 October 29, 2026
  • A flatten or PANIC on a position with a working stop closes it on the first try. Since 4.19.3 the flatten cancelled the stop, waited for the cancel to be confirmed — and then counted the cancelled stop as a close still on its way, so it sent a close for x0 ("closing x0 now … 0 position(s) closed"). The position stayed open until the check 6 seconds later closed it. Only a cancel NinjaTrader has not yet confirmed (one that could still fill) is counted now. Found by the new end-to-end flatten test; the journal on the home PC shows it 13 times on 2026-10-21, a PANIC among them.
Version 4.25.4 October 28, 2026
  • Daily CSV exports are kept for 30 days. The copier writes CopierDaily_<date>.csv (the day's journal) just after midnight; nothing reads them back, and they piled up in the NinjaTrader folder forever. Once a day, files older than 30 days — by the date in their name — are now removed, and the journal says how many. Copy any you want to keep elsewhere before loading this build.
Version 4.25.3 October 28, 2026
  • Every configuration the copier replaces is kept. Each save that changes CopierInstConfig.json first copies the version it replaces into CopierConfigHistory beside it (the newest 50, named by when each was saved). If a save ever wipes your setup — a wrong dashboard save, a bad Load, a test pointed at the wrong copier — close this window, copy the version you want from that folder over CopierInstConfig.json, and open the window again. The copies hold the same webhook secret and Discord webhook as the file itself; keep the folder as private as the file.
Version 4.25.0 October 28, 2026
  • The Meridian GEX Levels indicator now says whether you are in positive or negative gamma. A label above its status line reads *+γ Positive gamma — moves tend to revert* or *−γ Negative gamma — moves tend to extend* for the chart's last price, with the price where it flips. This is the sign of total dealer gamma — the same reading as the dashboard's headline — and it is not the same as "above / below the HVL": in the 0DTE Net gamma view the HVL is a per-strike pivot, and price can sit above it while total gamma is still negative. New settings: *Show the gamma regime* (on) and *Draw the zero-gamma price(s)* (off). Recompile the indicator file (F5) to get it; the copier itself is unchanged — it passes the new data through as it always has.
Version 4.24.6 October 28, 2026
  • The flatten's hold on the max stop now ends when it says it does. 4.24.5 said the stop is held off "at most 15 seconds"; a flatten's own re-checks actually kept it off for up to about 30. It is now capped at 30 seconds from the start of the flatten, and released the moment the account is confirmed flat or the flatten gives up.
  • An account locked by its PROFIT CAP or Max Loss guard: you are told when its flatten is not completing. The guard re-closes a locked account every 5 seconds and has no give-up of its own, so a close that kept failing (rejected, or never filling) was said nowhere while the stop stayed held off. After 3 tries it now journals and alerts *flatten not completing — check NinjaTrader*, once. The stop stays held off while the guard keeps trying (a stop put back would stop the guard closing at all) and goes back the moment the account is flat.
  • Two flattens at once no longer cut each other's hold short. A symbol flatten that finished first ended the hold for a whole-account flatten still closing, so a stop could be placed beside that close. Each flatten now ends only its own hold.
  • A take-profit pulled to pair with the stop is put back if a flatten gives up. It was dropped during the flatten; with the position still open afterwards, the stop came back but the target did not.
  • The Safety card's *flattening* state now reads *flattening — stop changes held off*, and its tooltip states the real bounds.
Version 4.24.5 October 21, 2026
  • Flatten now completes on an account with a max stop loss (or Max Loss stop). The flatten cancelled the protective stop, and the stop check — which runs every couple of seconds — saw the position still open with no stop and put a new one straight back. The flatten counted that stop as "already closing the position", closed nothing, retried, and gave up with *FLATTEN DID NOT COMPLETE — close it in NinjaTrader by hand*. The only way out was switching the max stop off. While a flatten (and its 6-second re-check) is under way, the stop is now held off for what it is closing — at most 15 seconds, and released the moment the account is flat or the flatten gives up, so an open position is never left without its stop for good. A stop left on a flat position is still cancelled at once. The Safety card shows *flattening — stop held off* meanwhile.
  • A slow cancel no longer shrinks the flatten to nothing. The flatten waits up to 3 seconds (was 1) for its cancels to confirm before sizing the close, so a broker that takes over a second to confirm a cancel no longer leaves the position open.
Version 4.20.0 October 15, 2026
  • New copy mode: "Copy fills, mirror exits". Set it on Copier Setup → Trading rules → Copy mode. It sits between "Copy fills only" (execution mode) and "Mirror every order": - Entries: a leader's entry, including a resting limit or stop entry, reaches followers as a copied fill, at market, when it fills. - Exits: the leader's take-profits and stops on a position it holds are kept on each follower as linked copies, so they fill at the leader's price. On 2026-10-15 at 09:39, two take-profit exits copied at market after the leader's limits filled cost FFF753186 55 and 64 ticks on a fast reversal. With this mode the follower's own take-profit fills at the target. The copies are linked to the leader's orders, so they never double-close a position (2026-10-14; 4.19.6/4.19.8 cover a link lost to a restart). A leader order that opens or adds to a position is journalled as "not mirrored, its fill is copied". This is a new feature, added at the user's request during the bug-fix period.
Version 4.19.9 October 14, 2026
  • No more false "signal listener NOT RESPONDING" at every start. The health check could run in the very second the schedule (or a restart) switched the listener on, while it was still starting up. It reported "NOT RESPONDING", alerted, and didn't look again for 30 minutes, so the dashboard showed a broken listener for half an hour after every scheduled start. On 2026-10-14 at 17:55 that warning was followed by a manual restart of the listener. Now the check waits up to 20 s after a start before judging.
  • One copier window per NinjaTrader, even after an F5 recompile. The "only one window" guard was reset by every recompile. On 2026-10-14 at 14:02, a window left open from the previous compile and a new one ran side by side: - both ports were already taken ("bind error 183"); - the two windows kicked each other off the cloud link every 2 seconds; - the new window started its own copier engine beside the first, which could have copied every trade twice. Now the newest window closes the older one first and says so in the journal. The copier and the listener then come back as they were.
  • Start-up restore never switches something off. Restoring the copier and the listener at start-up used to flip them, so if something had already started them, the restore stopped them again.
  • The journal says who started or stopped the copier and the listener: from the NinjaTrader window, from the dashboard, by the schedule, by PANIC, or restored at start-up. It used to say "stopped independently" for all of them.
  • When the window opens inside your trading hours, the schedule line now reads "inside the trading hours (from 17:55 New York)". It used to look as if it were 17:55.
Version 4.19.6 October 14, 2026
  • In execution mode, followers no longer get copies of the leader's stop and take-profit. With "Mirror Limits/Stops" off, the leader's exits reach followers as copied fills. But the copier still placed copies of the leader's exits on a follower after each copied fill. On 2026-10-14 at 14:13:46, FFF753186 was long 1 with such a copy of the leader's take-profit (30187.25). The leader's take-profit filled, the follower's copy filled too, and the market copy of the leader's fill was sent beside it. The follower went short 1 until the sync pass bought it back 6 s later at 30189.75. In execution mode a follower's broker protection is its max stop / Max Loss stop. Exits are mirrored only when Mirror Limits/Stops is on.
  • A leader exit fill never closes a follower twice. If the follower holds the copier's own working copy of the exact leader order that filled (same side, type and price), no market close is sent beside it. The copy gets 1.5 s to fill. Whatever it hasn't filled is cancelled, the cancel is confirmed, and only then is the rest closed at market, never more than the account still holds. This matters with Mirror on after a restart, when the copier no longer knows which copy belongs to which leader order. Orders you place by hand are never waited on or cancelled.
Version 4.19.2 October 14, 2026
  • No visible change. Five PC-side settings (max daily trades, signals per minute, heartbeat minutes, duplicate guard, roll buffer days) are now stored so every thread reliably sees a new value. Before, they were parsed straight into fields shared between threads, which skipped that guarantee (compiler warning CS0420). From an outside review (PR #1); the rest of that PR was not taken.
Version 4.19.1 October 14, 2026
  • A strategy resync that goes through flat now ends on the right side. With "out_of_sync": "resync", an account holding long 2 when the strategy went long 5 → short 3 was sent one Sell x5. That counted as an exit, so it was cut back to x2 at the last check, and the account ended flat instead of short 3. The short-to-long direction sent a Buy for the whole size against the short position instead. Now it's two orders. First a Sell (or BuyToCover) closes what the account holds; as an exit, nothing can block it. Then, once the account is flat, a SellShort (or Buy) opens the strategy's size. That second order goes through every entry check: Max Loss lock, trade hours, contract limits. If the account isn't flat within 10 seconds, the second order isn't sent, and the journal and an alert say why.
Version 4.19.0 October 14, 2026
  • Max Loss is now also held at the broker as a stop. On 2026-10-14, DEMO4013607 had a $500 Max Loss but closed the day at -$610.84. The guard checks P&L on a timer and then flattens. With 12 MNQ ($24 a point), the market moved past -$500 in the second or two before the exit filled. Now every account with a Max Loss and an open position keeps a stop working at the broker. The stop sits where the day's loss would reach the limit: the remaining allowance (Max Loss plus today's realized P&L) divided by the position's dollars per point, rounded toward the position. It tightens as the position grows or the day's losses mount, and widens after a profitable trade. If the max stop is also on, the tighter of the two is used. The timed guard still runs as well. A fast market can still fill the stop beyond its price, but the stop is already at the broker and doesn't wait on the PC.
  • The stop check no longer skips an account when NinjaTrader is updating its orders at that moment. It used to log "Safety stop check failed … Collection was modified" and wait for the next pass. Now it re-reads the account.
Version 4.18.5 October 14, 2026
  • Leaders and their followers survive a restart while a broker login is still connecting. On 2026-10-13 at 18:47, F5 opened the window before the FFF login was up. The saved setup made FFFUNDED147536 and FFFUNDED122325 leaders, followed by FFF529226 and FFF753186. When those accounts connected ten seconds later, they were only added as available. The leaders weren't ticked, and the two followers came back enabled but following nobody. The next automatic save (at 01:01) then wrote that to disk. Now a leader in the saved setup is ticked again the moment its account connects. A follower whose leader hasn't connected yet keeps that leader as "waiting". And a save made while they're offline writes the setup as it was. The journal says which leaders it is waiting for.
  • A hold on a follower also ends at the leader's own flat fill, not only on a sync pass. The sync skips a follower for a few seconds after each leader fill. If the leader went flat and traded again inside that window, the hold stayed on, and a rejected copy of the new trade wasn't repaired.
Version 4.18.1 October 13, 2026
  • A follower's max stop is cut to size, not cancelled, when a copy reduces the position. Since 4.17.1 the copier fits the account's own stop the moment it sends a reducing order. But it read the position after creating the order, and NinjaTrader lists a new order straight away, so the order was counted twice. On 2026-10-13 at 10:30 a short 2 being bought 1 read as "going flat", and the max stop was cancelled instead of cut to 1. The follower was without a stop for about 4 seconds, until the safety pass put it back. The position is now read before the order is created. The same fix applies to a signal's own exits.
Version 4.18.0 October 13, 2026
  • Change or cancel a working order from the dashboard. A new "Working orders" card on the Dashboard lists every working order on every connected account: what it is (a signal's order, an exit, a follower's copy, the max stop, or one placed by hand), its size and prices, and its time in force. - Edit changes the price (stop and/or limit) or the size. Prices round to the instrument's tick. - Cancel takes two presses. - A leader's order moves its followers' copies with it. - The same rules as every other order apply: - an exit can't be made larger than its position (it would open the other side); - an entry can't grow past max contracts or while a guard lock holds; - a follower's orders are its leader's copies, so you change the leader's; - the max stop is set on Copier Setup, because the copier would put it back. Anything that can't be changed shows why. Every change and cancel is written to the journal.
Version 4.17.3 October 12, 2026
  • Trade hours are New York time, whatever the PC's clock is set to. That's the same clock as the schedule, the daily trade limit and the drawdown peak. Trade hours and the session-end flatten used to follow the PC's clock, so on a PC in Chicago or London the entry gate opened at the wrong time and the flatten fired at the wrong moment. If your PC is already on New York time, nothing changes. The window shows "Trade Hours (NY)".
Version 4.17.0 October 12, 2026
  • The watchdog. Every few seconds the copier checks five rules on each of its accounts (leaders and enabled followers): 1. A follower is never on the opposite side of its leader. 2. A follower doesn't hold a position while its leader is flat. 3. A position has a stop when its max stop loss is on. 4. No exit the copier placed is left working on a flat account. 5. The copier's exits are never larger than the position. A rule that stays broken past its grace period (15 s for the wrong side, 30 s for the others) means the copier didn't repair it by itself. You'll see a red "Safety check failed" panel on the dashboard, a WATCHDOG line in the journal, and an alert (needs the matching server update). The journal says again when the rule passes. These checks look at the actual state of the accounts, so they also catch problems that come from bugs no test or review has found.
Version 4.16.8 October 12, 2026
  • Strategy sync: a closing signal can no longer open a position. TradingView only says "buy" or "sell". When a sell meant to close the last 3 contracts reached an account that was already flat, it opened a short 3. A strategy's alert can now also send its position before and after the order (market_position, prev_market_position, and optionally position_size). The copier then checks each order against what the account holds: - An exit closes what the account holds on that side. If the strategy goes flat it closes all of it. It never reverses into a new position. - An exit with nothing to close is not placed, and you get an alert. - An entry that doesn't fit the account follows out_of_sync: wait (the default, not placed), flatten (close the account and wait for the next entry), or resync (send exactly what brings the account to position_size). - Alerts without these fields work exactly as before. The Signal Console has the ready-to-paste alert message.
Version 4.16.7 October 12, 2026
  • A risk guard no longer acts on a momentary P&L reading. Right after a partial close NinjaTrader can count the closed contracts twice for a moment. On 2026-10-12 a $451.50 Total read as $618.00 for an instant, so a $500 Max Profit cap flattened a leader, and the lock lifted two seconds later. Max Loss, Trailing Drawdown, Max Profit and the drawdown floor now act only when a second reading about a second later says the same. A lock is released the same way. When the second reading disagrees, the journal says the reading was ignored.
  • No stop is copied onto an account the copier is closing. When a guard flattened a follower, NinjaTrader still reported the old position for a moment, and the leader's stop (Sell x12) was copied onto the now-flat account. It was cancelled about 7 seconds later, but if it had been hit in that time it would have opened a short. Exits are no longer copied onto a locked account, or onto one the copier flattened in the last 15 seconds.
Version 4.16.6 October 12, 2026
  • Only your dashboard can use this PC's listeners from a browser. The control API and the signal listener answered every website (Access-Control-Allow-Origin: *): a page you visited could read your settings — the listener secret with them — or send PANIC. Now only the Meridian dashboard and pages on this computer are allowed; any other web page is refused. TradingView, the bridge link and other non-browser senders are unaffected.
Version 4.16.5 October 12, 2026
  • A reversal gets a max stop on the right side. Going from long to short (or back) used to MOVE the old stop — a Sell stop above the market, which NinjaTrader refuses, so the new position had no max stop and errors repeated. The old stop is now cancelled and a new one placed on the correct side.
  • Exits left over from the old side are cancelled. A take-profit or stop that belonged to the position before it reversed — including a signal's own target and stop — would have ADDED to the new position if hit. It is cancelled, on every account, as leftover exits on a flat position already were on followers.
  • Exits are never larger than the position. After a partial close, the copier's own targets and stops (a signal's, a follower's mirrored ones) are trimmed to the position, newest first — a stop for 3 on a position of 2 would have closed it and opened 1 the other way. Long and short alike.
  • A follower corrected into a trade gets the leader's stop as well as its target. The mirrored exits shared one size limit, so a target for the whole position left no room for the stop.
Version 4.16.4 October 12, 2026
  • Max trades per day counts a trade already open when the rule is switched on. It used to start counting from the next entry, so one more trade than the limit got in.
Version 4.16.3 October 11, 2026
  • Exits are never refused by an entry gate. A signal that only closes or reduces a position now passes the trade hours, the max leader size and the daily trade limit — an exit at 16:01 used to be refused and leave the position open. A copied exit is no longer held by the daily trade limit either, and exits no longer use up its slots.
  • Flatten and PANIC cancel every order that can still fill — including one still on its way to the broker or partly filled; such an order used to survive the flatten and could reopen a position.
  • Every piece of a partly filled entry gets its stop and target. NinjaTrader reports a multi-contract order as several executions; the alert's stop and target used to be placed for the first one only, leaving the rest of the position without them.
Version 4.16.2 October 11, 2026
  • The Day P&L leaves out the execution check's account. Its nightly test buy and sell (SimCheck) cost a few dollars that showed in the header's Day P&L and in today's P&L History cell, though the trades and the recorded history already left them out.
Version 4.16.1 October 11, 2026
  • Contract rolls happen on the right day. An alert that names only a root (MNQ, MES, GC, CL…) used to roll on NinjaTrader's "expiry" minus the roll buffer — but that date is the first day of the contract month, so MNQ would have switched to March on Nov 26, two weeks before the market does (Dec 10), and CL would still have traded a contract after it stopped trading. The roll now follows NinjaTrader's own rollover schedule — the dates its charts roll on — for every futures product. Without that schedule: the CME equity indexes roll the Thursday 8 days before expiry, and metals and energies follow their own rules; anything else keeps the old rule and warns.
  • The journal says which contract a root resolved to, by which rule, and when it rolls next.
  • TradingView's own spellings are understood: "MNQ1!", "CME_MINI:MNQ1!", "MNQZ2026".
Version 4.16.0 October 11, 2026
  • Settings are edited on the dashboard only. The AddOn window now shows the day's P&L, PANIC, sign-in and pairing, the signal listener, Start/Stop and the activity log. The leader, follower, filter and advanced settings groups (and Save / Load) are hidden: Copier Setup on the dashboard edits every one of them, and a save there applies here at once, exactly as before. Nothing about how settings are stored or applied has changed — the groups are hidden, not removed.
  • The listen port, the one setting still edited here, saves as soon as you leave its box.
Version 4.15.1 October 11, 2026
  • The daily execution check accepts a sim account the copier is not using. Every connected account is listed in the follower table, switched off, until it is given a role — and 4.15.0 refused any account in that table, so a new "SimCheck" account failed with "is a leader or a follower". Now only an account that is actually copying (an enabled follower with a leader, or the leader of an enabled follower) is refused.
  • A check that cannot start (wrong account, not flat, not connected) now says it is a setup problem, not that orders may not be reaching the broker.
Version 4.15.0 October 11, 2026
  • Daily execution check (POST /api/sim-canary, run by the bridge once a day and on demand): buys and sells 1 contract (MES by default) on the simulation account set in Copier Setup, timing both fills — proof that an order really goes through end to end. Refuses unless the account's name starts with "Sim", it is connected, flat with no working orders on the instrument, and neither a leader nor a follower. That account is kept out of the journal's fill lines, the P&L history and the trade ledger. Off until an account is set.
Version 4.14.0 October 10, 2026
  • Late signals are judged by what they would do. A signal's age runs from the bridge's receipt, so time spent waiting for this copier to reconnect counts. A market entry older than 3 seconds, or a limit/stop entry older than 30 (both settable on the dashboard's Copier Setup, 0 = no limit), is not placed: it is journalled as "Rejected: expired …", offered for a deliberate re-send, and an alert goes out. An exit — anything that only closes or reduces — is always placed, however late. A late reversal closes the old position and does not open the new one.
  • POST /api/canary: the bridge's end-to-end check of the signal path (queues a no-op on the order router and times it; reports whether the listener and copier are on). Places nothing, journals nothing.
Version 4.13.4 October 10, 2026
  • The heartbeat names the accounts holding an open position (op), so the bridge can escalate when a copier goes silent with money in the market.
  • Alerts may carry the price TradingView saw — a "signalPrice" field set to the strategy's order price (or "price" set to the bar's close; the exact line to paste is on the dashboard's TradingView vs reality tab). It is never used to place the order: it is recorded on the signal's journal line for the dashboard's TradingView vs reality report. Text that is not a number is ignored, never a parse failure.
Version 4.13.3 October 10, 2026
  • No alert floods. The same Discord alert repeated within five minutes is sent once; the next one says how many it stands for. A burst of rejections no longer gets the channel rate-limited.
Version 4.13.2 October 10, 2026
  • No late buy-in mid-trade. A follower that is flat while its leader has been in a trade for more than 30 seconds (re-enabled, unlocked or connected mid-trade) is no longer bought in at market without a stop; it follows from the leader's next trade. Switch on Copier Setup → Join open trades to keep the old behaviour. A copy that failed moments ago is still retried.
  • Faster reconnects. After a dropped connection or a server restart the copier retries within 15 seconds at most (was 60).
  • The "FLIP FILL" diagnostic goes to NinjaTrader's Output window, not the journal.
Version 4.13.1 October 10, 2026
  • No double orders on a fast fill. The sync check could see a follower out of line in the instant between its leader's fill and the follower's copy being placed, and send a correction on top of the copy (a sell twice, then a buy back). It now waits a few seconds after any fill before comparing positions.
  • A closed-out account is not bought back. When an order the copier did not place takes a follower flat — a prop firm's liquidation, the broker's auto-liquidate, or you closing it by hand — the copier no longer tries to re-open the position. It follows again on the leader's next trade.
  • Rejections say why. A rejected order's journal line now carries the broker's reason and error code.
  • No endless retries. After two five-minute pauses of rejected corrections, the copier stops correcting that position and says so once; the next copied fill on the account starts it again.
Version 4.13.0 October 9, 2026
  • The schedule now runs the signal listener too. At the stop time the listener is shut first (no new signal can re-open a position during the flatten), then the flatten and the copier stop as before. At the start time both come up — engine first, listener last. A session start also completes a half-run pair (engine on with the listener off, or the other way round), and a listener left on after a manual engine stop is still shut at stop time. A manual change during the day is respected, as before.
Version 4.12.2 October 9, 2026
  • Update notice in the Meridian window. When a newer AddOn is published, a banner under Day P&L says so and its Download button opens the download. If you joined the beta (dashboard → Profile), beta builds are offered too. Copying is never affected by an old version.
Version 4.12.1 October 9, 2026
  • Overnight schedules. The copier schedule accepts a stop time earlier than its start, so the futures day (18:00 → 16:55 New York) can be entered. An overnight session counts as the day it ends, the way CME counts it: with Mon–Fri chosen it starts Sunday evening and the last session ends Friday.
  • The discipline guard's "no entries in the first / last minutes" rule works with an overnight session (18:00 → 17:00) too.
Version 4.12.0 October 9, 2026
  • The copier now reports its version and build stamp in the heartbeat, so the dashboard shows which build every linked PC runs and flags an outdated one. Trading is never gated on the version — an old build keeps copying.
  • Updating replaces only the AddOn. Your webhook secret and your PC's pairing are kept, so there is nothing to set up again afterwards.
Version 4.11.2 October 8, 2026
  • A follower that hits its daily profit target or loss limit keeps its leader. It used to be unticked, so the next trading day it had to be assigned again; it is now held for the rest of the day and resumes by itself.
  • The "this account is locked" line is written once to the journal instead of on every signal.
Version 4.11.1 October 8, 2026
  • A bare futures root such as ES resolves to the front-month future, not a stock with the same symbol. Fixes "No chart data" for ES on the Signal Console.
Version 4.11.0 October 8, 2026
  • Exits are always copied, even when an entry guard (news, discipline, a trade window) is holding the follower.
  • Copies size to the leader's resulting position, so a follower can never end up on the wrong side or larger than its ratio allows.
  • Sync corrections obey every rule an ordinary copy obeys, and wait for copies still in flight instead of doubling them.
  • Turning order mirroring on or off takes effect at once; cancelling or moving a leader's working order is mirrored to the followers.
  • A leader's safety-stop fill is copied. A webhook with a quantity of 0 or less is refused.
Version 4.10.3 October 8, 2026
  • In execution-copy mode, a leader's filled limit or stop is copied to the followers at market, so a follower can no longer be left with a resting order the leader no longer has.
Version 4.10.2 October 8, 2026
  • Reconciliation waits for copies in flight before correcting a follower, and its journal lines say why a correction was sent ("Sync correction: …").
Version 4.9.2 October 7, 2026
  • The midnight daily summary stays in the journal after a restart.
Version 4.9.1 October 7, 2026
  • The copier reports its running version to the dashboard.
Version 4.9.0 October 7, 2026
  • Schedule. Start the copier, then flatten and stop it, at the times and on the weekdays you choose, skipping US market holidays.
Version 4.8.0 October 7, 2026
  • Per-strategy rules. Each TradingView strategy gets its own switch, the accounts it may trade and its largest quantity.
Version 4.7.0 October 7, 2026
  • Discipline guards: pause after a losing streak, cap trades per day, keep entries out of the first and last minutes of the session, and stop for the week or month at a loss you set. Closing a position is never blocked.
  • 4.7.1 keeps the evaluation tracker's settings across restarts.
Version 4.6.0 October 7, 2026
  • Max stop loss in dollars per contract, held at the broker and paired with the copier's target.
Version 4.5.0 October 7, 2026
  • Safety stop at the broker, so an open position is protected even if the PC or NinjaTrader goes down.
Version 4.4.0 October 7, 2026
  • GEX level alerts, checked against NinjaTrader's live price.
Version 4.3.0 October 7, 2026
  • News guard around red-folder economic releases.
Version 4.2.0 October 7, 2026
  • Prop-firm account rules (drawdown floor, profit target, contract limits), a heartbeat to the dashboard, and alerts by email, Telegram and push.
Version 4.1.0 October 7, 2026
  • Copy timing for every order in the journal, and orders placed off the UI thread for lower latency. 4.1.1–4.1.4: a webhook signal's leader fill is copied at once, never twice, and the AddOn pre-compiles at startup.
Version 4.0.0 October 7, 2026
  • Risk limits become per-account management; seven guard and settings fixes.