Keep your NinjaTrader trading chart fast with the multi-chart relay
Some indicators need a lot of data. Session Levels needs weeks of history to find every level that is still unbroken, and Hammer needs Tick Replay to rebuild orders on past bars. Load all of that on the chart you trade and it opens slowly and lags. The relay moves that work to small background charts, and the chart you trade just draws the results.
Updated 16 October 2026
How the relay works
Session Levels, Volume Profile, Hammer, Range Engine, Delta Profile, Refine and HTF FVG each have a Role setting with three choices:
Standalone (the default) computes and draws on its own chart, as a single indicator always has.
Publish computes on its chart and shares the result.
Viewer does none of the heavy work. It draws what the Publisher on its channel shares, mapped onto its own bars, on any timeframe.
The sharing happens in memory inside NinjaTrader. A channel is the instrument’s root symbol, such as NQ or ES, so every contract month pairs and the link survives rollover.
An example layout for an MNQ trader. Each background chart loads only what its job needs.
Why it keeps charts fast
Tick Replay runs on one small chart. Tick Replay replays every recorded trade on every loaded day, so its cost grows with the days loaded and with each chart that has it on. With the relay, only one background chart replays trades, for Hammer, Delta Profile and Volume Profile, with as few days as they need.
Long history stays off the chart you trade. Session Levels keeps unbroken levels as far back as the chart’s loaded history, so a level from three weeks ago needs three weeks of bars. Refine compares each candle with the same time of day over 20 sessions, so it needs about three weeks of bars too. On a Publisher chart those bars cost the chart you trade nothing.
Viewers don’t compute. A Range Engine Viewer runs no engine and adds no data series. A Session Levels Viewer tracks no sessions of its own. A Hammer Viewer draws the marks its Publisher shares. A Delta Profile Viewer reads no ticks; it adds up the minute totals its Publisher shares, over its own window. A Volume Profile Viewer draws the session profiles its Publisher shares, binned to its own rows. A Refine Viewer finds no gaps of its own; it draws the zones its Publisher shares, in its own style. An HTF FVG Viewer loads none of the 5m, 15m, 1H and 4H data; it draws the gaps its Publisher shares, with its own timeframe toggles.
One Publisher feeds many charts. Your 1-minute chart, your 5-minute chart and a second monitor can all draw the same levels without each working them out again.
Each chart does the job it suits. Range Engine needs 5, 15 or 60-minute bars, while you probably trade a 1-minute chart. Each keeps its own timeframe.
The background charts still use memory and processor time. What changes is where: the heavy loading happens once, away from the chart you click on.
A small chart with Tick Replay on and a day loaded. For the Percentile and Adaptive thresholds, load as many days as Time-of-Day Buckets compares (5 by default).
Tick Replay. The chart you trade needs none, and any number of days.
A 1-minute chart on the full (ETH) session with Tick Replay on and at least as many days loaded as Sessions kept (2 by default). It can be the same chart as Hammer’s Publisher.
Tick Replay. Each chart still picks its own window (Sess, Vis, Bars or Time), row size and labels.
A 1-minute chart on the 24-hour (ETH) template with Tick Replay on, and Historical Session Count set to the most any Viewer shows (5 by default, so about 6 days loaded). It can be the same chart as Hammer’s Publisher.
Tick Replay and the session history. Each chart still picks its own session, display mode, rows and value area.
A background chart of the timeframe whose zones you want, with at least 21 days loaded for the 20-session volume baseline. It can be the same chart as Session Levels’ Publisher. Tick Replay is optional: it gives zones from before the chart loaded a POC, but replays every loaded day.
Three weeks of history, and Tick Replay if you use it. Viewers draw the Publisher’s zones on any timeframe, each in its own style, colors and tier filters.
A 1-minute background chart, which loads the 5m, 15m, 1H and 4H data for it. It can be the same chart as Session Levels’ and Refine’s Publisher. No Tick Replay needed.
Four extra data series and the gap detection. Viewers draw the gaps on any intraday timeframe, each with its own timeframe toggles, colors and styles.
We built the relay for exactly these cases: so Session Levels could load enough days to show every level, and Hammer could run Tick Replay on a single day, without either slowing down the chart you trade.
Set it up
Open a background chart for each job. Load the data its job needs, as in the table above. A small window in another workspace is fine.
Add the indicator with Role set to Publish on each background chart.
On the chart you trade, add the same indicators with Role set to Viewer. A role change takes effect when the chart reloads.
Trading a micro? Range Engine and HTF FVG map MES to ES, MNQ to NQ, MYM to YM, M2K to RTY, MGC to GC and MCL to CL by themselves, on the Publisher too, so a micro Publisher feeds full-size Viewers. Delta Profile, Volume Profile and Refine Viewers map the same way, so publish those three on the full-size contract. For Session Levels and Hammer, set the same Channel, such as NQ, on the Publisher and the Viewer.
Check the badge on the Viewer’s toolbar pill. It should read live.
Either chart can load first. A Viewer picks up its Publisher as soon as it starts sharing, with no reload.
Knowing the link is live
Every Viewer shows a status badge on its toolbar pill, so you never trade off stale levels without knowing:
Live: the Publisher has been heard from in the last 10 seconds.
Stale: a Publisher is registered but has gone quiet, for example a frozen chart, a dead feed or a closed market.
Load (Volume Profile, Range Engine, Delta Profile, Refine and HTF FVG): the Publisher’s chart is reloading its history, after opening, F5 or a dropped data connection. The Viewer keeps what it was showing and goes live as soon as the Publisher has caught up. Session Levels and Hammer stay live through a reload.
Cached (Session Levels, Range Engine, Delta Profile, Volume Profile, Refine and HTF FVG): no Publisher yet, so the Viewer draws the last copy saved to disk. Session Levels saves it as often as every 5 seconds, so its levels are on the chart straight after a restart.
Off: no Publisher on the channel.
Delta Profile, Volume Profile, Refine and HTF FVG add Wait when a live Publisher has nothing to share yet and Month when the Publisher is on a different contract month (the profile or zones are hidden rather than drawn at the wrong prices). Delta Profile and Volume Profile also show Part when the Viewer asks for more history than the Publisher keeps.
Session Levels allows one Publisher per channel: start a second one on the same channel and it takes over, then hands the channel back when it closes.
Limits
One NinjaTrader. The relay shares in memory, so Publisher and Viewer must run in the same NinjaTrader.
Keep the background charts open. Close a Publisher and its Viewers’ badges show it. Session Levels keeps the last levels on the chart until a Publisher is back, Refine and HTF FVG keep the last zones for up to three days, and Volume Profile its last profiles.
Automation runs on the Publisher. Session Levels and Refine Viewers leave their Strategy Builder plots empty, so run strategies on a Standalone or Publish chart.
A Refine Viewer shows its Publisher’s zones. They come from the Publisher’s timeframe and detection settings; the look and the tier and iFVG buttons are the Viewer’s own. For two timeframes, run two Publishers with different Relay channel names.
An HTF FVG Viewer shows its Publisher’s gaps. They come from the Publisher’s detection settings (minimum gap size, caps, mitigation type); the timeframe toggles, Gaps count and look are the Viewer’s own. Each zone starts on one of the Publisher’s bars, so a 1-minute Publisher places zones exactly on every Viewer.
Delta Profile and Volume Profile reach back as far as their Publisher keeps. A Delta Profile Viewer’s window, including Vis scrolled back, stops at the oldest session its Publisher keeps (Sessions kept, 2 by default). A Volume Profile Viewer shows at most its Publisher’s Historical Session Count of past sessions.
Common questions
Do I have to use the relay?
No. Standalone is the default role, and each indicator works on a single chart as before. The relay is for when one chart would otherwise have to carry everything.
Which tools have Publish and Viewer roles?
Session Levels (free), Volume Profile (free), Hammer, Range Engine, Delta Profile, Refine and HTF FVG.
Can the background charts be in another workspace?
Yes. A Publisher shares with Viewers on any chart in the same NinjaTrader, in any open workspace. The charts only need to stay open.
Does the relay work between two computers?
No. It shares in memory inside one NinjaTrader. Each computer runs its own Publishers.
Does a Viewer need Tick Replay?
No. A Viewer draws what its Publisher shares, so the Tick Replay and the long history stay on the background charts.
What happens to my Viewers when a Publisher chart reloads?
They keep what they were showing and read Load until the Publisher has worked through its history again, then go live. That covers F5, a reload after a dropped data connection and reopening the workspace.
Try it free
Session Levels and Volume Profile are free and have all three roles. Hammer, Range Engine, Delta Profile, Refine and HTF FVG are part of the suite, which is in a free private beta.