Home / Indicators / Order Flow & Footprint / OFS HeavyNodes
LIFETIME

OFS HeavyNodes

Where the market built its heaviest volume - and where the biggest single trades hit it. OFS HeavyNodes draws session-aligned volume profiles, finds the High Volume Nodes inside them and extends every node as a zone until price comes back; on the same chart it marks the individual trades that are statistically far larger than everything traded in the last hundred bars. Two readings of the tape, one overlay, zero repainting.

Current version1.0.1 · 2026-09-11
CompatibilityATAS and ATAS X with .NET 10 runtime
RequirementsWindows 10/11 or macOS (ATAS X), .NET 10, ATAS or ATAS X with a data feed that provides footprint (cluster) data for the HVN profiles and raw trade history plus a live trade stream for Heavy
UpdatesAll future updates included
DeliveryATAS catalog (automatic) + download in your account
Coming soon

Almost ready for your charts

OFS HeavyNodes is built and measured — it is just not in the shop yet, so there is no price and no Add to cart to look for on this page.

Everything you see here is already true — the rules it follows, the numbers it produced and the warnings that come with them. Have a read now and decide later: the moment it goes on sale, the license options and the free trial appear right here.

Want to hear the day it lands?

Release news only. No trading tips, no spam — unsubscribe in one click.

Description

Volume does not distribute evenly. It piles up at the prices where buyers and sellers agreed for the longest time, and it thins out where one side gave way. The heavy shelves - High Volume Nodes - are the places the market keeps returning to. And inside that structure the tape occasionally prints a single trade that is out of all proportion to the normal print size: someone with real size acted at one price. OFS HeavyNodes puts both readings on one chart.

HVN PROFILES

The indicator builds one volume profile per period - 1, 5, 15, 30 or 60 minutes, one session or one week - anchored to the exchange calendar. For CME index futures the day starts at 17:00 Chicago and a 30-minute profile runs 08:30-09:00, 09:00-09:30 and so on; a US cash-hours filter and a plain 24x7 UTC calendar are available as well. Every profile is drawn as a raw histogram at the left edge of its period: exactly the volume that traded at every tick, with the highest row - the profile POC - in its own colour. Nothing is smoothed away in the picture.

Detection works on top of the same data. An optional smoothing pass can be applied before the peaks are searched, so that a jagged profile does not fall apart into a dozen nodes; the histogram you see stays raw. A local peak becomes a node when it reaches a configurable share of the highest row (70 % by default). Around every node the cluster grows upward and downward as long as the neighbouring rows still carry at least the configured share of the peak (80 % by default), bridging small dips up to the gap tolerance. Overlapping clusters of one profile are merged, clusters thinner than the minimum height are dropped, and every surviving cluster gets its own POC - the highest raw row inside it, tie-broken towards the volume-weighted centre.

When the period closes the clusters become zones. A zone is a band from its low to its high, coloured differently when it contains the profile POC, with a thin line on its cluster POC and another on the profile POC. Zones extend to the right until price comes back: the first bar after the grace bars whose range overlaps the band ends the zone at that bar, and it stays frozen there. Zones are created only from finished periods and only after they can be known - a zone never appears inside the period that produced it, so what you see on history is exactly what a live chart would have shown.

HEAVY ABSORPTION

The second reading looks at individual executed trades, not at the footprint. For every bar the indicator takes all trades of the previous N closed bars (100 by default), computes their mean size and population standard deviation, and freezes a threshold of mean plus K standard deviations. Any trade of the current bar at or above that threshold qualifies. Per bar and per aggressor side the qualifying trades are summed into one circle anchored at the price of the largest of them; the diameter grows with the square root of the circle's volume relative to the largest circle of the lookback window at the moment it was created, and it never changes afterwards. Green marks buy aggression, red sell aggression - the side that hit the book, not a direction to trade. Optionally each circle also opens a level at its anchor price that extends until price returns.

The threshold adapts to the instrument and to the time of day by itself. A quiet overnight tape has a small mean and a small deviation, so a moderate trade already stands out; in the cash session the same trade disappears into the crowd. There is nothing to calibrate in contracts unless you deliberately add a fixed floor. A Strict mode adds a price-response condition inside the bar: the trade must sit at the bar extreme on its side and the bar must close back against the aggressor.

DATA HONESTY

Heavy Absorption needs every trade, so the indicator requests the raw trade history from the platform day by day when the chart loads and verifies each bar against its candle volume. A bar whose trades do not add up is not silently filled with the candle volume: it is marked missing, it blocks the window until it leaves it, and the panel says so. While the history is loading or the window is not complete the chart says LOADING or WARMING UP instead of drawing circles from half a population. Late data never rewrites a frozen circle. The HVN profiles do not depend on the raw trades and keep working on footprint data alone.

An optional confluence highlight rings every circle whose anchor sits inside an HVN zone that was already active when its bar started. Platform alerts and Telegram can report the first touch of a zone and every bar that produced a circle; everything is off by default and history is never replayed as a live notification.

