Version 1.9 · NinjaTrader 8 · English edition © 2026 TTW Trading Systems PTE. LTD. · Flow.42 Analytics · All rights reserved.
Context first. Pressure second. Execution last.
Table of Contents
- Overview
- What you see on the chart
- The five detection methods
- The candle body filter
- Session logic and session windows
- Labels, tooltips and sound
- Full parameter reference
- Suggested starting settings
- Troubleshooting
- Glossary
1. Overview
Flow.42 VolSpike highlights the bars where volume surges well above normal, the footprint of sudden interest or larger players stepping in. When a bar's volume stands out from the recent flow, VolSpike marks it, colors it by direction, and can label it with the numbers behind the call.
What sets VolSpike apart is choice of method. "Above normal" can be measured several ways, and different markets and styles favor different ones. VolSpike offers five detection methods and lets you run exactly one at a time: a simple moving-average baseline, a faster exponential one, two statistical anomaly measures, and a session-aware mode with its own per-session thresholds. You pick the lens that fits; the indicator keeps the others out of the way.
VolSpike is a context tool. It tells you where unusual participation showed up, marked and measured, so you can fold that into your own read. It does not tell you when to buy or sell. The decisions remain yours. It can also quietly feed other Flow.42 tools: VolDrive, for instance, can suppress its arrows on bars VolSpike has flagged.
2. What you see on the chart
Each detected spike gets a marker at the bar, placed just off the high for a bullish bar or the low for a bearish one. The marker's color tells you the direction: green for a bullish spike (close above open), red for a bearish one (close below open), and yellow for a neutral spike (open equals close). All three colors are configurable.
Next to the marker, an optional label shows the spike's details (the volume and the supporting numbers) drawn in a clean rounded box whose colors, opacity and size you control. The label can scale automatically as you zoom so it stays readable. Hovering a marker opens a tooltip with the full breakdown, and a spike can also raise a sound alert. Every one of these is optional; at its simplest, VolSpike just drops a colored marker where volume stood out.
3. The five detection methods
VolSpike runs exactly one detection method at a time. The indicator enforces this automatically, so enabling one disables the others. Each answers "is this volume unusual?" in a different way.
3.1 SMA Logic (default)
The simplest method, and the default. VolSpike keeps a simple moving average of volume over a Lookback window and flags a bar as a spike when its volume reaches a chosen multiple of that average, set by Spike Multiplier. A multiplier of 3 means the bar traded at least three times the recent average. It is intuitive, stable, and a good place to start. The baseline is always taken from prior bars, so the current bar never inflates its own threshold.
3.2 EMA / EWMA
The same idea as SMA Logic, but the baseline is an exponential average, set by EMA Length with its own Spike Multiplier. An exponential average weights recent bars more heavily, so it adapts faster to a shifting volume regime. Choose this when you want the baseline to react more quickly than a plain moving average.
3.3 EWMA Z-Score
A statistical method. Rather than a simple multiple, it measures how far the current bar's volume sits from an exponentially weighted mean, in standard deviations (a Z-score). The Half-Life sets how quickly older bars lose influence (a longer half-life is smoother), and the Z-Score Threshold sets how extreme a bar must be to count: 3.0 means three standard deviations above normal. This adapts to changing volatility in the volume itself, flagging what is genuinely anomalous rather than just large.
3.4 Median + MAD
A robust statistical method, built to resist outliers. It compares the current bar against the median of a Lookback window and the median absolute deviation around it, then applies a robust Z-Score Threshold. Because medians ignore the influence of a few extreme bars, this method does not get "trained" by past spikes the way a mean-based measure can. It shines in noisy markets where the occasional giant bar would otherwise distort an average-based baseline. A higher threshold (commonly 4 or more) suits its robust scale.
3.5 Session Logic
A different approach entirely: instead of a statistical baseline, it applies plain per-session minimums. A bar qualifies only if it clears both a minimum volume and a minimum price range for its session, with separate thresholds for the Pre-RTH (pre-market) and RTH sessions, since those sessions trade at very different volumes. This is the most direct method when you simply want "at least this much volume and this much movement" during each part of the day. It also respects the global body-size filter described next.
4. The candle body filter
Above all five methods sits one global filter: Min. Body Size (%). It requires the candle's body to be at least a given percentage of its full range before the bar can be marked at all. Bars with a tiny body and long wicks, the indecisive ones, are quietly skipped no matter which detection method is active. This keeps spikes anchored to bars that actually went somewhere, rather than high-volume bars that churned and closed flat. The default asks for a fairly decisive body; lower it to let more bars through, raise it to insist on conviction.
5. Session logic and session windows
Two separate groups deal with sessions, and they do different jobs.
Session Logic (method 3.5) is one of the five detection methods: the per-session volume and range thresholds that decide what counts as a spike when that method is active.
Session Settings is the time-window gating that applies more broadly. It defines a Pre-Market window and an RTH window, each switchable with its own start and end time, so VolSpike can confine its marking to the hours you care about. With Ignore Session Filter on, the windows are bypassed entirely and spikes can be marked at any time. Times are entered in your local zone and accept both 24-hour and 12-hour formats.
6. Labels, tooltips and sound
Labels. With Show Labels on, each spike carries an info label near its marker. You control its colors (text, background, border), its background opacity, its corner rounding, and its placement via the marker and text distance offsets. Auto-Scale Text lets the label grow and shrink with zoom between a minimum and maximum size, with a sensitivity control over how aggressively it scales; turn it off to lock the label to a fixed size.
Tooltips. Hovering a marker opens a tooltip with the spike's metrics. Enable Marker Tooltips turns this on, Marker Hitbox Size sets how large the hover target is, and Marker Tooltip Includes Values decides whether the volume, range and body figures appear in it. A few further settings (max hover items, visible margin, mouse throttle) tune how the tooltips are computed for responsiveness.
Sound. Enable Sound Alerts plays a sound when a spike is detected, using the Sound File you name (a file or a NinjaTrader resource).
Help panel. A built-in help panel keeps the basics on the chart. Show Help Panel toggles it (also via Ctrl+H), Enable Help Hotkey governs the shortcut, and its width, height and opacity are adjustable.
7. Full parameter reference
The settings appear in the NinjaTrader properties panel, grouped as you see them there. "Default" is the value the indicator ships with. Remember that only one detection method is active at a time.
00 Candle Min Size
| Setting | Default | What it does |
|---|---|---|
| Min. Body Size (%) | 60 | The minimum candle body as a percentage of the bar's full range. Bars below this are ignored across all methods. |
01 SMA Logic
| Setting | Default | What it does |
|---|---|---|
| Enable SMA Logic | On | Uses a simple moving average of volume to detect spikes. |
| Lookback (bars) | 50 | The number of bars used for the volume moving average. |
| Spike Multiplier (×AvgVol) | 3.0 | A bar is a spike when its volume reaches this multiple of the average. |
| Draw Once Per Bar | On | When on, only one spike marker is drawn per bar across all methods. |
02 EMA / EWMA
| Setting | Default | What it does |
|---|---|---|
| Enable EMA/EWMA | Off | Uses an exponential average of volume to detect spikes (faster-adapting baseline). |
| EMA Length | 50 | The period length for the volume EMA. |
| Spike Multiplier (×EMA) | 3.0 | A bar is a spike when its volume reaches this multiple of the EMA. |
03 EWMA: Z-Score
| Setting | Default | What it does |
|---|---|---|
| Enable EWMA-Z | Off | Uses an exponentially weighted baseline and a Z-Score threshold on volume deviations. |
| Half-Life (bars) | 34 | The half-life, in bars, for the exponential decay. Higher is smoother. |
| Z-Score Threshold | 3.0 | How far above normal a bar must be to trigger, in standard deviations (3.0 = 3σ). |
04 Median + MAD
| Setting | Default | What it does |
|---|---|---|
| Enable Median+MAD | Off | Uses median and median absolute deviation for robust, outlier-resistant spike detection. |
| Lookback (bars) | 50 | The number of bars for the rolling median/MAD window. |
| Z-Score Threshold | 4.0 | The robust Z-Score threshold to trigger (e.g. 4.0). |
05 Session Logic
| Setting | Default | What it does |
|---|---|---|
| Enable Session Logic | Off | Marks bars only when they meet per-session volume and range minimums (and the global body-size filter). |
| Pre-RTH Min Volume | 300 | The minimum volume for a Pre-RTH (pre-market) bar to qualify. |
| Pre-RTH Range (Ticks) | 8 | The minimum price range, in ticks, for a Pre-RTH bar to qualify. |
| RTH Min Volume | 3000 | The minimum volume for an RTH bar to qualify. |
| RTH Range (Ticks) | 8 | The minimum price range, in ticks, for an RTH bar to qualify. |
06 Session Settings
| Setting | Default | What it does |
|---|---|---|
| Ignore Session Filter | Off | When on, no session gating is applied and spikes can be marked at any time. |
| Use Pre-Market | On | Enables the Pre-Market session window. |
| Pre Market Start (HH:mm) | 09:00 | The Pre-Market start time, in your local time. Accepts 24-hour and 12-hour formats. |
| Pre Market End (HH:mm) | 13:00 | The Pre-Market end time, in your local time. |
| Use RTH | On | Enables the Regular Trading Hours window. |
| RTH Start (HH:mm) | 15:00 | The RTH start time, in your local time. |
| RTH End (HH:mm) | 22:00 | The RTH end time, in your local time. |
Colors
| Setting | Default | What it does |
|---|---|---|
| Bullish Spike Color | Lime | The color for bullish spikes (close above open). |
| Bearish Spike Color | Red | The color for bearish spikes (close below open). |
| Neutral Spike Color | Yellow | The color for neutral spikes (open equals close). |
| Text Color | White | The text color for info labels. |
| Text Background | Black | The background color for labels. |
| Text Border | DimGray | The border color for labels. |
| Text Background Opacity | 50 | The label background opacity. Accepts 0 to 100 (percent) or 0 to 255 (alpha). |
Display
| Setting | Default | What it does |
|---|---|---|
| Distance (Ticks) | 0 | The offset, in ticks, from the bar anchor (high for bullish, low for bearish) to the marker. |
| Text Distance (Ticks) | 1 | The additional offset, in ticks, from the marker to the text label. |
| Show Labels | On | Draws the information text near the marker. |
| Text Size | 11 | The base font size for the label, at the reference zoom level. |
| Enable Auto-Scale Text | On | Scales the label font with chart zoom, between the min and max sizes. |
| Text Size Min | 8 | The minimum auto-scaled font size. |
| Text Size Max | 22 | The maximum auto-scaled font size. |
| Auto-Scale Sensitivity | 1.0 | How aggressively the text scales. 1.0 is normal; higher scales faster. |
| Corner Radius (px) | 6 | The rounded-corner radius, in pixels, for the labels. |
Sound Alerts
| Setting | Default | What it does |
|---|---|---|
| Enable Sound Alerts | Off | Plays a sound and raises an alert when a spike is detected. |
| Sound File | (none) | The sound file or NinjaTrader resource name to play. |
Tooltips
| Setting | Default | What it does |
|---|---|---|
| Enable Tooltips | On | Enables mouse-over tooltips on markers. |
| Max Hover Items | 300 | The maximum number of tooltip regions kept in memory. |
| Visible Margin Bars | 20 | How many bars beyond the visible range are prepared for tooltips. |
| Mouse Move Pixel Throttle | 0.5 | The minimum mouse movement, in pixels, before hovers are re-tested. |
| Enable Marker Tooltips | On | Shows a tooltip when hovering a marker. |
| Marker Hitbox Size (px) | 14 | The size of the square hover area around the marker. |
| Marker Tooltip Includes Values | On | Includes volume, ticks and body values in the marker tooltip. |
99 Help & Hotkey
| Setting | Default | What it does |
|---|---|---|
| Show Help Panel | n/a | Shows or hides the help panel. Also toggled with Ctrl+H. |
| Enable Help Hotkey | n/a | The master switch for the help hotkey. |
| Assigned Help Hotkey | CTRL + H | The shortcut that toggles the help panel. Read-only. |
| Help Panel Width (px) | n/a | The width of the help panel in pixels. |
| Help Panel Height (px) | n/a | The height of the help panel in pixels. |
| Help Panel Opacity (%) | n/a | The opacity of the help panel, from 0 to 100. |
8. Suggested starting settings
Start with the default SMA Logic at a lookback of 50 and a multiplier of 3.0: robust, intuitive, and a good baseline for most instruments. Keep tooltips on so you can hover a marker and see exactly why it fired.
From there, match the method to the market. For a baseline that adapts faster to shifting conditions, switch to EMA/EWMA with similar settings. For noisy instruments where the occasional giant bar would distort an average, use Median + MAD with a threshold of 4 or more. Its robustness keeps past spikes from skewing the baseline. For a purely statistical read of what is genuinely anomalous, use EWMA Z-Score. And when you would rather set concrete floors per session than a statistical baseline, use Session Logic with volume and range minimums suited to your instrument.
Tune the Min. Body Size (%) filter to taste: higher to insist on decisive bars, lower to let more through. And set the Spike Multiplier or Z-Score Threshold to control how many spikes you see: higher is more selective, lower is more sensitive. Since only one method runs at a time, it is worth trying two or three on your instrument and keeping the one whose marks line up best with the moves you care about.
9. Troubleshooting
No spikes are marked. Check that a detection method is enabled and that the Min. Body Size (%) filter is not too strict. A high body requirement silently skips many bars. Confirm you are inside a session window or turn on Ignore Session Filter. If you raised a multiplier or threshold high, lower it to see more.
Too many spikes. Raise the Spike Multiplier (SMA/EMA) or the Z-Score Threshold (EWMA-Z, Median+MAD), or raise the body-size filter. Each makes the method more selective.
Switching methods seems to do nothing. Only one method runs at a time, and enabling one disables the others automatically. Make sure you enabled the method you intended and that its own settings (lookback, multiplier, threshold) are reasonable for your instrument.
Spikes only appear during certain hours. That is the session gating. Adjust the Pre-Market and RTH windows, or turn on Ignore Session Filter to mark spikes at any time.
Labels are too small or too large. With Auto-Scale Text on, labels scale with zoom between the min and max sizes. Adjust those, or the sensitivity. Turn Auto-Scale off to lock the label to a fixed Text Size.
No sound on a spike. Confirm Enable Sound Alerts is on and that the Sound File name points to a valid file or NinjaTrader resource.
10. Glossary
Volume spike: a bar whose volume stands out clearly from the recent flow, by whichever method is active.
SMA Logic: detection using a simple moving average of volume as the baseline.
EMA / EWMA: detection using an exponential average, which adapts faster to recent bars.
EWMA Z-Score: a statistical method measuring how many standard deviations the bar's volume sits above an exponentially weighted mean.
Median + MAD: a robust statistical method using the median and median absolute deviation, resistant to distortion by past outliers.
Session Logic: detection using concrete per-session volume and price-range minimums rather than a statistical baseline.
Min. Body Size: the global filter requiring a decisive candle body before any bar can be marked.
Bullish / bearish / neutral spike: a spike on a bar that closed up, down, or flat; each has its own marker color.
Spike multiplier: how many times the baseline a bar's volume must reach to count (SMA and EMA methods).
Z-Score threshold: how many standard deviations above normal a bar must be to count (statistical methods).
Flow.42 VolSpike is a context and visualization tool. It does not provide automated trade signals or trading advice. Trade less. Trade better. Trade with clarity.
© 2026 TTW Trading Systems PTE. LTD. · Flow.42 Analytics · All rights reserved.