Version 1.6 · 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
- Core concepts
- Single imbalances and the context filters
- Clusters and zones
- Support / Resistance validation
- Adaptive scaling
- DOM Dominance
- The Auction Engine layer
- Footprint accuracy and reload
- Sessions, outputs and the help panel
- Full parameter reference
- Suggested starting settings
- Troubleshooting
- Glossary
1. Overview
Flow.42 VolImbalance finds the price levels inside each bar where one side of the market clearly overpowered the other, and shows them as markers on your chart. Where aggressive buyers ran over resting sellers, or aggressive sellers ran over resting buyers, an imbalance appears at that exact price. Repeated imbalances around the same level are grouped into clusters, the handful of zones that actually mattered, and those zones can then be tracked as live support and resistance.
The thinking is simple. Total bar volume tells you how much traded, but not where the pressure landed. VolImbalance looks one level deeper, at the volume traded at each price within the bar, and flags the spots where the imbalance between the two sides was large enough to be meaningful. Those spots tend to mark where real participation showed up, and price often remembers them.
On top of the per-bar footprint layer, VolImbalance includes an optional DOM Dominance module that reads the live order book (Level 2 depth) and summarizes which side holds more resting liquidity right now. The two layers answer different questions: the footprint shows where aggression already landed; the DOM shows where resting size currently sits.
VolImbalance is a context tool, not an entry signal. It shows you where pressure mattered, where price reacted, and where a zone may still be valid. The decisions remain yours.
2. What you see on the chart
The base layer is a set of imbalance markers: circles (or rectangles) drawn at the price level where an imbalance occurred. The color tells you the side:
- Bullish (bid-side) imbalances are drawn in green. They mark levels where buying pressure overwhelmed selling, and they tend to act as support.
- Bearish (ask-side) imbalances are drawn in red. They mark levels where selling pressure overwhelmed buying, and they tend to act as resistance.
The traded volume can be printed inside each marker, and a separate outline color marks context-confirmed imbalances, the ones that also passed the rejection and quality filters.
When clustering is on, repeated imbalances around the same price form shaded zones: support and resistance bands you can read at a glance, with optional labels showing how many imbalances and how much volume built the zone. When Support/Resistance validation is on, those zones are tracked: a zone that price respects stays live, while a zone price clearly breaks is either removed or faded to history with a dashed outline and a break marker.
Finally, an optional DOM overlay can show the current order-book ratio as a small label in the corner, with optional markers when the book is strongly one-sided. Hovering any imbalance marker highlights it and opens a tooltip with the full volume breakdown.
3. Core concepts
Volume at price. Rather than using only total bar volume, VolImbalance keeps a per-bar ladder of buy volume and sell volume at each price. In real time, and in historical playback with Tick Replay, this ladder is built from real trade prints. (How VolImbalance keeps this accurate across reloads is covered in Section 10.)
Bid vs ask imbalance. For a completed bar, VolImbalance compares the volume that traded on each side at adjacent price levels. When one side's volume dwarfs the other's by more than your chosen ratio, that level is flagged. A bid (bullish) imbalance is where buying overwhelmed the selling just below it; a bid imbalance acts as support. An ask (bearish) imbalance is where selling overwhelmed the buying just above it; an ask imbalance acts as resistance. This is the key read to internalize: green/bid means buyers were in control at that price, red/ask means sellers were.
Clusters and zones. A single imbalance is one data point. When several pile up around the same price, that repetition is the signal. VolImbalance groups nearby imbalances into clusters and draws them as zones, so you can ignore isolated noise and focus on areas where participation appeared again and again.
DOM dominance. Separately from the footprint, the DOM module reads resting liquidity from the live order book and computes a bid-to-ask ratio across the top levels. It is a real-time read of where size is currently resting, and it is live-only. The order book has no history.
4. Single imbalances and the context filters
At its simplest, VolImbalance draws an imbalance wherever one side's volume is at least Imbalance Ratio times the other's (3× by default), the level carries at least Min Volume, and it sits within Imbalance Depth (Ticks) of the bar's high or low. With Zero Opposing Volume = Extreme Imbalance on, a level where the opposite side traded nothing counts as a maximal imbalance, the classic footprint behavior.
That raw view shows every diagonal imbalance. To focus on the ones with a story behind them, you can turn on Require Rejection Filter, which keeps only imbalances confirmed by price rejection and any context-quality filters you enable. Those optional quality filters let you demand more before an imbalance is treated as context-confirmed:
- Local Extremes: require the rejection to happen at or near a recent swing high or low.
- Follow-Through: require a later bar to move away from the imbalance, confirming the reaction.
- Prior Directional Push: require a clear push into the level before the rejection, so you are catching a turn rather than a random print.
- Exhaustion Context: require the rejection bar to show limited further extension and a meaningful close recovery, the signature of a move running out of steam.
Each filter is independent and off by default. Turn them on one at a time: every filter you add makes the markers rarer but more meaningful.
5. Clusters and zones
Turn on Enable Cluster Detection to group repeated imbalances into zones. A cluster forms when at least Min Imbalances in Cluster imbalances appear within Cluster Price Tolerance (Ticks) of each other and together carry at least Min Cluster Volume. The grouping window can be measured in bars or in seconds (Cluster Window uses Seconds), and Cluster Lookback Bars controls how far back the scan reaches.
Several display options shape what you see. Show Clusters Only (Hide Singles) strips the chart down to zones, optionally keeping the member singles or any standalone context-confirmed singles visible. Highlight Strong Clusters emphasizes the strongest zones, and Show Strong Cluster Start Marker drops a marker where a zone first reached strong status. Cluster Source Mode decides what feeds the clusters (only the displayed imbalances, the base rejection seeds, or all raw diagonal imbalances), letting you trade breadth for precision.
6. Support / Resistance validation
A cluster zone is most useful when you know whether it still holds. Enable Support/Resistance Validation turns each drawn zone into a level that is tracked after it appears:
- Bid clusters act as Support. The zone is considered broken only when price trades below the zone's lower edge by more than your tolerance.
- Ask clusters act as Resistance. The zone is considered broken only when price trades above the zone's upper edge by more than your tolerance.
The break is measured from the zone boundary, not its center, so price can trade into the zone, test it, and react from it without invalidating it. Only a clear move beyond the edge, past the tolerance, breaks it.
That tolerance is set by S/R Deviation Tolerance, interpreted according to S/R Deviation Mode: Points (an absolute price distance, the default and the most uniform across instruments), Ticks (a multiple of the instrument's tick size), or Percent (legacy, not recommended for index futures). As starting points, ES works well around 3 points, NQ around 15, BTC around 50. When a zone fails, Invalidation Action decides what happens: Remove deletes it, or Fade keeps it as history, low opacity, dashed, stopping at the break bar with a vertical break marker where the level failed.
7. Adaptive scaling
Volume is not constant through the day: the open and close are busy, the midday lull is thin. A fixed Min Volume that is right at the open will be too strict at lunch, and vice versa. Adaptive Scaling solves this by scaling Min Volume and Min Cluster Volume automatically along the typical intraday volume curve. Your configured values act as anchors for the busiest part of the session, and the thresholds ease off during quieter periods.
Two floors keep it sensible: Min Volume Floor and Min Cluster Volume Floor set the lowest the scaled thresholds may go (roughly 50% and 75% of the anchors are good starting points). Use Day Factor additionally adapts to the whole day's pace, comparing today's cumulative volume to a typical day at the same time, helpful on unusually quiet days and half sessions, and it never raises thresholds above your anchors. Adaptive scaling needs history to learn the curve, so load at least five days of chart data. An optional Adaptive Label shows the current factor and effective thresholds; most users will not need it.
8. DOM Dominance
The DOM module is a separate, real-time layer. Enable DOM Dominance turns on a live read of the order book: VolImbalance sums the resting liquidity across the top DOM Levels (Top-N) on each side and forms a bid-to-ask ratio. The book is read bullish when that ratio is above DOM Ratio Threshold, and bearish when it falls below the reciprocal. Setting DOM Levels to 1 reads the top of book only; larger values read deeper into the stack.
The reading is shown by Show DOM Text Overlay, a small label in the top-right corner with the current ratio (its precision set by DOM Text Decimals), and optionally by Show DOM Markers when the book is strongly one-sided. Because the order book has no history, this module is live-only: it reflects what is resting in the book right now, not what happened on past bars.
9. The Auction Engine layer
If Flow.42 AuctionEngine is on the same chart, VolImbalance can let the broader auction context shade its markers. Auction Modulation keeps continuation and neutral markers at full opacity while dimming markers that run counter to the auction thesis, so the highest-confluence levels stand out; Off means no dimming. Auction Context chooses whether the dimming uses the engine's current read (Live, matching live trading) or the read as it was at each marker's own bar (Historical, for studying past behavior, even on a closed market). With no AuctionEngine on the chart, this group has no effect.
10. Footprint accuracy and reload
VolImbalance only draws footprint imbalances when it has trustworthy per-price data. Live, and with Tick Replay, it builds the ladder from real prints. For historical bars and reloads it uses, in priority order: a Footprint Disk Cache that replays the exact ladder recorded when each bar closed; Tick Replay backfill that reconstructs the ladder from tick data when no cache exists; and, only if you allow it, a synthetic estimate approximated from OHLCV bars.
The defaults favor authenticity. Enable Footprint Disk Cache is on, so a reload reproduces exactly what you saw live. Backfill missing cache from TickReplay is off by default, which keeps reloads identical to the live session; turn it on to fill gaps from Tick Replay. Allow Estimated Historical Data (synthetic) is off and is not recommended for trading decisions. With it off, bars without real data simply show no imbalances rather than guessed ones. That silence is intentional: it protects you from acting on approximated footprints.
11. Sessions, outputs and the help panel
Sessions. VolImbalance can limit its work to time windows: a Pre-Market window and an RTH window, each switchable with its own start and end time. With Ignore Session Filter on, the windows are bypassed. Times are in your local zone.
Help panel
A built-in on-chart help panel keeps the basics at hand. Show Help Panel toggles it, Enable Help Hotkey lets you open it with a shortcut (CTRL + H by default), and its width, height and opacity are adjustable. These settings are shared across charts.
Automation outputs
VolImbalance publishes two outputs that BloodHound and similar automation tools can read. The output names carry the BloodHound prefix for historical reasons; any tool that can bind to an indicator plot reads them the same way:
| Output | Value |
|---|---|
| BloodHound BID Imbalance Signal | +1 on a bid imbalance, which is bullish |
| BloodHound ASK Imbalance Signal | −1 on an ask imbalance, which is bearish |
The outputs are plotted transparently, so they never draw anything on your chart.
Your filters decide when they fire. The outputs follow the filters you have switched on in the indicator's properties. Change a filter and the outputs change with it.
Only one side fires per bar. If a bar carries both a bid and an ask imbalance, the stronger one wins: first by ratio, then by volume. If both are exactly equal, neither fires. So the two outputs never pulse on the same bar.
Read the direction carefully. A bid imbalance is built from buying and reads bullish. An ask imbalance is built from selling and reads bearish. Flow.42 AbsorptionMap uses the opposite convention, because there the aggressor is the side that failed: an absorbed bid is a short read. If you build an automation template that uses both indicators, wire each one by its own output name and do not assume the two match.
Follow-through costs a bar. With Enable Follow-Through Confirmation on, the confirmation for a bar only arrives once the next bar closes. The confirmed signal is then echoed onto the current bar so your automation can see it in real time. Expect the output to appear one bar after the imbalance it describes.
Live and historical. Live, the outputs fire on every bar the indicator processes. On historical bars they carry a value only where the indicator had real per-price data when the bar was processed: bars replayed from the Footprint Disk Cache (the last five calendar days recorded live) and, with Tick Replay on, bars reconstructed through Backfill missing cache from TickReplay. Backfill is off by default so that a reload shows exactly what you saw live. On a fresh chart the outputs therefore read 0 on older history. For a backtest or an evaluation over the loaded history, turn Tick Replay and Backfill on for that chart and reload. Without Tick Replay there is no historical output at all; the chart then shows a one-time hint.
Reading the whole history. Flow.42 indicators set Maximum bars look back to Infinite and keep it there, so a script can read the outputs on every loaded bar; a template or workspace value of 256 is corrected on load and noted in the Control Center log. Keep ALL Historical Signals affects the drawn markers only, not the outputs.
Further values are published for other Flow.42 modules. They carry no plot and cannot be selected in BloodHound or any similar tool.
12. 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.
01 Imbalance Filter
| Setting | Default | What it does |
|---|---|---|
| Min Volume | 100 | The minimum traded volume a single imbalance must carry before it is drawn. |
| Max Volume | −1 | An optional upper volume bound for an imbalance. −1 means no upper limit. |
01a Adaptive Scaling
| Setting | Default | What it does |
|---|---|---|
| Adaptive Scaling | Off | Scales Min Volume and Min Cluster Volume along the typical intraday volume curve, using your configured values as anchors for the busiest phase. Load at least five days of history. |
| Min Volume Floor | 50 | The lower bound for the adaptively scaled Min Volume. About 50% of Min Volume is a good start. |
| Min Cluster Volume Floor | 375 | The lower bound for the adaptively scaled Min Cluster Volume. About 75% of Min Cluster Volume is a good start. |
| Adaptive Label | Off | Shows a small draggable status box with the current adaptive factor and effective thresholds. Most users will not need it. |
| Use Day Factor | Off | Also adapts thresholds to the whole day's pace versus a typical day. Helps on quiet days and half sessions, and never raises thresholds above the anchors. |
02 Imbalance Clustering
| Setting | Default | What it does |
|---|---|---|
| Enable Cluster Detection | Off | Turns on detection of clusters where many imbalances appear around the same price. |
| Cluster Price Tolerance (Ticks) | 3 | The number of ticks around a price treated as the same level when grouping. |
| Min Imbalances in Cluster | 3 | The minimum number of single imbalances required to form a valid cluster. |
| Min Cluster Volume | 500 | The minimum total traded volume of all imbalances inside one cluster. |
| Cluster Lookback Bars | 200 | How many bars back are scanned when building or updating clusters. |
| Show Cluster Labels | Off | Shows a small label with count and total volume in the middle of each cluster. |
| Highlight Strong Clusters | On | Visually emphasizes strong clusters with stronger opacity or borders. |
| Show Clusters Only (Hide Singles) | Off | Hides standalone single markers, keeping zones (and optionally member or context-confirmed singles). |
| Show Context confirmed (rejection/context) | Off | With Show Clusters Only on, also draws standalone singles that are context-confirmed by the rejection and quality filters. |
| Cluster Window uses Seconds | Off | Groups imbalances using a time window in seconds instead of a window in bars. |
| Cluster Window (Bars) | 8 | The maximum bar distance between the first and last imbalance in a cluster (when using bars). |
| Cluster Window (Seconds) | 30 | The maximum time distance in seconds between the first and last imbalance in a cluster (when using seconds). |
| Cluster Keep-Alive (Bars) | 12 | How many bars a cluster stays visible after its last imbalance, when history trimming is active. |
| Persist Historical Clusters | Off | Keeps all clusters from the full loaded history without lookback or keep-alive limits. |
| Cluster Source Mode | Displayed Only | Whether clusters are built from displayed imbalances only, from base rejection seeds, or from all raw diagonal imbalances. |
| Show Cluster Member Singles | On | With Show Clusters Only on, keeps the single markers that belong to a detected cluster visible. |
| Show Strong Cluster Start Marker | Off | Draws a small marker at the bar where a strong cluster first reached strong status. |
| S/R Levels continuation | n/a | Extends S/R zones and level bars to the last bar on the chart instead of stopping at session end. |
| Enable Support/Resistance Validation | Off | After a cluster is drawn, monitors whether price respects it. Bid clusters act as Support, ask clusters as Resistance; a clear break beyond tolerance invalidates the zone. |
| S/R Deviation Mode | Points | How the break tolerance is read: Points (absolute, default), Ticks (multiple of tick size), or Percent (legacy). |
| S/R Deviation Tolerance | 3.0 | The tolerance before a support or resistance is considered broken, in the unit set above. ES ≈ 3 points, NQ ≈ 15, BTC ≈ 50. |
| Invalidation Action | Fade | What happens on a failed zone: Remove deletes it, Fade reduces it to a faint dashed remnant. |
03 Imbalance Logic
| Setting | Default | What it does |
|---|---|---|
| Imbalance Ratio | 3.0 | How many times larger one side's volume must be to count as an imbalance (3.0 = 3×). |
| Imbalance Depth (Ticks) | 2 | The distance in ticks from the bar high or low within which an imbalance is still valid. |
| Require Rejection Filter | Off | Draws only imbalances confirmed by the rejection context and any enabled quality filters. Off reproduces raw footprint-style diagonals. |
| Zero Opposing Volume = Extreme Imbalance | On | Treats a zero opposite-side volume as a maximal imbalance. Recommended for footprint-style reproduction. |
| Enable Local Extremes Filter | Off | Requires the rejection to occur at or near a recent local price extreme. |
| Local Extremes Lookback Bars | 6 | The number of prior bars used to judge whether the rejection sits at a local extreme. |
| Local Extremes Tolerance (Ticks) | 1 | How far in ticks from the recent local high or low still counts as a valid extreme. |
| Enable Follow-Through Confirmation | Off | Requires a later bar to move away from the rejection area before confirming the context. |
| Follow-Through Bars | 1 | The maximum number of future bars inspected for confirmation after the rejection bar. |
| Minimum Follow-Through Ticks | 2 | The minimum price travel away from the imbalance required for follow-through. |
| Enable Prior Directional Push Filter | Off | Requires a clear push into the rejection area before the context is confirmed. |
| Prior Directional Push Bars | 3 | The number of prior bars inspected for directional pressure into the area. |
| Min Directional Push Count | 2 | The minimum number of directional confirmations required inside that lookback. |
| Require Exhaustion Context | Off | Requires the rejection bar to show limited extra extension and meaningful close recovery (exhaustion). |
| Exhaustion Lookback Bars | 3 | The number of prior bars used to compare the rejection bar against the incoming push. |
| Exhaustion Max Extension (Ticks) | 2 | The most additional extension beyond the prior extreme still accepted as exhaustion. |
| Exhaustion Min Recovery (%) | 50 | The minimum percent of the rejection bar range that must be recovered into the close. |
04 Imbalance Visualization
| Setting | Default | What it does |
|---|---|---|
| Show Circles | On | Draws each imbalance as a circle. |
| Show Rectangles | Off | Draws each imbalance as a rectangle instead of a circle. |
| Show Volume Text | On | Prints the traded volume in the center of each symbol. |
| Show S/R Zones | On | Draws shaded support and resistance zones from imbalance clusters. |
| Ask Imbalance Color | Red | The color for bearish (ask-side) imbalances. |
| Ask Text Color | MediumVioletRed | The volume-text color on ask imbalances. |
| Bid Imbalance Color | LimeGreen | The color for bullish (bid-side) imbalances. |
| Bid Text Color | Green | The volume-text color on bid imbalances. |
| Context Confirmed Imb. Color | LightSkyBlue | The outline color for context-confirmed imbalances. |
| Opacity % | 80 | The opacity of circles and zones. Lower is more transparent. |
| Symbol Radius | 15 | The base radius of each symbol in pixels; scales with zoom. |
| Min Symbol Radius | 8 | The smallest radius allowed when zoomed far out. |
| Max Symbol Radius | 40 | The largest radius allowed when zoomed in. |
| Font Size | 10 | The font size for the volume text inside symbols. |
| Show Live Imbalance Preview | Off | Real-time only: draws provisional hollow markers on the forming bar that may vanish before close. Final markers are unaffected. |
| Live Preview Throttle (ms) | 300 | The minimum interval between preview recalculations on the forming bar. |
05 DOM Dominance
| Setting | Default | What it does |
|---|---|---|
| Enable DOM Dominance | Off | Enables the live order-book (Level 2) ratio read from resting liquidity. |
| DOM Levels (Top-N) | 10 | The number of book levels per side used for the ratio. 1 means top of book only. |
| DOM Ratio Threshold | 2.0 | Bullish when the bid/ask ratio is above this; bearish when below its reciprocal. |
06 DOM Visualization
| Setting | Default | What it does |
|---|---|---|
| Show DOM Markers | Off | Draws a marker when the DOM ratio is strongly bullish or bearish. |
| Show DOM Text Overlay | On | Shows a small top-right label with the current DOM ratio. |
| DOM Text Decimals | 2 | The number of decimals in the DOM ratio text. |
07 Performance
| Setting | Default | What it does |
|---|---|---|
| Cache Historical Bars | 500 | The maximum number of historical bars kept in the internal cache for calculations. |
| Keep ALL Historical Signals | Off | Keeps every detected single imbalance in memory without pruning older ones. |
08 Session Settings
| Setting | Default | What it does |
|---|---|---|
| Ignore Session Filter | Off | When on, the session windows are bypassed and imbalances are processed at any time. |
| Use Pre-Market | On | Enables the Pre-Market window. |
| Pre Market Start (HH:mm) | 09:00 | The Pre-Market start time, in your local time. |
| 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. |
09 Help & Hotkey
| Setting | Default | What it does |
|---|---|---|
| Show Help Panel | n/a | Shows or hides the on-chart help panel. Shared across charts. |
| Enable Help Hotkey | n/a | Lets you toggle the help panel with a keyboard shortcut. Shared across charts. |
| 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. Shared across charts. |
| Help Panel Height (px) | n/a | The height of the help panel in pixels. Shared across charts. |
| Help Panel Opacity (%) | n/a | The opacity of the help panel, from 0 to 100. Shared across charts. |
10 Footprint Cache
| Setting | Default | What it does |
|---|---|---|
| Enable Footprint Disk Cache | On | Saves the per-bar footprint so a reload reproduces exactly what was plotted live, with no synthetic estimates. |
| Backfill missing cache from TickReplay | Off | If Tick Replay is on and a bar has no cached record, allows reconstruction from tick data. Off keeps reloads identical to live. |
| Allow Estimated Historical Data (synthetic) | Off | If no tick data or cache is available, approximates the footprint from bar volume. Not recommended. |
11 Auction Engine
These settings only do something when Flow.42 AuctionEngine is on the same chart.
| Setting | Default | What it does |
|---|---|---|
| Auction Modulation | Subtle | Dims markers that run counter to the auction thesis while keeping aligned and neutral ones at full opacity. Off means no dimming. Options: Off, Subtle, Strong. |
| Auction Context | Live | Whether the dimming uses the engine's current read (Live) or the read as it was at each marker's own bar (Historical). |
13. Suggested starting settings
Out of the box, VolImbalance shows raw footprint-style imbalances: ratio 3×, Min Volume 100, zero-opposing treated as extreme. That is a good way to first see where imbalances land on your instrument and timeframe.
From there, two paths sharpen the picture. To find the levels that held, turn on Enable Cluster Detection and Enable Support/Resistance Validation, set the deviation tolerance for your instrument (ES ≈ 3 points, NQ ≈ 15, BTC ≈ 50), and watch which zones survive. To find the highest-quality single imbalances, turn on Require Rejection Filter and add the context filters one at a time (Local Extremes, then Follow-Through, then Prior Push or Exhaustion) until the markers match the turns you care about.
If you trade across the whole session, consider Adaptive Scaling so your volume thresholds stay sensible from the busy open through the midday lull. And tune the imbalance ratio to your instrument: thinner books may need a lower ratio to produce useful counts, heavier ones a higher ratio to stay selective.
14. Troubleshooting
No imbalances on historical bars. Footprint imbalances need real per-price data. Confirm the Footprint Disk Cache is on (so live-recorded bars replay), or enable Tick Replay and Backfill for older bars. With synthetic estimates off (the safe default), bars without real data show nothing rather than guesses.
Automation outputs read 0 on historical bars. The bar had no real per-price data when it was processed: it lies outside the five-day Footprint Disk Cache and Backfill is off, or Tick Replay is off on the data series. For a backtest enable Tick Replay and Backfill missing cache from TickReplay on that chart and reload. Live signals are not affected.
Support asks for diagnostics. Flow.42 indicators write nothing to the NinjaScript Output window by default. If support asks for it, create an empty file named diagnostics.on in the folder Documents\NinjaTrader 8\Flow42 and reload the indicator; it then reports how many historical bars were skipped, how long the historical pass took and, on request, timing per stage. Delete the file and reload to switch it off.
Too many or too few imbalances. Raise the Imbalance Ratio or Min Volume to thin them out; lower them to see more. On instruments with very different volume profiles, adjust these to the instrument rather than expecting one setting to fit all.
Clusters never form. Check that Enable Cluster Detection is on and that Min Imbalances in Cluster, Min Cluster Volume, and the cluster window are reachable for your instrument. Very strict values can prevent any cluster from forming.
A zone broke but is still shown. That is Fade mode keeping it as history (dashed, faint, with a break marker). Switch Invalidation Action to Remove if you prefer broken zones to disappear. Remember the break is measured from the zone edge plus tolerance. Price testing the zone does not break it.
DOM overlay shows nothing. DOM Dominance needs a live Level 2 (Market Depth) feed and is live-only. It will not populate on historical bars or without depth data. Some feeds provide fewer book levels than others; if the read seems thin, reduce DOM Levels to match what your feed delivers.
The DOM ratio never flips bullish or bearish. It is read bullish above the threshold and bearish below the reciprocal; a threshold set too high will rarely trigger. Lower DOM Ratio Threshold for a more responsive read.
15. Glossary
Imbalance: a price level inside a bar where one side's traded volume far outweighed the other's.
Bid (bullish) imbalance: buying overwhelmed selling at that level; tends to act as support. Drawn green.
Ask (bearish) imbalance: selling overwhelmed buying at that level; tends to act as resistance. Drawn red.
Cluster: several imbalances grouped around the same price, drawn as a zone.
Support / Resistance validation: tracking a cluster zone after it is drawn to see whether price keeps respecting it.
Context-confirmed imbalance: an imbalance that also passed the rejection and any enabled quality filters; marked with a distinct outline.
Adaptive scaling: automatically adjusting the volume thresholds to the time-of-day volume curve.
DOM dominance: a live read of which side holds more resting liquidity in the order book, as a bid-to-ask ratio.
Footprint disk cache: the saved per-bar volume-at-price record that lets a reload reproduce exactly what was shown live.
Tick Replay: a NinjaTrader feature that replays historical tick data, letting VolImbalance rebuild the per-price ladder for past bars.
Flow.42 VolImbalance 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.