The detection engine is pure code covered by 184 automated checks derived from the written technical specification - smoothing kernel, peak and cluster rules, POC tie-breaks, the statistical model, lifecycle, coverage rules and a replay that proves the live path and a plain recalculation produce identical zones and circles bar by bar. The same protected DLL is built for classic ATAS and ATAS X on the current .NET 10 runtime.

Installation guide
1. Create or sign in to your OrderFlowSmith account with the same e-mail address used by your ATAS account. When access to OFS HeavyNodes is activated and the e-mails match, ATAS delivers the indicator automatically; do not install a DLL manually.
2. Open or fully restart ATAS so the automatically delivered indicator becomes available in the indicator catalogue. Whenever an update is released through ATAS, fully restart the platform; ATAS downloads and loads the new version automatically.
3. Only if the OrderFlowSmith and ATAS e-mails are different, download OFS.HeavyNodes.dll from your OrderFlowSmith account and install it manually: %APPDATA%\ATAS\Indicators for classic ATAS or %APPDATA%\ATAS X\Indicators for ATAS X. After every update, download and replace the DLL manually, then fully restart ATAS. If Windows blocked the file, open DLL Properties and select Unblock.
4. Open a chart with footprint data (a 1-minute chart of MNQ or NQ is the reference; tick, range and volume charts work too) and add OFS HeavyNodes from the OrderFlowSmith group.
5. Paste your OFS license key into 01 - License. The key is verified locally.
6. Leave Session Template on Auto: CME index futures get the Globex calendar (17:00 Chicago), everything else a 24x7 UTC calendar. Choose the profile period in 06 - Profile (30m by default).
7. Watch the panel or the notices: LOADING RAW TRADES means the trade history is still being requested day by day; WARMING UP means the lookback window is not complete yet. Circles appear once the threshold is ready. If the feed cannot provide raw trades, the chart says MISSING RAW TRADES and the HVN profiles keep running.
8. Start with the defaults and tune HVN Min % of POC, Cluster Drop-off %, Min Cluster Ticks, Lookback Bars and the Standard Deviation Multiplier on your own instrument. Debug Mode in 14 - Diagnostics shows the threshold moments and the data coverage.
Changelog — version 1.0.1
1.0.1 - SETTINGS APPLY AT ONCE, TICK AND VOLUME CHARTS, VALUE AREA AND LINE STYLES.

A changed setting now shows immediately: the chart layers are rebuilt right after the recalculation (an ordinary redraw only re-poured the finished layers and the new picture arrived with the next data poll), and the raw trades are kept in memory after the first load, so a recalculation replays them instead of downloading them again - Heavy Absorption no longer warms up from scratch after every change. The platform is asked only for the days the cache does not have.

Tick, range and volume charts are supported: trades are mapped to bars sequentially by candle volume (feed and chart received them in the same order), a short bar is marked missing instead of shifting everything, and prints that arrived before a new bar existed are handed to it when it closes. A bar crossing a period boundary is split by trades when raw data exist; without them the whole bar goes to the period of its start and the profile is counted as approx boundary instead of being unavailable.

Smoothing now NARROWS the clusters: the drop-off threshold stays anchored to the raw peak and is tested on the smoothed rows, so every pass keeps only the rows that still carry the configured share of the raw peak. At 0 nothing changed.

New in 10 - Visual: POC Line Colour and Width for the whole profile POC line, Cluster POC Line Colour and Width, Show VAH/VAL with VAH/VAL Colour and Width (Value Area % in 06 - Profile, classic paired-row expansion from the POC, lines extended until touched like the POC line), Bull and Bear Level Colour for the absorption levels. Debug Mode shows the cache, the history request state and the mapping mode. 184 automated engine checks.

1.0.0 - FIRST RELEASE: HVN PROFILES AND HEAVY ABSORPTION IN ONE OVERLAY.

HVN profiles: one raw volume histogram per period (1m to Weekly), anchored to the exchange calendar of the Session Template - CME Globex (17:00 Chicago), US cash hours or 24x7 UTC. Optional smoothing before peak detection (the histogram stays raw), HVN Min % of POC, Cluster Drop-off % as the retained share of the peak, gap bridging, minimum cluster height checked after merging, deterministic POC tie-breaks. Finished periods become zones with their cluster POC and profile POC lines, extended to the right until the first bar after the grace bars overlaps them, then frozen. Zones are created only from completed periods, so history equals what a live chart would have shown.

Heavy Absorption: individual executed trades compared with a threshold of mean + K x population sigma over the previous Lookback Bars (100 by default), frozen per bar. Qualifying trades of a bar and side are summed into one circle anchored at the largest trade; the diameter uses the square root of the volume relative to the largest circle of the window at creation time and never changes later. Optional absorption levels, Strict price-response confirmation, HVN + absorption confluence ring, level capacity and retention rules.

