CHANGE LOG
XABCD Position Tool
New Reference Lines that mirror your entry, stop, and target onto another chart of the same instrument, plus a commission-sizing fix so your per-instrument commission overrides are honored again.
- Reference Lines ... a new XT Reference Lines drawing tool you can add to any other chart of the same instrument, and it mirrors your Position Tool's entry, stop, and target as horizontal lines on that chart. Handy for managing a trade on one timeframe while watching your levels on another. Turn the mirror on or off from your Position Tool with the new Toggle Reference Lines hotkey (Ctrl+Alt+F11). The lines use your tool's guide-line colors by default and can be recolored in the Appearance tab.
- Fixed Include Commission In Risk (and covering commissions on a breakeven stop) ignoring the per-instrument commission set in your NinjaTrader commission template ... it was falling back to the template's base rate, so on a template that sets commission per instrument the tool sized as if commission were zero. It now reads your per-instrument rate correctly, so your risk and quantity account for commission again.
Template fixes so more of your Data Display and Custom Settings stick, plus a timezone fix for session-end and news timing.
- Fixed several settings not being saved with your templates (Save As Template / Set as Default) ... Show Trade Size, Quantity Rounding (Floor / Round / Ceiling), and Restore Position Tool. They now persist and restore correctly instead of reverting to their defaults.
- Fixed the session-end auto-flatten and the news protection timing using your computer's local time instead of the chart's timezone, which could make them act at the wrong time if your machine's timezone differed from the chart. Both now use the chart clock and your instrument's session times.
A new "Pinned" floating-menu mode that stays put anywhere on the chart, the ability to set up Auto-Entry without a tool drawn, and a round of Auto-Entry reliability fixes.
- "Pinned" floating-menu mode ... drag the floating menu to any spot on the chart and it stays put while you zoom and scroll, instead of snapping to one of the four corners like "Fixed" mode. Handy when a corner is already taken by a clock, timer, or other widget
- Configure Auto-Entry with no tool on the chart ... you can now open the Auto-Entry panel and set up your profiles and trigger even when there is no Position Tool drawn, so the whole workflow can be armed before you draw anything
- Fixed upgrading a saved template wiping your saved Auto-Entry and Plot Trigger settings ... they now carry through a template migration untouched
- Fixed the Auto-Entry panel's "Save as Default" being able to leave a half-written file ... it now writes atomically (the same way the Properties window's Save Defaults does), so an incoming signal can never read a truncated template
- Fixed several Auto-Entry execution issues on fast signals ... a possible crash, re-entrancy, the wrong profile being applied, and a double-submission
- Fixed Auto-Entry signal handling running on the wrong thread and occasionally drawing a duplicate tool ... routing and cleanup are now thread-safe and de-duplicated
- Fixed the SignedScalar plot trigger being able to fire mid-bar ... it now honors fire-once-per-bar like the other trigger modes, so a value that flips within a bar cannot trigger an extra entry
Template-picker improvements: an on-chart banner showing the active template, the template-cycle index kept in sync, and a fix for picking a template reverting your target count.
- Active-template banner ... the green-folder template picker now shows which template is currently loaded right on the chart, and the template-cycle hotkey index stays in sync with it so cycling always continues from the template you are on
- Fixed picking a template from the green-folder button reverting your target count ... the chosen template's targets are now applied correctly
- Template switches now finish applying their sizing and targets reliably, so your plan is fully up to date the moment you pick a template
The Auto-Entry toolbar button now appears only when you use Auto-Entry, the green Load-template button refreshes your plan like the hotkeys do, and a crash while building the order-type menu is fixed.
- The Position Tool chart-toolbar button (the Auto-Entry panel launcher) now appears only when Enable Auto-Entry is on in your default template ... if you do not use Auto-Entry you no longer see it, and you still draw the tool from NinjaTrader's Drawing Tools menu and your hotkeys as usual
- Fixed the on-chart green "Load template" button not refreshing the plan ... it now recomputes your sizing and targets from the drawn box just like the template hotkeys, so switching templates from the button actually updates the trade instead of looking like nothing happened
- Fixed a cross-thread crash that could occur when the order-type menu was rebuilt while the tool was auto-attaching to market
Dollar-accurate R-multiple targets for fixed-dollar risk, the entry line now stays put when you detach from market, a new Reduce Risk to % trailing action, and fixes to the trailing-step editor and post-drag drawing state.
- Dollar-accurate R-multiple targets ... with Fixed Dollar Amount risk, a 1R target now earns exactly your set risk in dollars (and scales for other multiples), correcting a small shortfall from contract rounding. Works long and short; other target and risk modes are unchanged
- New Reduce Risk to % action for Multi-Step (ATM Style) trailing ... on trigger the stop moves to a set fraction of the original risk (50 = half-risk, 0 = breakeven, 100 = unchanged), for hands-off staged exits
- Detaching from Attach to Market now keeps the entry where it is rather than snapping it back to the drawn price ... easier when toggling between a market and a limit entry. Stop and box width still revert to as-drawn
- Fixed the Trailing Steps editor not refreshing its Action Value field when the Action changed ... it now shows or hides live instead of needing a reopen
- Fixed the tool occasionally getting stuck in drawing mode after the first click (cleared only by Escape) ... a regression from the v1.7.0.174 flip-button fix
Stop-at-Level one-click mode, TradingView-style box layout, mid-trade trailing activation, preserve-pinned stop through Attach to Market, Ghost Label Font, Copy Trade Commentary hotkey, and a large round of attach-to-market, box layout, and order management stability fixes.
- Stop-at-Level one-click mode — draw the tool with a single click and have the stop land at a specific nearby price level automatically; combines with auto-attach so the tool is live on the market immediately after the click
- Preserve Stop Price on Attach — new option that holds the stop at its drawn price when auto-attaching to market, instead of recomputing it from the original tick distance. Useful when you have already placed the stop at a structural level and do not want the attach to move it
- Preserve pre-attach pinned stop and targets — pinning the stop or any target BEFORE clicking Attach to Market now survives the attach. The pinned absolute price is honored as the level to hold; the pin is no longer discarded and recomputed. Direction-sanity check still fires if the pinned stop ends up on the wrong side of the new entry, and the pin is fully restored on detach
- TradingView-style box layout — new Entry Anchor Side property (left or right of the current price bar) and Tool Width in Bars property for pixel-exact box width control, giving a look closer to TradingView's position tool
- Activate trailing stop mid-trade — trailing stop can now be enabled on a position that is already live, not just at entry time
- Show Scale Handles toggle — hide the scale-in drag handles from the chart without disabling the scale-in feature itself; restores cleanly from templates
- Ghost Label Font — dedicated font size and style for ghost order label text, independent of the main User Font so ghost labels can be sized differently from the live order labels
- Copy Trade Commentary hotkey — new hotkey (default: J) that copies the last completed trade's commentary to the clipboard as plain text. Commentary is cached after the trade closes so it can be grabbed even after the on-chart overlay is dismissed. Mirrors the Copy Trade Plan key in the Hotkeys tab
- Reward column in Copy Trade Plan — dollar reward per target (R multiple × per-contract risk × target qty) and a blended "if all targets hit" R total are now included in all four copy formats (Markdown, plain text, CSV, HTML)
- Suppress NT8 cancel-sound during trailing stop rebuilds is now an opt-in toggle — NinjaTrader plays a cancel sound each time the trailing stop reprices; enabling this option silences those sounds so a smooth trailing move does not produce a burst of alert noise
- Attach-to-Market settings (auto-attach, auto-pin, one-click attach) remain visible in the Properties window even when One-Click Drawing is turned off, so they can be configured independently
- Direction-sanity abort message on Attach to Market now correctly distinguishes "market has already crossed your stop" from "market is touching your stop level" to reduce false-positive warnings
- Fixed the direction-flip button silently doing nothing after the user dragged the stop or entry to a new price — the anchor's IsEditing flag was left stuck at true after any drag, which caused the flip guard to permanently bail. The fix clears both anchor IsEditing flags in ResetDragState; this also unblocks roughly 18 other guards across the tool that read the same flags
- Fixed market-following continuing while the user was mid-drag on an anchor in attached mode — the follow-tick loop no longer updates anchor positions while a drag is in progress, preventing the tool from fighting the user's drag
- Fixed the box width growing permanently wide after clicking the stop line on an attached tool — the click was triggering a panel-width recapture at the wrong moment
- Fixed box width sticking at the attached size after detaching — detach now fully restores the as-drawn geometry including the original box width
- Fixed the full diagonal line not being selectable when the tool was attached and using a custom bar width — selection hit-test now uses the rendered box corners, not the raw anchor points
- Fixed double-click on an unselected attached tool opening NinjaTrader's Drawing Objects panel — double-click is now consumed by the tool before NT8 processes it
- Fixed Tool Width in Bars being silently clamped to ~30% of the chart width — the user-set value is now honored exactly
- Fixed the entry anchor placed one bar into the future on attached tools — entry now lands on the current bar
- Fixed the box not anchoring to the entry X position when Tool Width in Bars was set, causing the box to drift as the chart scrolled
- Fixed Tool Width in Bars and Attach-to-Market Padding not applying live — changes now take effect immediately without requiring a tool redraw
- Fixed Entry Anchor Side and Tool Width in Bars not loading from saved templates
- Fixed scale-in handles drifting when the tool was moved to a different position on the chart
- Fixed Show Scale Handles not loading from the saved default template
- Fixed Stop-at-Level one-click conflicting with Stop First drawing mode — the anchor-swap that Stop First performs is now skipped when Stop-at-Level already placed the anchors correctly
- Fixed Preserve Stop Price on Attach not persisting through the runtime Apply Template path — it now saves and restores correctly alongside other attach settings
- Fixed Stop-at-Level market entry orders being blocked by the Stop First drawing-mode gate
- Fixed trailing activation threshold being recalculated from the post-breakeven entry price instead of the original drawn entry — this caused the activation level to shift after a breakeven move, potentially firing too early or too late
- Fixed trailing stop losing its target list after a reprice cycle that wiped the live order tracking — targets are now recovered from the OriginalTargets snapshot before resubmitting
- Fixed coverage-gap OCO tag not being registered in the live tracking list until after Submit() returned — on fast fills the order update could arrive before the tag was registered, causing the tool to not recognize its own stop
- Fixed orphaned working orders not being cancelled when the account netted flat externally
- Fixed FAILSAFE not being deployed for orphaned positions — previously skipped, now fires correctly to protect the account
- Fixed a fresh-entry resubmit triggering before the entry fill transition was complete, causing a double-submission on fast fills
- Fixed box width and quantity display flickering on every click while attached — equality check is now tick-tolerant so cosmetic-only anchor updates no longer trigger a full layout recapture
- Fixed on-chart notification banners not auto-clearing after their configured timeout
- Fixed button sizing not applying correctly when the chart window used a non-standard DPI dispatcher
- Fixed Show Account Name on Chart not loading from the saved default template on newly drawn tools
Major reliability release — hover-tab click handles for overlapping lines, post-breakeven trailing-stop fix, hotkey preservation across template switches, news protection refinements, atomic file writes, and dozens of order-management stability fixes.
- Hover-tab click handles for overlapping line elements — when two horizontal elements share the same screen Y (e.g. breakeven trigger at 2:1 R:R sitting on top of the 2:1 target line, or trailing-activation overlapping a target), small color-matched dots appear just past each side of the tool when you hover, giving each line its own dedicated click target. Dots only render when there is a real overlap (within 15 px on Y); isolated lines stay quiet. For a 2-line conflict, one dot lands on the right and one on the left of the tool; 3+ overlapping lines alternate sides and stack outward
- Event Trigger source for Auto-Entry — the tool can now subscribe directly to XT Pattern's PatternAlert event, so detected harmonic patterns fire auto-entries without needing a plot value to scrape
- PlotTrigger SignedScalar mode — for indicators that publish a single plot with positive values for longs and negative for shorts. Configurable per-direction pattern-code whitelists let you fire only on specific signal codes per side
- Chart-level PlotTrigger watcher — when Auto-Draw on Signal is enabled, the watcher runs at the chart level reading the saved default template, so no Position Tool needs to exist on the chart for signals to fire and auto-draw a new tool
- Auto-Entry configuration is now dumped to xtapi.log on every Arm-button click — full arming snapshot (profile, trigger, gates, limits) recorded under a single correlation ID for after-the-fact reconstruction of any auto-entry decision
- Properties window category expand/collapse state now persists across opens, so your customized property view stays the way you set it
- Auto-Entry diagnostic logging dramatically expanded — every DISARM, PROFILE select, TOOL create, EVENT receive, and SIGNAL gate evaluation writes a structured line to xtapi.log under the trade's correlation ID, making it possible to reconstruct exactly why a signal was acted on, gated, or dropped
- Trailing stop pre-validates its candidate price against the current market side before submitting — prevents wrong-side floods when the market briefly trades through the stop while a reprice is in flight
- Trailing-activation line drag is now direction-aware, matching the breakeven line's behavior — dragging on a long no longer crosses entry, and short positions invert correctly
- Target drag is clamped to the profit side of entry so a target cannot be accidentally dragged through to the stop side
- Anchor-flip drag guard is now symmetric — entry cannot be dragged past stop and vice versa while orders are working, regardless of which anchor is grabbed
- News "Move to Breakeven" action rewritten to cancel-and-replace OCO pairs cleanly, matching how breakeven works elsewhere — no more orphaned stops after a news event
- News protection actions now execute exactly once per active window, not once per tick during the window
- News currency filter matches the active news event (not the first-listed event) so multi-currency feeds protect the right trades
- All persistence sites (default template, chart state, user settings) now use atomic file writes — no more half-written files after a NinjaTrader crash or sudden close
- Per-tick debug-log interpolations gated behind their category check — when Trailing debug is off, OnMarketDataForTrailing no longer pays for string-formatting on every tick
- Trailing-handler heartbeat log — when Trailing debug is on, one throttled line per interval confirms ticks are reaching the handler, distinguishing a dropped market-data subscription from an engine that is intentionally idle
- Auto-drawn tools fall back to the local chart's instrument when AttachedTo.Instrument is not wired synchronously after programmatic creation — fixes AutoDraw failing at the chart-registration step
- Chart access during in-progress chart disposal hardened with try/catch + auto-pruning of stale chart panels from internal caches, so diagnostic logs report the real outcome instead of "chart='<error>'" placeholders
- Scale-In reprice coverage now uses a tool-scoped position count so multi-tool and partial-fill scenarios calculate correctly
- Properties window's expand/collapse state for each category persists per-session so a re-opened Properties window keeps your last layout
- Fixed trailing stop sitting dormant after the automatic breakeven move — the BE rebuild was cancelling the old stops and submitting new ones at the broker, but trailing's internal order-tracking list was not updated with the new stops, so from trailing's perspective the trade looked like it had no stops at all. The handoff now properly transfers the new BE stops into trailing's tracking, and trailing continues moving the stop as price advances. Reported by multiple customers — symptom was: BE worked, then the stop sat at entry+offset for the rest of the trade even as price ran
- Fixed template-switch hotkeys clobbering user keyboard bindings — assigning Ctrl+Shift+F12 to load a template worked once, then went silent because the loaded template was overwriting every hotkey field on the tool (Breakeven, OneClick, AttachToMarket, all Template Preset hotkeys, etc.) with whatever the template had stored. The mid-session template-switch paths (Preset hotkey, Ctrl+Alt+1-9 quick-switch, Ctrl+Alt+T cycle, right-click context menu, AutoEntry profile load) now leave hotkey assignments alone; the new-tool / default-template path still seeds new tools from saved bindings so you do not have to re-record them
- Fixed trailing progress resetting when contracts were added to an open position via scaled entry — the trailing baseline is now preserved across scaled-entry fills
- Fixed PlotTrigger firing constant false signals — many indicators use 0.0 as their default plot value, which was previously treated as a live signal. 0.0 is now treated as "not signaling" alongside NaN
- Fixed PlotTrigger reading the still-forming bar [0] instead of the just-closed bar [1] — signal values can no longer repaint mid-bar
- Fixed AutoEntrySignal being processed by every loaded AddOn instance — the subscription is now latched to a single instance so duplicate fires are eliminated
- Fixed trailing protection-owner staying stuck-released across a BE timeout — lock discipline cleaned up so trailing can recover instead of staying permanently locked
- Fixed BE acquiring protection ownership after trailing's bookkeeping had already been cleared — order reversed so trailing's state is preserved until BE has confirmed it can proceed
- Fixed trailing replacement stops occasionally over-covering the live position after a partial fill mid-reprice — over-coverage is now trimmed immediately post-submit
- Fixed BE rebuild loop carrying a stale position quantity forward when a fill arrived mid-rebuild — quantity is now re-read fresh inside each loop iteration
- Fixed TryReleaseProtectionOwner occasionally releasing a different owner's claim — switched to a compare-and-swap so each release only affects its own owner
- Fixed orphan coverage-gap stops lingering on the chart after a BE fill — orphans are now cancelled and their tags cleaned up so the next OCO group matches correctly
- Fixed ResetActiveTradeQuantity on a BE stop fill not reflecting externally-managed fills (e.g. a Chart Trader close that arrives during a BE rebuild) — the broker is now queried for fresh fill state first
- Fixed BE recovery loop consuming the same snapshot stop twice — was causing double-cancels and missing-cancel races; each stop is now consumed exactly once
- Fixed Account.Change reflection probes eating their real exceptions — TargetInvocationException is now unwrapped and the reflection lookup is cached, so failures surface in the log instead of disappearing silently
- Fixed allocation normalizer leaving multiple target indices over-allocated when total exceeded 100% — overshoot is now drained across all target indices instead of only the last one
- Fixed news currency filter checking the first-listed event instead of the currently-active event — multi-currency news feeds now protect the correct trades
- Fixed BE target snapshot omitting Submitted-state targets that the matching stop snapshot included — both snapshots now use the same state filter so BE rebuild does not silently lose a target
- Fixed BE handoff leaving a stale _pendingStopTargetReprice plan in the not-preserving branch — the plan is now nulled so the next reprice cycle starts clean
Add-On Tab is now fully order-type aware (Limit, MIT, Stop-Limit, Stop-Market), follows the entry as it moves, and ships with cleaner Width/Length controls in the property grid.
- Add-On Tab is now order-type aware. The pill automatically positions on the correct side of entry for the selected order type (Limit/MIT below entry for longs, Stop-Limit/Stop-Market above for longs — and inverted for shorts). Switching order types mid-trade mirrors the pill across entry to the new valid side without any user action.
- Add-On Tab follows the entry. When the entry anchor moves — manual drag, attach-to-market reprice, or fill at a slightly different price — the pill shifts by the same amount so the configured offset is preserved. No more chasing a stale pill that was pinned at the original entry price.
- Renamed "Add-On Tab Size" to "Add-On Tab Width" in the property grid for clarity. The setting controls the pill's vertical thickness (Small/Medium/Large).
- Replaced the numeric "Add-On Tab Length (px)" field with a friendly Small/Medium/Large preset (10/25/50 px). Pixels aren't a meaningful unit for most traders; named lengths read at a glance.
- Default Add-On Tab Width changed from Medium to Small for a less intrusive default appearance.
- Hidden the "Add-On Tab Show '+' Glyph" toggle from the property grid. The glyph defaults on and rarely needs to change; the setting still serializes into templates for power users who edit XML.
- Error messages now name the actual order type and side. For example: "Long add-on Stop-Limit must be at least 2 ticks above the entry price." replaces the generic "Move the add-on tab farther away from the entry price."
- Add-On Tab pill not appearing on the chart unless the original entry was a Limit order. The render gate has been relaxed to match the floating "+" button — both now show whenever a position is open, the tool isn't attached to market, and the Add-On Tab feature is enabled.
- Add-On Tab pill stuck at the original initialization price when the entry anchor later moved. The pill now tracks the entry tick-for-tick while preserving any custom drag offset.
- Add-On Tab validation rejected valid prices for Stop-Limit and Stop-Market add-ons because the direction check was hardcoded for Limit-style behaviour. All four order types now use the same correct side-of-entry rule.
- Click-bounce loop on the pill: clicking a long Limit pill (correctly placed below entry) was snapping the price up to entry+1 tick on MouseMove, which the MouseUp validator then rejected as "must be below," reverted, and the cycle repeated. The MouseMove clamp now matches the rest of the validators.
- Add-On Tab settings (Width, Length, Color, Initial Offset, Show Glyph) now save and restore correctly through the position-tool template, including via the user-facing Apply Template path.
Risk Subdivision Lines feature fully wired with template persistence and color wheel integration; box width and attach-to-market stability fixes; Add-On Tab template restore fixed.
- Risk Subdivision Lines — Visual reference markers drawn inside the stop area at evenly-spaced risk fractions (e.g. 25%, 50%, 75% with Count = 4). Toggle visibility with Show Risk Subdivision Lines, control marker density with Risk Subdivision Count (2–10). Line style and label style are independently customizable.
- Risk Subdivision Line Color and Risk Subdivision Text Color now appear in the Appearance tab color wheel picker alongside all other tool stroke colors, replacing the plain property-grid fields.
- Add-On Tab Color moved to the Appearance tab color wheel picker for consistency with all other color settings.
- Position tool box stretching edge-to-edge in one-click and auto-attach modes — All five _fixedPanelWidthPixels assignment sites now enforce a 30% panel-width cap via centralized helpers, preventing the box from growing beyond a usable size.
- Position tool box collapsing to a thin line after prolonged Attach-to-Market — An unconditional CaptureFixedPanelWidth call at the end of every follow-tick cycle was accumulating floating-point rounding error, gradually shrinking the stored width to near-zero. The redundant recapture has been removed; width is only re-sampled when a genuine scale change is detected.
Auto-Entry "Auto-Draw on Signal", plain-English EXPOSURE messages, and false-positive cleanup.
- Added "Auto-Draw on Signal" option (Auto-Entry group) — when armed and a signal arrives with no Position Tool drawing on the chart, the tool now programmatically creates one at market using the configured Long/Short profile, submits the trade, and leaves the drawing on the chart for review. Defaults to off (opt-in only). Template-saveable
- Added new EXPOSURE reason DRAW_FAILED — recorded when an auto-draw attempt cannot place a Position Tool on the chart, so the trade summary explains the dropped signal. All auto-draw diagnostics route through Auto-Entry Debug logging in xtapi.log
- Added persistent "Auto-Entry is a test feature — review every signal before going live" warning row at the top of the Auto-Entry panel
- EXPOSURE section labels rewritten in plain trader language — replaced bracketed code prefixes (e.g. "[EXTERNAL_CANCEL] …") with human sentences like "Stop or target was cancelled outside this tool (e.g. manually via the Orders tab or broker)"
- Auto-Entry panel buttons restyled for readability on dark themes — improved contrast on Save, Apply, and direction toggles
- Auto-Entry toolbar icon is now always visible regardless of arm state, so the panel can be opened at any time
- Fixed false EXTERNAL_CANCEL entries appearing in the EXPOSURE section after a clean 100%-coverage exit — when a target fill triggered NinjaTrader's normal OCO cascade to cancel the paired stop legs, those cancels were being recorded as exposure events even though the position was already flat. EXTERNAL_CANCEL bullets are now filtered from the rendered commentary whenever exit coverage equals entry quantity
Auto-Entry panel — drive trades automatically from any indicator signal with armed-state badge, profile selection, debug logging, and target-allocation safeguards.
- Added Auto-Entry panel — a new toolbar-launched window that lets the Position Tool listen for signals from any indicator and automatically submit trades using saved Long/Short templates as profiles. When armed, signals received from the configured Plot Trigger automatically build a bracket, submit the entry, and apply the matching side's profile (entry style, risk, distribution, breakeven, trailing, etc.)
- Added on-chart "AUTO-ENTRY ARMED" badge with two info rows — one showing the most recent signal (timestamp, direction, instrument) and one showing the active Plot Trigger configuration (indicator name, plot, comparator, level)
- Added Auto-Entry chart toolbar button — opens the Auto-Entry panel directly from the chart's main menu, styled to match NinjaTrader's built-in toolbar buttons. The button is gated on Auto-Entry Enabled so it only appears when the feature is on
- Added Auto-Entry Debug toggle (Properties → Advanced → Internal) — records every signal, gate evaluation, profile load, anchor positioning, and order submission to xtapi.log under a single correlation ID per trade, making it possible to reconstruct exactly why a signal was acted on, gated, or dropped
- Added Plot Trigger persistence — the configured indicator name, plot index, comparator, and level value are now saved with the template so an armed configuration survives template reloads and workspace restarts
- Added EXPOSURE section to Trade Commentary — explains in plain language why a position was (or could have been) left without protection, including entry rejections, protective-order rejections, OCO bracket failures, externally cancelled stops/targets, FAILSAFE close-remainder triggers, and partial-cancel states
- Added red error banner on the Orders tab of Position Tool Properties when target allocation totals are over 100% — prevents accidental over-allocation that would oversize stop quantities
- Added warning banner on the Orders tab when target allocation totals are under 100% — flags shortfalls that would leave part of the position uncovered
- Internal debug toggles (Properties → Advanced → Internal) are now alphabetized for faster discovery
- Auto-Entry panel Properties button now opens the singleton Properties window directly instead of routing through a duplicate handler
- Auto-Entry panel Submit button now flashes confirmation feedback when an arm/disarm action takes effect
- Auto-Entry panel no longer blanks the selected profile on minor edits, and the Flip/Delete buttons were removed from the panel for clarity (those actions remain available from the main tool)
- Fixed Save, Save Defaults, Close, and Apply being clickable when target allocations did not total exactly 100% — Save and friends are now blocked while the allocation is invalid, preventing saved templates from carrying over a broken target distribution
- Fixed misleading allocation warning copy that did not specify whether the total was over or under 100%
- Fixed EXTERNAL_CANCEL exposure events being recorded when the position was already flat at the moment of the cancel — those events now suppress at the source because they are NinjaTrader's OCO cascade cleaning up paired legs after a fill, not a genuine outside-the-tool cancellation
Session-end protection, partial-close reliability fixes and Attach-to-Market stability.
- Added "Flatten at Session End" option (Session Protection group) — automatically closes any open position a configurable number of minutes before the trading session ends, protecting against unintended overnight exposure. Defaults to off with a 5-minute window. Template-saveable
- "Require EOD Flat" prop-firm setting is now enforced — previously the property was stored and displayed but never acted upon. It now triggers the same session-end flatten logic automatically when enabled
- Copy Diagnostics now bundles the Position Tool's saved default template (default.xml) — captures your exact saved settings alongside the live diagnostics output
- Support window Version and Last Checked columns are now wider so version numbers and dates are fully readable without truncation
- Support window now only lists products whose DLL is present in bin\Custom — products that are not installed no longer appear as phantom entries
- Fixed partial-close leaving one or more contracts open after all targets appeared to fill — after the last target fill, the tool now waits 500ms and verifies the actual broker position; any remaining contracts trigger an immediate market close
- Fixed Scale-In repricing under-allocating target coverage when rounding across tranches — after resubmitting target orders during a scale-in event, the total submitted quantity is compared against the live position size and any shortfall triggers the same close-remainder check
- Fixed FAILSAFE stop sized to the full account position rather than the tool's own tracked quantity — in multi-tool or partial-fill scenarios this could close more contracts than intended or flip to an opposite position
- Fixed position tool lines disappearing when the chart window was resized — a NaN anchor X coordinate was silently failing the render pass for all lines on the tool
- Fixed Bar Timer freezing when Attach-to-Market price updates arrived faster than they could be processed — anchor updates are now coalesced so the bar timer thread is never starved
- Fixed breakeven stop cancellation skipping order verification under certain fill sequences; added a zero-quantity guard to prevent a zero-contract stop order from being submitted to the broker
- Fixed license activation permanently falling back to the legacy validation path after any HTTP error — the modern validation URL is now retried on the next activation attempt
Copy Diagnostics expansion — environment details, dependency version checks, upgrade status, and Support window reliability improvements.
- Copy Diagnostics now includes a full XABCD environment section — OS version, Windows build, NinjaTrader version, .NET runtime, installed XABCD component versions, and available memory, all in one place for faster support diagnosis
- Installed dependency versions are now listed in the Copy Diagnostics header; any version outside the expected range is automatically flagged
- Upgrade availability for each installed XABCD product is now shown in the Copy Diagnostics output — confirms at a glance whether you are on the latest release
- Support window now detects and surfaces a warning when the installed Shared DLL version does not match the version the products were built against
- Fixed upgrade badge appearing when the installed version already matched the server version — the check now requires the server version to be strictly newer before showing the badge
On-chart upgrade notification banner and removal of legacy version-check code.
- When a newer version of any installed XABCD product is available on the server, a small banner now appears in the bottom-left of the chart reading "⬆ XABCD Trading — Upgrade Available". Clicking → opens the XABCD Support window; clicking ✕ dismisses it for the session
- Version check now uses the same centralised server endpoint used by the XABCD Support window upgrade badge, replacing per-product polling
- Removed legacy upgrade-check code from the Position Tool that fetched a separate endpoint and rendered an inline SharpDX banner — the new WPF overlay replaces this entirely
Reduce button polish, Properties window fixes, and button order improvements.
- Add to Position button icon changed from ➕🚀 to ➕ for a cleaner look, rendered in green
- Reduce Position now appears immediately after Add to Position in the default button order in the Menu Builder
- Properties window caption simplified to "XT Position Tool Properties" (version number removed)
- Fixed Reduce Position button not appearing in the floating menu after entering a trade — the button was never inserted into the menu panel when no position was open, making it permanently invisible even after a fill
- Fixed "Reduce Position" missing from the Menu tab → Button Order list in the Properties window
- Fixed "Close Multiple Tabs — Are you sure you want to continue?" confirmation dialog appearing every time the Properties window was closed
Quick Reduce & Lock Chart Position — partially close an active trade in one click, and freeze the tool's horizontal position on the chart.
- Quick Reduce button (➖) — new floating-menu button that instantly partially closes the active position using the configured default amount (Contracts or Percent). Visible only when an open position exists; hidden otherwise
- Lock Chart Position — new Position Settings toggle that prevents the tool from snapping back to the current bar on every tick. Drag the tool anywhere on the chart and it stays there across new bars while continuing to manage the live trade normally
- Reduce hotkey (Ctrl+Shift+Q) — triggers an immediate partial close using the configured defaults without opening any dialog
- Lock Chart Position hotkey (Ctrl+Shift+L) — toggles the lock on/off from the keyboard
- New settings: Reduce default mode (Contracts or Percent), reduce default amount, show/hide reduce button, and hotkey letters for both Reduce and Lock Chart Position — all fully template-saveable
- Existing saved templates load cleanly with sensible defaults for all new settings
Scale-In order placement accuracy — DCA orders now land exactly where the preview lines show them.
- Scale-In level labels now show the exact limit price alongside the tranche number and quantity — displays "#1 x 2 @ 25306.00" instead of just "#1 x 2", using instrument-aware decimal formatting
- DCA debug logging inside TryBuildDollarCostAveragePlan is now throttled to 2-second intervals — previously every render frame (~10ms during drag) produced a full log entry, flooding the debug output with hundreds of duplicate lines per second
- DCA debug log now prints a settings summary line showing all active Scale-In template settings (distribution mode, tranche count, interval ticks, stop multiplier, at-entry mode, range percentage, show levels, and entry order type) at the top of the output
- Fixed Scale-In (DCA) orders being placed at different prices than the preview lines — the submission path was running EnsureEntryLimitPrice on the entry before building the DCA plan, shifting the entire ladder by one interval whenever the entry was at or through the market. The DCA plan is now built from the user's drawn entry anchor, and each order is placed at the exact plan price without market-dependent adjustment
- Fixed Scale-In preview lines shifting after order submission — ApplyScaledEntryAverage was moving the entry anchor to the weighted average of the DCA order prices, causing the preview to rebuild from a different entry than the one used for the actual orders
- Fixed Scale-In preview lines not matching order prices when entry is near the market — the render path was applying NormalizeManualEntryPrice (bid/ask adjustment) to preview prices, causing them to shift with every tick. The preview now uses tick-rounded anchor prices directly
- Fixed DCA Debug and Pin Debug checkmarks not saving in default templates — both flags were missing from the internal template apply path, causing them to revert to unchecked when reloading
Scale-In order placement accuracy — DCA orders now land exactly where the preview lines show them.
- Scale-In level labels now show the exact limit price alongside the tranche number and quantity — displays "#1 x 2 @ 25306.00" instead of just "#1 x 2", using instrument-aware decimal formatting
- DCA debug logging inside TryBuildDollarCostAveragePlan is now throttled to 2-second intervals — previously every render frame (~10ms during drag) produced a full log entry, flooding the debug output with hundreds of duplicate lines per second
- DCA debug log now prints a settings summary line showing all active Scale-In template settings (distribution mode, tranche count, interval ticks, stop multiplier, at-entry mode, range percentage, show levels, and entry order type) at the top of the output
- Fixed Scale-In (DCA) orders being placed at different prices than the preview lines — the submission path was running EnsureEntryLimitPrice on the entry before building the DCA plan, shifting the entire ladder by one interval whenever the entry was at or through the market. The DCA plan is now built from the user's drawn entry anchor, and each order is placed at the exact plan price without market-dependent adjustment
- Fixed Scale-In preview lines shifting after order submission — ApplyScaledEntryAverage was moving the entry anchor to the weighted average of the DCA order prices, causing the preview to rebuild from a different entry than the one used for the actual orders
- Fixed Scale-In preview lines not matching order prices when entry is near the market — the render path was applying NormalizeManualEntryPrice (bid/ask adjustment) to preview prices, causing them to shift with every tick. The preview now uses tick-rounded anchor prices directly
- Fixed DCA Debug and Pin Debug checkmarks not saving in default templates — both flags were missing from the internal template apply path, causing them to revert to unchecked when reloading
Scale-In order level visualization, Preserve Protective Orders, trailing stop target isolation, and bracket stability overhaul.
- Added Scale-In Order Level visualization — when Scale-In (DCA) mode is active, dashed guide lines appear on the chart at each planned limit entry price, with quantity labels showing the contract allocation per tranche. The preview updates live as you drag your levels and supports all distribution modes: Even, FrontLoaded, BackLoaded, and FixedInterval. When using manual scale handles instead of DCA, the same visualization shows where the scaled orders will land across the handle range
- Added dedicated font setting for Scale-In level labels — configure font family, size, bold, and italic for the tranche quantity labels independently of the main display font
- Added "Preserve Protective Orders" option — when enabled, stop and target orders remain working in the broker when the drawing tool is removed from the chart. Useful for keeping live brackets active after deleting the tool
- Scale-in range percentage boundary line is now draggable directly on the chart — drag the range line to adjust the scale-in spread boundary without reopening the Properties window
- Trade Commentary header font size doubled and title bar height increased for improved readability at normal chart zoom levels
- XT Properties window width increased so all tabs, including Advanced, are fully visible without truncation
- Tool version is now written to xtapi.log when debug tracing is enabled, making it easier to match a support log to the correct release
- Fixed trailing stop latching onto stop orders owned by other tool instances during reprice fallback — when the trailing stop lost coverage after a target fill, its recovery scan was not restricted to orders belonging to the current tool, causing it to adopt a foreign stop and move or cancel it. The scan is now limited to orders registered under the tool's own OCO tag set
- Fixed incorrect argument order in TryFindAccountPosition — account and instrument arguments were swapped, which could cause the tool to fail to detect an existing open position, leading it to treat a live trade as a fresh entry
- Fixed stale bracket allocation records preventing correct OCO group matching after a position goes flat — the allocation map is now cleared when the position closes, preventing leftover entries from interfering with the next trade's bracket setup
- Added 500ms cooldown after trailing reprice completes before the next OCO cascade is allowed — rapid order update callbacks were triggering duplicate bracket submissions within the same reprice cycle
- Blocked trailing stop reprice while the cancel latch is active — reprice attempts during an in-progress stop cancellation were fighting the cancellation flow and leaving the tool in an inconsistent state
- Fixed duplicate bracket creation when a partial fill bracket survived into the next OCO group — the bracket builder now checks whether a bracket for the surviving fill already exists before submitting a new one
- Added automatic cancellation of orphaned failsafe stops when new bracket stops are submitted — prevents duplicate stop coverage when a failsafe stop from a previous sequence lingers alongside newly placed bracket stops
- Restored missing Advanced tab in the XT Properties window — a binding error in the tab group configuration caused the tab to silently not render
- Fixed Custom Settings group not appearing in the Advanced tab after the Properties window was recreated mid-session
- Fixed Restore Defaults not resetting Drawing Order back to Entry First
Pinned target stability, floating menu placement fixes, DCA distribution template fix, and trailing stop throttle freeze fix.
- Added DCA Debug logging category — enable targeted diagnostics for Scale-In order placement without turning on all debug output
- Fixed pinned target price leaking into saved templates — a pinned price set during a live trade was being written into the template file, causing the next tool drawn to open with a stale pinned price instead of computing from the drawn levels
- Fixed pinned targets immediately unpinning when price moved after hitting Pin — ApplyChanges was being called during a live reprice and clearing the pin that had just been set
- Fixed floating menu appearing far from the tool when no default template exists — the menu offset was stored globally and carried over from a previous session's drag. The offset is now stored per tool instance and resets to a sensible default position beside the tool on first draw
- Fixed MenuDockOffset being ignored in Float mode — the offset was only applied in docked modes, leaving the floating menu anchored at 0,0 regardless of the configured offset
- Fixed Prop Badge button appearing in the floating menu when no template is loaded and the button is not in the default button list
- Fixed target box click and drag hit-test not accounting for bar offset when the tool is attached to market — clicking or dragging a target box would miss or jump because the hit region was not shifted to match where the box was visually rendered
- Fixed Ghost Pill Border defaulting to a solid color instead of transparent on new tools
- Fixed Scale-In Distribution mode not loading from the default template — the tool was always starting as Fixed Interval regardless of what was saved, causing orders to be placed around entry instead of across the entry-to-stop range. The At-Entry mode checkbox had the same problem, resulting in orders appearing on both sides of entry
- Fixed Save being blocked after the risk amount was automatically clamped to a valid value — the validation state was left in an error condition even though the clamped value was valid
- Fixed trailing stop freezing after a failed reprice attempt — the throttle timer was being reset even when the reprice call returned false, locking out all subsequent trailing moves for the duration of the throttle interval
Scale-In Order Distribution modes, DCA stop fix, and trailing stop ghost-instance interference fix.
- Added Scale-In Order Distribution modes — choose how scaled limit orders are spaced between your entry and stop: Fixed Interval (existing behavior, tick-spaced near entry), Even (equally spaced from entry to stop), Front Loaded (orders clustered near entry, spreading toward stop), or Back Loaded (orders clustered near stop, spreading toward entry). The tick interval, at-entry mode, and stop interval multiplier settings are automatically hidden when a range-based mode is selected
- Fixed trailing stop freezing, target orders doubling, and stop/target pairs being unexpectedly cancelled when multiple tool instances were present on the same chart — caused by a finished tool staying active in the background after its trade closed, leaving stale order ownership data that conflicted with the new tool's orders. When a trade finishes, the tool now fully releases its order tracking, clears its ownership claims, and stops listening to account events
- Added recovery path for trailing stop coverage loss — if an unexpected external cancellation causes the trailing stop to lose track of working stops, the tool now attempts to re-discover them from the account instead of staying permanently blocked
- Fixed Scale-In (DCA) stop loss being overridden with a tighter stop when At-Entry mode was enabled — the drawn stop is now always preserved unless the calculated DCA stop is genuinely wider
Transparent pill colors, pill corner radius control, and Restore Defaults fix.
- Added Transparent option to the color picker — available as an explicit swatch for pill fill and border colors, making labels background-free without needing to match the chart color
- Added pill corner radius slider to the Appearance panel — adjust from 0px (square corners) to 20px (fully rounded); defaults to 4px for a clean rectangle style
- Pill fill and border now default to Transparent on new tools
- Text property changes in the Appearance tab now apply immediately without requiring Save/Close
- Fixed Restore Defaults not resetting pill fill and pill border to their default transparent state
- Corrected pill corner radius default from fully rounded capsule to 4px rectangle
Prop Badge in Menu Builder, text label pills, per-target fill rows, CenterAnchor alignment, and a large round of Appearance tab stability fixes including ShowInFrontOfData and theme change reliability.
- Added Prop Badge button to Menu Builder — the prop firm badge visibility can now be toggled directly from the floating menu alongside other buttons
- Added pill background to text labels — price and value labels now render with a configurable fill and border pill behind the text
- Added Ghost Pill Fill and Ghost Pill Border color controls for staging-mode label pills
- Added CenterAnchor as a third text alignment option alongside Left and Right
- Added dynamic per-target fill rows to the Appearance tab Target Area section — each target now has its own row
- Added Dash Style, Fill Opacity %, and Width controls per target fill row
- Added EvalGuard Line and EvalGuard Text stroke controls to the Appearance tab
- Prop Badge button is hidden by default in Menu Builder to avoid cluttering the menu for users who don't use prop mode
- Prop Badge button placed above Order Type in the default floating menu order
- Theme changes now correctly overwrite per-target fills; manual user edits mark the theme as Custom to prevent theme resets from undoing them
- ShowInFrontOfData moved to the Text section in the property grid for better discoverability
- Fixed ShowInFrontOfData not taking effect — ZOrderType was not being set alongside ZOrder, leaving rendering order unchanged
- Fixed ShowInFrontOfData not loading correctly from the default template on tool creation
- Fixed ShowInFrontOfData applying one frame late on initial render
- Fixed text pill not rendering — render target was not bound to the stroke context
- Fixed text pill being invisible on first draw until the tool was selected and deselected
- Fixed Ghost Pill Fill/Border color changes not reflecting on the chart after editing
- Fixed Visual section colors not updating immediately when the theme changes
- Fixed per-target fill pickers not updating on theme change
- Fixed per-target fill pickers getting permanently stuck on the old theme color after a theme switch
- Fixed Fill #1–N colors not updating on theme change
- Fixed ShowTextLabels defaulting to false on newly drawn tools
- Fixed Menu Builder drag-to-reorder never initiating for toggleable buttons
- Fixed Menu Builder toggle click not responding correctly; drag detection now uses MouseMove threshold
- Fixed Menu Builder toggle not actually hiding the corresponding button from the floating menu
- Fixed InvalidOperationException in ApplyTheme when the Targets collection is modified concurrently during a theme switch
- Fixed auto-tab-switch in the search bar causing unexpected tab jumps when applying search filters
Per-hotkey enable toggles, Appearance tab sync, trailing stop fix, and stability improvements.
- Added per-hotkey Enable/Disable toggle to the Hotkeys tab — each hotkey can now be individually enabled or disabled without losing its key assignment
- Template preset slots now use toggle buttons instead of checkboxes for a cleaner UI
- Hotkey enable state changed from checkboxes to toggle buttons, consistent with preset slots
- Appearance tab color swatches now sync immediately when the active theme changes
- Properties search bar now restores its watermark text when cleared and auto-switches to the tab containing the matched result
- Fixed trailing stop being permanently blocked after the first target fills — premature OCO tag cleanup was discarding tags the trailing stop still needed for repricing
- Fixed position size not recalculating when switching templates while the stop is pinned
- Fixed Properties window locking up when cascading PropertyChanged handlers triggered re-entrant updates
- Fixed submit button responsiveness, menu visibility stutter, and template loading jitter
- Fixed flaky position tool behavior: pinned targets not holding their position after drag, tool resetting on timeframe switch, and scale fallback calculation errors
Stop First drawing mode, qualifying conditions for indicator targets, persistent update notifications, and Previous Bar High/Low trailing stop fix.
- Added "Stop First" drawing mode — click your stop level first, then entry, matching how traders naturally identify setups at structure levels. One-Click Drawing is automatically disabled in this mode
- Added qualifying conditions for indicator-sourced targets — set signal conditions (CrossAbove, CrossBelow, GreaterThan, LessThan) that must be met before an indicator target pins its price. Pending targets render as dashed lines at 50% opacity until the condition is met
- Update notification banner now persists on chart until clicked to dismiss — no longer disappears after 12 seconds or requires the tool to be selected
- Fixed trailing stop freezing after its first move in Previous Bar High/Low mode — an internal lock was set when the stop moved but never cleared, permanently blocking all subsequent trailing moves
- Fixed bar-close trailing not advancing after the first reprice — the bar was marked as processed before stop orders actually finished moving, causing subsequent bar closes to be skipped
- Added timeout safety net for stuck trailing stop lock — the tool now automatically recovers within a few seconds if an edge case leaves the lock stuck
- Fixed NullReferenceException crash when position goes flat while brackets are active — race condition between flat cleanup and async order update callbacks
- Fixed race condition in live order tracking when position is externally closed via Chart Trader
Prop badge template fix and workspace restore option for the position tool.
- Added "Restore Tool on Workspace Load" option — when enabled, the position tool is automatically restored when reopening a workspace. Defaults to off
- Fixed Prop Firm badge not persisting after saving and reloading a template
One-click mode and previous bar trailing stop fixes.
- Fixed one-click mode trailing stop using the previous bar instead of the correct bar
Slippage buffer for position sizing and live dispatcher latency overlay for on-chart diagnostics.
- Added "Slippage Buffer (Ticks)" setting under Risk Limits — adds configurable extra ticks to the stop distance used for position sizing, without moving the actual stop order. Accounts for potential execution slippage during fast-moving markets so realized risk stays within budget. Default is 0 (off)
- Added "Show Dispatcher Latency" toggle under Internal settings — displays a small overlay in the bottom-right corner of the chart showing order submission latency (time from clicking Submit to when the order is sent to NinjaTrader). Color-coded: green (0–150ms), yellow (151–300ms), red (>300ms). Saved/restored with templates
5x faster market data updates and chart responsiveness fix for fast-moving instruments.
- Reduced market data coalescing interval from 750ms to 150ms — position sizing and price tracking now update ~5x faster during high-volatility moments, particularly on lower timeframes
- Fixed chart becoming unresponsive after attaching to market — reverted dispatcher priority for anchor updates and chart refreshes back to Background; Normal priority was starving user input (clicks, drags) on fast-moving instruments
Entry + stop-only mode, auto micro contract scaling, text label redesign, live target management, and major external close stability fixes.
- Added "Allow No Target Orders" mode — submit entry with stop only, no targets required
- Added ability to add targets to live no-target positions using the '+' button
- Added bottom-left indicator label when menu is hidden — click or press your menu hotkey to re-toggle
- Added automatic micro contract scaling in Prop Firm Equivalent mode (MES, MNQ, MYM, M2K, MCL, MGC auto-detected at 10:1)
- Added per-hotkey modifier recording — each hotkey now stores its own Ctrl/Shift/Alt combination independently
- Added "Keep Brackets When Netted Flat" toggle under Order Handling — when enabled, if another position tool entry nets your account to flat, this tool's stop and target brackets remain open instead of being auto-cancelled
- Redesigned text label placement — replaced "Text Alignment" dropdown with three clearer controls: Show Text Labels (on/off), Text Anchor (Left/Right), and Text Direction (Left/Right). Unlocks a new placement previously unavailable. All existing templates are automatically converted
- Chart Trader manual closes now properly adjust remaining stops and targets
- OCO brackets now automatically rebuild when targets are added or removed on live positions
- Last target removal is now blocked in regular mode to prevent accidental orphaned positions
- External close coalescing with 150ms delay to prevent order storms during rapid closes
- Fixed stop order proliferation during rapid external closes
- Fixed external close LiveSync cascade causing phantom stop orders
- Fixed stop under-coverage during rapid external closes with asymmetric target allocations
- Fixed position tool stops/targets desyncing during rapid Chart Trader partial closes
- Fixed phantom-stop cascade when selling contracts during external close
- Fixed '+'/'-' target buttons not triggering OCO conversion or bracket rebuild on live positions
- Fixed "Allow No Target Orders" not persisting across template loads
- Fixed hotkey conflict detection ignoring modifiers — keys with different modifiers (e.g. Shift+Up vs Ctrl+Up) were incorrectly flagged as conflicts
Prop Firm diagnostics, indicator targets, Risk vs. Reward display, and chart state improvements.
- Added "Show Account Name on Chart" toggle under Data Display properties
- Added "Show Risk vs. Reward (RvR)" display on your trade — enabled by default
- Added Risk vs. Reward as a new default target source mode
- Added "Prop Debug" and "Chart Cache Debug" toggles under Internal properties for troubleshooting
- Prop Firm settings now fully save and load with templates
- Prop Firm settings are now persisted in chart state as a safety net
- Buying power check is now automatically skipped when Prop Firm Mode is enabled
- RvR display now shows clean format (e.g. "RvR 2.00" instead of "RvR 1:2.00")
- Improved indicator target handling — targets now validate correctly against your entry side
- Reduced excessive debug logging and chart cache noise for smoother performance
- Fixed debug flags all turning on when saving with only one enabled
- Fixed indicator targets reading prices from the wrong bar
- Fixed stale indicator pins carrying over from templates
- Fixed 6 target mode bugs found during deep testing
- Fixed indicator cache thread safety and stale workspace pin issues
- Fixed indicator targets occasionally returning zero prices in real-time
Indicator-attached targets and chart state persistence for indicator settings.
- Added ability to attach targets to indicator values — targets can now follow indicator plots in real-time
- Indicator target settings now persist through chart state saves and template changes
- Fixed chart state restore missing indicator target fields
- Fixed position sizing for zero-balance prop firm accounts
Indicator target UX polish, Chart Trader quantity mode, and plot selection fixes.
- Added "Chart Trader Quantity" risk mode — use your Chart Trader qty as the trade size
- Added indicator-attached targets feature — set targets based on any indicator's output
- Added "Update Chart Trader qty" toggle in Custom Settings
- Added descriptive help text to Per-Instrument Limits editor
- Target list now shows source-aware display names (e.g. the indicator name instead of a generic label)
- Indicator targets now auto-pin at the resolved price for stability
- Fixed display name showing "R" instead of the full name for indicator targets
- Fixed plot dropdown showing index numbers instead of plot names
- Fixed plot selection not saving when customizing indicator targets
- Fixed empty indicator dropdowns in the target customization panel
- Fixed Per-Instrument Limits rendering as a thin line in the property grid
LiveSync refinements, fill alerts, prop firm buying power skip, and stop protection improvements.
- Added configurable fill alerts for entry, stop, and target orders
- Added "Skip Buying Power Check" option in the Prop tab for funded accounts
- Added configurable hotkey to toggle menu visibility (Ctrl+Shift+H)
- Added per-instrument contract limits for multi-product trading (e.g. separate limits for ES and NQ)
- Added Contract Limit Mode with an "Equivalent" scaling option
- Added "Delete Tool" hotkey for quick cleanup
- Fill alerts now route to NinjaTrader's built-in Alert Log window
- Per-instrument limits now persist with template save and restore
- Contract distribution is now shown in the order confirmation dialog
- Chart Trader qty no longer syncs once your orders are live (prevents unwanted changes)
- Stop protection now clamps the Initial Stop Offset to preserve at least 50% of your drawn risk
- Improved error messages — zero-quantity errors now show the specific instrument involved
- Fixed LiveSync: phantom stops and throttle-skip issues during external close
- Fixed premature OCO cleanup causing stale order tracking during LiveSync
- Fixed over-cancellation during LiveSync partial close events
- Fixed stop orders being placed at entry price (immediate fill protection)
- Fixed breakeven cancelling the wrong order due to stale quantities and cross-symbol issues
Major theme system overhaul, cross-symbol fix, and chart state crash recovery.
- Added full light/dark mode detection — the tool now adapts to your NinjaTrader skin automatically
- Added "Use Theme Color" toggle for target area fills
- Added toast notification system for visual feedback on actions
- Added periodic auto-save (JSON) for crash recovery — your tool state is now preserved even after an unexpected close
- Added on-chart notification when Position Tool state is restored after a restart
- All UI colors (buttons, menus, labels, inputs, dropdowns) now respond to your NinjaTrader theme
- Theme-aware colors applied across Properties window, Prop Firm tab, Hotkeys tab, and View Stats
- Chart state is now saved on workspace save (Ctrl+S) with automatic stale file cleanup
- Two-phase restore: account-dependent work is deferred until the data connection is established
- Improved workspace restore reliability — probe instances no longer delete state files
- Fixed NQ/MNQ cross-symbol order contamination — orders on one instrument no longer affect the other
- Fixed duplicate order update subscription causing entry tracking race condition
- Fixed cross-symbol OCO bug that could cancel stops/targets on a different instrument
- Fixed transparent chart window bug during workspace restore (extensive fix across multiple restore paths)
- Fixed theme change not updating stroke/line colors immediately
- Fixed race condition and validation bugs in trade execution
- Fixed prop badge disappearing after chart idle or restore
- Fixed warning system not detecting externally placed stops
Prop Firm Mode, candle-close trailing, Stop-Market entries, and prop badge improvements.
- Added Prop Firm Mode — includes on-chart badge with progress indicators, EvalGuard integration, and account protection
- Added Stop-Market entry order type for breakout trades
- Added candle-close based trailing stop mode (trails using Previous Bar High/Low)
- Added auto-detected starting balance with yellow indicator in Prop tab
- Prop badge is now configurable — choose corner position, text size (10/16/22pt), and appearance
- Prop tab fields now sync with Risk tab values automatically
- Badge size scales with your chosen font size
- Prop tab colors updated to match the View Stats purple theme
- Search bar hidden on Prop and Menu tabs for cleaner UI
- Fixed commission calculation bugs and breakeven commission coverage not applying correctly
- Fixed market order closing immediately due to EvalGuard floor miscalculation
- Fixed multiple race conditions in EvalGuard validation
- Fixed prop badge line spacing and drag coordinate issues
- Fixed tickSize variable conflict in bar-close trailing mode
Multi-step trailing stops, XABCD News Integration, "Did You Know?" stats panel, and major UX improvements.
- Added multi-step trailing stops (ATM-style) — define step-by-step trailing behavior as your trade progresses
- Added XABCD News Integration — protect trades during high-impact news events (requires XABCD News Pro indicator)
- Added "Did You Know?" usage stats panel in Properties showing your trading patterns and tool usage
- Added alert sound dropdown for news-triggered notifications
- Added COMMISSIONS section and slippage tracking to Trade Commentary
- Added collapsible stats panel with expand/collapse toggle and Total Value display
- "DCA" renamed to "Scaled Orders" throughout the tool
- Stats panel redesigned with two-column layout, dollar value tracking, and tracking start date
- Stats panel defaults to collapsed state to save space
- XABCD News Integration section collapsed by default
- Shortened indicator-required message to avoid scrollbar in properties
- Position Sizing section moved to the top of the Risk tab for easier access
- Fixed trailing stop not initializing the original stop price correctly
- Fixed smooth trailing stop being skipped when activation distance is 0
- Fixed orphaned trailing stop when position closes during reprice
- Fixed orphaned target orders when position goes flat during trailing
- Fixed orders stuck in CancelPending state (added retry mechanism)
- Fixed properties window crash caused by missing group name resource
Restore Defaults overhaul, hover info text color, and hotkey reliability fixes.
- Added Hover Info Text color option under Appearance > Text settings
- Breakeven waiting notification now only shows for pending unfilled entries
- Restore Defaults now performs a true factory reset using hard-coded defaults
- Added missing default value definitions for complete Restore Defaults support
- Hotkey property updates now dispatch to the UI thread for reliability
- Fixed Restore Defaults not resetting target area colors, opacity, or stroke colors
- Fixed RiskMode default value not matching expected "Percent" setting
- Fixed hotkey properties not resetting properly
- Fixed incorrect property names preventing Orders tab defaults from loading
DPI fixes, performance optimization, menu improvements, and template preset hotkeys.
- Added template preset hotkeys — assign Ctrl+Alt+1 through 9 and cycle with a configurable key
- Added hotkey to toggle stop pin (Ctrl+Shift+I)
- Added "Show Trade Size" option to Data Display
- Added "Move Breakeven On First Target" option
- Restore Defaults now shows a detailed confirmation dialog listing what will be reset
- Menu and pin buttons now properly scale for DPI — no more overlapping or flickering on high-DPI displays
- Optimized rendering performance and fixed resource leaks during extended trading sessions
- Fixed menu becoming invisible after long trading sessions
- Menu now always stays on top regardless of "Show In Front of Data" setting
- Target and stop pin buttons now always stay on top
- Stop pin button now shows when the tool is selected (not just when orders are live)
- Hotkeys tab reorganized into logical groups with section headers
- Instant chart refresh when target properties change
- Target area colors now use per-target Brush type for WPF color picker support
- Fixed Qty display not updating when dragging target lines
- Fixed floating menu disappearing during chart state changes
- Fixed memory leaks causing performance lag during extended sessions
- Fixed AreaColor brush caching causing thread affinity crash
- Fixed menu anchor offsets flickering on DPI-scaled monitors
Menu Builder, custom properties redesign, risk scaling, trailing stop hardening, and commission-aware sizing.
- Added full Menu Builder with drag-and-drop reordering and live preview — customize your button layout
- Added menu button padding controls for fine-tuning spacing
- Added "Copy Plan" button (optional, toggleable)
- Added Risk Calculation section to the order confirmation dialog
- Added scale risk up/down hotkeys for quick risk adjustment
- Added template quick-switch hotkeys (Ctrl+Alt+1-9 and Ctrl+Alt+T for cycle)
- Added scaled indicator on the stop line when risk has been modified
- Added TTS audio feedback and base risk tracking for risk scaling
- Added commission-aware risk sizing — commissions are now factored into position calculations
- Added slippage tracking to Trade Commentary
- Added searchable properties window that works across all tabs
- Added property descriptions and tooltips throughout the properties window
- Added "Breakeven Cover Commissions" feature
- Added "Make Add to Position button toggleable" option
- Completely redesigned XT Position Tool Properties window with improved UX and tab layout
- Category headers are now larger than property items for better visual hierarchy
- Breakeven and trailing stop sections added to Trade Commentary for full trade narrative
- Trade Commentary redesigned with correct R calculation and chronological ordering
- Trailing stop logic hardened with circuit breaker, throttling, and timeout handling
- Entry partial fill timeout added — protection orders sync after 30 seconds
- Breakeven warning restyled to match template notification appearance
- Comprehensive user documentation added
- Fixed floating menu disappearing and not coming back
- Fixed multiple race conditions in order management and trailing stop logic
- Fixed trailing stops leaving orphaned orders behind
- Fixed targets 2 and 3 disappearing when target 1 fills during trailing stop
- Fixed cancel pending orders getting stuck
- Fixed duplicate stop orders from FAILSAFE race condition
- Fixed trailing stop double-submission after breakeven
- Fixed OCO race conditions for partial position fills
- Fixed ghost Qty label not following target line during drag
- Fixed Add Position button not hiding when trade is closed via Chart Trader
- Fixed Restore Default not resetting custom colors and font
- Fixed threading errors when using Restore Defaults
- Fixed 9 settings not loading from templates
- Fixed one-click mode bugs
- Fixed event handler memory leak
- Fixed Trade Commentary showing 0% coverage when position is externally closed
- Fixed critical race conditions for fast execution environments
Candle-based one-click modes, trailing stop OCO hardening, and massive trailing stability improvements.
- Added candle-based one-click drawing modes
- Added hotkeys to nudge entry and stop prices
- Added configurable stop reposition click modifier
- Added template preset hotkeys for quick loading
- Added risk scale hotkey with chart trader quantity sync
- Trailing stop system completely overhauled — repricing now routes through OCO plan for proper order pairing
- Added atomic lock to prevent concurrent trailing stop reprices
- Trailing stops now preserve targets during reprice cycles
- Breakeven rebuild now properly coordinates with trailing stop state
- Added fallback stop on reprice timeout for safety
- Trailing stop UI updates are now throttled for better performance
- Fixed trailing stop leaving orders behind after breakeven
- Fixed trailing stops deadlock when target resolution fails
- Fixed stale position snapshot causing false anomaly detection during reprice
- Fixed duplicate target orders from race condition during stop/target reprice
- Fixed breakeven + trailing target preservation race condition
- Fixed chart context menu after position tool removal
Dollar Cost Averaging, Trade Commentary, close trade on deletion, and live sync stops enabled by default.
- Added Dollar Cost Averaging (DCA) ladder option for scaling into positions with limit orders
- Added Trade Commentary — an on-chart overlay showing a detailed narrative of your trade (entry, exits, breakeven, R multiple, timing, and more)
- Added option to close the trade when deleting the position tool from the chart
- Live sync for stops is now enabled by default
- Trade Commentary includes timing details, coverage breakdowns, and retry reasons
- Trade Commentary overlays persist on chart until manually dismissed
- Template button now reliably appears after loading templates
- Submit button layout aligned and refined
- Order type selector button added for clearer order submission
- Fixed target fill tracking during breakeven stop coverage
- Fixed entry-only coverage using wrong quantities
- Fixed breakeven stop coverage to match live position size
- Fixed premature live cleanup during breakeven rebuild
- Fixed UI exception in XABCD Properties window
Warning system, breakeven button, hotkeys system, one-click orders, template persistence, and massive stability work.
- Added Warning Engine for position safety — alerts you to risky conditions
- Added breakeven button and dedicated breakeven hotkey
- Added full Hotkeys tab with key recording — configure hotkeys for all major actions
- Added hotkeys for: copy plan, properties, flip position, toggle visibility, and more
- Added One-Click Orders mode — place trades with a single click on the chart
- Added configurable one-click buy/sell hotkeys
- Added chart toolbar button to quickly launch the position tool
- Added "Delete" key support to clean up the position tool from the chart
- Added XBig button size option for easier access on touch screens
- Added dynamic break-even line that follows your realized profit in real-time
- Added per-target area customization (independent opacity and color per target)
- Added "Restore Defaults" control to the properties window
- Added live sync debug toggle and order handling settings
- Added stop pin toggle with pin/unpin icons
- Added account selection synchronization to the position tool
- Short trade target placement corrected
- Protective orders now staged until non-market entries are filled
- Entry and stop lines now draggable along their full segment
- Submit menu improved with order type selector and attach-to-market refresh
- One-click mode defaults to 5-bar width and supports Ctrl+click for short override
- Template persistence expanded — all hotkeys, debug flags, trailing settings, and more are saved
- User messages now load in the background to avoid blocking
- Default template preloaded asynchronously for faster startup
- Risk amount validation now shows clear feedback in the tracker
- Fixed target fill tracking cancelling the wrong stop quantity
- Fixed trailing stop stacking multiple orders while cancels are pending
- Fixed multiple trailing stop rebuild issues (stale orders, quantity limits, cancel timing)
- Fixed breakeven stop resume after trailing updates
- Fixed position tool overlay persisting after symbol change
- Fixed risk amount being overwritten when account value loads later
- Fixed duplicate AutoAttachToMarketOnDraw assignment
- Fixed floating menu not showing after selection
- Fixed cross-thread access errors in various UI operations
- Fixed OCO order regeneration on rejected orders
- Fixed account switch order cleanup issues
Risk modes expansion, scaled entries, target management buttons, animation system, theme support, and daily loss guard.
- Added new risk modes: Margin, Equity Floor, and Daily Loss Budget
- Added maximum daily loss guard to prevent over-trading
- Added commission-aware risk sizing
- Added custom target allocation percentages (set how much of your position goes to each target)
- Added cryptocurrency instrument sizing support
- Added "Keep Pinned After Market Submit" option
- Added configurable breakeven offset
- Added trailing activation type options (tick-based or Risk vs. Reward)
- Added scalable entry anchors — drag to define a price range for scaled limit entries (up to 5 orders)
- Added plus/minus buttons on chart to quickly add or remove targets
- Added smooth animation for position tool movement and target level updates
- Added drag guide line that follows your cursor while adjusting levels
- Added draggable breakeven and trailing activation lines
- Added tick distance tooltip when hovering over target lines
- Added "Clean Mode" for a simplified chart view
- Added Data Display category with show/hide options for on-chart information
- Added quantity-based profit toggle to show P&L per target based on allocated qty
- Added target allocation percentage display on target lines
- Added configurable menu dock position and offset
- Added "Always Show Menu" option
- Added maintenance margin snapshot overlay (draggable, with column layout)
- Added maximum unit quantity limit
- Added synchronized account selection panel
- Added permanent guide lines option for entry, stop, and targets
- Added auto-flip option when pinned stop is breached
- Added add-to-position workflow with mirrored add-on tab
- Risk tab reorganized with clearer property grouping
- Order Distribution moved to Position Settings for better discoverability
- Target buttons positioned near entry for easier access
- Breakeven trigger units now adjust by instrument type (ticks for futures, pips for forex)
- Risk amount and percent now sync both ways when editing
- Position tool panel width stays fixed during automated updates
- Pinned stop distance is now adjustable while attached to market
- Breakeven delay warning now only shown for scaled entries
- Breakeven trigger line stays user-controlled with scaled orders
- Template loading improved with better thread handling
- Fixed trailing stop rebuild quantity for scaled positions
- Fixed scaled entry distribution to maintain correct average price
- Fixed breakeven entry price calculation when scaling
- Fixed scaled entry target allocations for even distribution
- Fixed double-click accidentally opening position tool properties
- Fixed position tool width changing during automated stop updates
- Fixed forex pip factor conversions
- Fixed initial stop offset applying relative to wrong reference
- Fixed target ordering risk calculation
- Fixed property window deadlock when opening from chart
- Fixed template load cross-thread errors
- Fixed risk amount not syncing properly between percent and dollar modes
- Fixed recursion when using percent daily loss budget
Color themes, TTS audio, configurable submit hotkey, OCO submit improvements, and trailing stop foundations.
- Added 25+ color themes including XABCD (default), Rainbow, Neon Futuristic, and more
- Added text-to-speech (TTS) audio notifications for trade events and target hits
- Added configurable OCO submit hotkey (default: X key)
- Added tabbed properties settings window (Risk, Appearance, Breakeven, Trailing Stops, etc.)
- Added "Show In Front of Data" toggle
- Added margin maintenance mode with account cash refresh
- Added glow stroke effects (optional, disabled by default)
- Added inline breakeven warning option
- Added configurable button sizing
- Added target text color customization
- Added opacity gradient to target areas
- Added "Save Defaults" option to persist your preferred settings
- Added debug toggle categories for targeted troubleshooting
- XABCD set as the default theme with alphabetized theme selection
- Theme colors now persist in templates
- Chart refreshes when theme changes
- Default targets and Position Settings reordered for better workflow
- Property grid categories use consistent font sizing
- Default user font size adjusted to 14px for cleaner appearance
- Text coordinates snapped to pixels to eliminate jitter
- Scale-in range auto-balances for even distribution
- Scale drag prices preserved on mouse release
- Trailing stop orders consolidated into single aggregate order
- Breakeven popup now runs on UI thread for reliability
- Fixed default template not applying on first click
- Fixed target text color resetting when dragging
- Fixed target text jitter during animations
- Fixed Chart Trader order quantity not updating on UI thread
- Fixed trailing stop baseline initialization
- Fixed breakeven subscription and order tracking
- Fixed remaining orders not preserved after breakeven stop fill
- Fixed null reference errors in OnRender during teardown
- Fixed market data handlers not detaching on cleanup
- Fixed orphaned stops from guard management issues
The modern Position Tool rewrite — OCO orders, risk management, breakeven, trailing stops, and the floating menu system.
- Full OCO order submission from the drawing tool — entry, stops, and targets submitted as linked bracket orders
- Risk-based position sizing with percentage and fixed dollar modes
- Account floor guard to protect minimum account balance
- Breakeven mode with configurable text display
- Trailing stops with configurable tick distance
- Attach-to-market mode — tool follows live price for instant market order entry
- Ghost order display showing planned stops and targets before submission
- Entry-only mode for placing entries without automatic stops and targets
- Order distribution across multiple targets
- Order confirmation dialog with margin analysis
- Floating menu panel with properties button and submit controls
- Configurable font sizes and ghost target colors
- Hotkey submission support (Ctrl+Shift+X)
- Version check and user messaging system for update notifications
- Template save and load system
The original Position Tool — core drawing tool, position tracker, multi-target support, and market order submission.
- Position sizing drawing tool for NinjaTrader 8
- Position Tracker window with profit/loss display
- Multi-target support with configurable ratios
- Buy and sell market order submission
- Licensing system integration
- Support for Forex, Futures, CFDs, Indices, and Cryptocurrency instruments
- News event alerting integration
- Custom color picker and display settings
- 64-bit NinjaTrader compatibility updates
- .NET Framework 4.8 migration





