pine-scripts

Money Flow Delta Profile

A directional volume/money flow profile. Every price row shows two bars anchored on the left, both extending to the right: a faint gray reference bar (total flow at that level) and a colored delta bar on top (green = net buying, red = net selling). The width of the delta bar relative to the gray bar shows how decisively one side dominated — a row where the delta bar almost fills the reference bar is a high-conviction level; a row where it barely appears despite wide gray is a contested zone.

TradingView: https://de.tradingview.com/script/NUAePC98/

Related profiles: This is the directional flow profile (who dominated at each level — net delta, HVN/LVN/AVN, absorption). For plain volume distribution (where volume traded, naked-POC, profile shape) use volume_strata; for oscillator momentum per price zone use momentum_profile.

Features

  • Delta bars — all extend rightward from the anchor, sized by net flow, colored by direction (green = bull, red = bear)
  • Total Flow Reference — gray bars behind the delta bars showing raw activity at each level; colored by node type (HVN/LVN/AVN)
  • HVN / LVN / AVN classification — reference bars colored by relative flow density (HVN = warm orange, LVN = faded gray, AVN = neutral gray)
  • LVN Supply/Demand Zones — adjacent Low Volume Node rows merged into zone boxes: red above POC (supply), green below POC (demand); optional minimum zone width and forward projection to the right chart edge
  • Point of Control (POC) — dashed yellow line at the price row with highest total flow
  • Value Area — configurable percentage (default 70%) of total flow; shows VAH/VAL boundaries
  • Delta POC — optional dotted line marking the most decisively directional row
  • Recency Weighting — exponential decay so recent bars contribute more than older ones
  • Bull% label — buying share shown inside each significant row
  • Source — Money Flow (volume × mid-price) or raw Volume
  • Polarity method — Bar Polarity (close > open) or Close Location (proportional)
  • Intrabar Delta (optional) — bull/bear split per bar from a lower-timeframe, price-direction-signed volume proxy instead of the close-location approximation (chart TF ÷ granularity, clamped to 1 minute; automatic fallback when no LTF data is available). This is not real trade-classified delta — OHLCV carries no aggressor-side data, so “up-bar volume” is a heuristic derived from bar direction, not a buy/sell classification.
  • Absorption Profile (optional) — wick-volume per price row drawn as a mirror profile left of the anchor: flow at prices the bar visited but closed away from (rejection)
  • Absorption Peak Zones (optional) — local absorption maxima (≥ both neighbors and ≥ 50% of the absorption max) projected as S/R zones across the lookback window

Instrumente

  • Valid: any symbol whose feed delivers volume and does not declare it as tick. Most feeds outside crypto report syminfo.volumetype = n/a (“not specified”), futures with real contract volume included, so n/a with volume present counts as valid.
  • Proxy: where that volume is a broker’s own share of the market (a CFD feed with its own volume), the resulting levels sit where that broker’s volume traded, which need not be where the exchange’s did. Read them as approximate, not as the levels other participants watch.
  • Invalid: any symbol reporting tick (a number of transactions, not a quantity) or no volume at all — there is nothing to weight.

On an invalid instrument the indicator draws nothing; instead it shows a short “not available” notice in the bottom-right corner.

Reference-market variant: deliberately not implemented. A volume profile maps the chart symbol’s own price axis. Substituting a cross-symbol volume request (e.g. NYMEX:NG1! instead of CAPITALCOM:NATURALGAS) would overlay a different market’s volume distribution onto the chart instrument’s price rows. CFD and future prices are not identical (spread/feed offset), so the price buckets would be misaligned against the volume that actually traded there — the profile would mark the wrong rows, not just imprecisely but structurally. For a volume profile, degradation (no output) is the correct choice, not a reference-market substitute.

Which chart?

The profile is only as meaningful as the volume behind it, and the same index can be charted from feeds whose “volume” means very different things. Example DAX:

Chart Volume it carries Profile
EUREX:FDAX1! / EUREX:FDXM1! (future) traded contracts, near-24h session where the market traded — read it here
CAPITALCOM:GER40 (CFD) tick volume — a number of transactions (volumetype = tick), not traded quantity not drawn (needs real trade volume)
XETR:DAX (cash index) feed volume of an index that is not itself traded; session hours only do not use

Read the profile on the future, trade on the CFD. Carry levels over as zones, shifted by the current basis (future − CFD at the same moment), not as exact prices.

Profile tools without a volume check draw on all three charts and can show opposite colors there, for three reasons:

  • Lookback counts bars, not time. 200 4h-bars are about 33 trading days on a ~23h CFD but about 67 on the Xetra session — two different windows.
  • Overnight moves are bar bodies on the CFD and gaps on the cash index. A gap belongs to no bar, so it never enters the bull/bear split.
  • Different weighting by hour. A tick count does not scale with exchange volume, so quiet hours weigh more than they do at the exchange.

The source note below the profile shows feed, syminfo.type, syminfo.volumetype, the resulting volume origin (exchange / broker proxy / index feed, orange when not exchange volume) and the calendar span the lookback covers. The origin is a label derived from syminfo.type; it never changes the computation.

How to read it

  • Wide gray + wide green delta → high-volume demand zone (buyers dominated convincingly) → HVN
  • Wide gray + narrow delta → high-volume contested level (both sides fought) → HVN, but watch for reversal
  • Narrow gray → thin area, LVN — price moved through quickly, likely to do so again
  • LVN zone above price → air pocket / supply — potential fast move if price re-enters
  • LVN zone below price → air pocket / demand — potential fast move downward if lost
  • POC → the most-traded level overall, common reversion target
  • Tall absorption row → price was pushed there repeatedly and rejected — resting liquidity; expect a reaction on revisit

Visualization layout

Chart  | gap | anchor
                |──[gray ref bar]──────────────>|   (total flow)
                |──[delta bar]────>|                (net direction, same anchor, shorter)

Both bars start at the anchor line on the left. The gray bar sets the maximum width (= 100% flow at that row). The delta bar fills a fraction of that width proportional to |bull − bear| / total. Color is green when buyers won, red when sellers won.

Differences from classic volume profile

Feature Classic profile MF Delta Profile
Orientation All bars go right All bars go right
What it shows Volume at level Total flow (gray) + net direction (colored)
Read Compare bar length Color = who won; delta/gray ratio = by how much
POC Longest bar Highest total flow (may differ from strongest delta)
Contested levels Long bar = high activity Long gray + short delta = balanced (contested)
Thin areas Short bar Short gray = LVN, shown as zone overlay

Settings

Group Setting Default Notes
Profile Lookback 200 Bars back from current bar
Profile Rows 25 Price bins
Profile Source Money Flow Volume × mid-price vs raw volume
Profile Polarity Bar Polarity How bull/bear flow is split
Weighting Recency Weighting off Exponential decay on older bars
Weighting Decay Factor 0.015 Higher = faster fade
Node Classification HVN Threshold 80% Rows above this share colored as HVN
Node Classification LVN Threshold 20% Rows below this share colored as LVN
Node Classification LVN Zone Overlay on Supply/demand zone boxes from LVN rows
Node Classification Min Zone Rows 1 Skip zones with fewer adjacent LVN rows (1 = off)
Node Classification Extend Zones Right off Project zone boxes to the right chart edge
Visualization Value Area % 70 Fraction of total flow in VA
Visualization Bar Offset 3 Gap between last candle and profile

Edit this page on GitHub