Data: raw trade history is requested from the platform day by day at load time and every bar is verified against its candle volume. Bars without complete trades are marked missing and block the window instead of being filled from the candle; the panel and the notices report LOADING, WARMING UP, MISSING RAW TRADES or an unsupported (non-time) chart. Late prints never rewrite a frozen circle.

Alerts and Telegram: first touch of an HVN zone and a per-bar summary of new circles, off by default, live only. Settings follow the OFS template (01 - License to 14 - Diagnostics), panel and notices with their own positions and Panel Background. 157 automated engine checks including a live-versus-recalculation parity replay.

Frequently asked questions

What is a High Volume Node?
A price area where a profile holds far more volume than its surroundings - a shelf where buyers and sellers agreed for the longest time. HeavyNodes finds the local peaks of each period's profile, keeps the ones that reach HVN Min % of the highest row, grows each into a cluster as long as the neighbouring rows still carry Cluster Drop-off % of the peak, and turns the surviving clusters into zones when the period closes.
Why is the histogram jagged when Smoothing is on?
Because the picture is always the raw traded volume per tick. Smoothing only changes the detection: peaks and clusters are searched on the smoothed copy so that one shelf does not fall apart into a dozen nodes. Set Smoothing to 0 to detect on the raw rows as well.
When does a zone appear and when does it end?
A zone is created when its period closes, from the last bar of that period. The next Touch Grace Bars are ignored; the first later bar whose High-Low range overlaps the band ends the zone at that bar and the band stays frozen there. Until then it extends to the current bar. A zone is never drawn inside the period that produced it.
What exactly is a Heavy Absorption circle?
All trades of the previous Lookback Bars form a population; its mean and population standard deviation give a threshold of mean + K x sigma, frozen for the whole bar. Every single trade of the bar at or above it qualifies. The qualifying trades of one bar and one aggressor side are summed into one circle at the price of the largest of them. The text inside is that sum; the largest trade and the threshold are in the alert text.
Does a red circle mean I should sell?
No. Red means the qualifying trades were sell aggression - market sells hitting the bid. A large sell at a low is often aggression that a passive buyer absorbed. The colour tells you who acted, the location and the reaction tell you what it meant. Strict Absorption Confirmation adds a price-response condition inside the bar, but it is still a fact, not a signal.
Why does the panel say WARMING UP or MISSING RAW TRADES?
The threshold needs exactly Lookback Bars complete closed bars of raw trades. While the history is still being requested day by day the chart says LOADING RAW TRADES; while fewer than the required bars are complete it says WARMING UP with the count. A bar whose trades do not add up to its candle volume is marked missing - it is never filled from the candle - and it blocks the window until it leaves it. The HVN profiles do not depend on raw trades and keep running.
Why do the circles have different sizes for the same volume on different days?
The diameter is relative to the largest circle of the lookback window at the moment the circle was created, and it is stored - a later, bigger circle never shrinks the old ones. Compare the volume numbers, not the areas, across distant dates.
Which chart should I use?
Any chart with footprint data. On a time-based chart (1-minute MNQ or NQ is the reference) the raw trades are mapped to bars by time; on tick, range or volume charts they are mapped sequentially by candle volume, because the feed and the chart received them in the same order. The profile period is independent of the chart timeframe - a 30m profile on a 1m or 500-tick chart is the intended combination.
Does it repaint?
No. Zones come from finished periods, circles from closed bars with complete raw trades, thresholds are frozen per bar and the diameter reference is stored at creation. The only moving objects are the developing profile of the current period and the dotted live circle candidates, both clearly marked. A recalculation produces the same zones and circles as an uninterrupted live chart - the automated replay proves it.
The panel is off - will I still see a problem?
Yes. Licence, LOADING, WARMING UP, MISSING RAW TRADES and unsupported-chart notices have their own switch, Show Notices, with an own position and offsets, and they appear even while the panel is hidden.
Does it work in ATAS X?
The same .NET 10 DLL is built against both the installed classic ATAS and ATAS X references. Native macOS operation depends on the ATAS X runtime and data-feed support available on that machine.
Does a settings change reload the trade history?
No. The raw trades are kept in memory after the first load and replayed after every recalculation, so a changed setting shows at once and Heavy Absorption does not warm up again. Only days the cache does not have - for example after raising Max Bars Back - are requested from the platform.
⚠ OFS HeavyNodes is an analytical decision-support tool. A High Volume Node, a profile POC or a large trade is a location and a fact about past order flow, not a prediction and not a trading signal; the circle colour shows the aggressor side, never a direction to trade. Its output depends on the data feed: footprint data for the profiles and complete raw trade history plus a live trade stream for Heavy Absorption. Exchange holidays and early closes are not modelled in the session calendar. Validate the settings on your own data before using them for live decisions. Trading futures involves substantial risk of loss.

Reviews

No reviews yet — be the first verified buyer to share your experience.