Senzoukria · Indicators

Delta % Histogram Indicator: Formula, Settings and How to Read It

Delta % Histogram plots each bar's net delta as a share of its total volume, on a scale from −100% to +100%. It answers a different question from raw delta: not how many contracts the imbalance was worth, but what proportion of the bar's activity it represented.

Updated September 2026First published 17 September 2026

On this page
  1. What Delta % Histogram measures
  2. The formula, as implemented
  3. How to read it
  4. Parameters and defaults
  5. What it does not show
  6. Related indicators
  7. This page in other languages
  8. Frequently asked questions

Delta % Histogram — Delta, in its own panel below the chart.

What Delta % Histogram measures

The value is total delta divided by total volume, multiplied by 100, and it is bounded by construction, since net delta can never exceed the volume it is derived from. A reading of +100% would mean every contract in the bar traded at the offer, and −100% the reverse, with values near zero describing bars where buying and selling were close to matched. Bars with zero volume produce no histogram point at all: the ratio is undefined there, and plotting 0% would claim balance where there was simply no trade. The same formula is available as a line under a separate identifier; only the plotted shape differs.

The formula, as implemented

This is not how the indicator is usually defined elsewhere — it is what the shipped code computes, documented next to the implementation:

Points d'histogramme : `f` rend `null` quand la barre n'a pas d'information — la barre n'émet alors PAS de point (contrat `HistogramPoint` : pas de trou, pas de valeur inventée). */ function histPoints( bars: readonly FootprintBar[], f: (bar: FootprintBar, i: number) => number | null, ): HistogramPoint[] { const out: HistogramPoint[] = []; for (let i = 0; i < bars.length; i++) { const v = f(bars[i], i); if (v !== null) out.push({ time: bars[i].bucketTsNs, value: v }); } return out; } function histOut( points: HistogramPoint[], positiveColor: string, negativeColor: string, ): SeriesOutput { return { shape: "histogram", points, positiveColor, negativeColor }; } // ── Defs ──────────────────────────────────────────────────────────────────── /** Delta % en HISTOGRAMME : totalDelta / totalVolume × 100, borné [−100, +100]. Volume nul → pas de point (0/0 n'est pas « 0 % », c'est « pas d'information » — même règle que la variante ligne). N.B. : l'id « delta-percent » est déjà pris par la variante LIGNE (delta.ts) — même formule, id distinct pour préserver l'unicité du registre.

How to read it

  • Use it to normalise busy and quiet bars. A delta of +400 on a 2,000-contract bar and the same +400 on a 40,000-contract bar produce very different percentages, and the percentage is the one that compares across the session.
  • Readings close to the bounds mark one-sided bars where almost all aggression came from a single side.
  • Bars near zero percent are balanced in proportion even if their raw delta looks substantial, which is the case this indicator is designed to expose.
  • Watch percentage and raw delta together on volume spikes. A large delta that shrinks to a small percentage tells you the imbalance grew more slowly than the activity around it.
  • A gap in the histogram is not a zero reading; it means the bar carried no volume to measure.

Parameters and defaults

The positive and negative colours simply separate the two signs in the pane. Smoothing defaults to 1, which plots the ratio bar by bar; values up to 200 average it across that many bars and shift the reading away from the bar it sits on, so a smoothed percentage no longer describes a single bar's balance.

Delta % Histogram — parameters exposed in the app, with the values it ships with.
ParameterTypeDefaultRange
Smoothingnumber11 – 200

What it does not show

As a ratio it discards size entirely, so a strongly one-sided bar with almost no volume can print a larger percentage than a genuinely heavy imbalanced bar. It also discards location: a bar can reach the same percentage whether the aggression occurred at its high, its low or throughout. The measure depends on trades being classified as buys or sells by aggressor side, and any feed without that classification cannot produce it. Finally, the scale is bounded, so a bar already close to ±100% has no room left to show further one-sided pressure.

Browse all indicators

This page in other languages

Frequently asked questions

What does delta percent mean in order flow?
Delta percent expresses a bar's net delta as a proportion of the volume traded in that bar. If a bar trades 1,000 contracts with a net delta of +200, its delta percent is +20%. It puts bars of different sizes on a common scale, which raw delta in contracts cannot do.
Can delta percent actually reach 100?
It can. A reading of exactly +100% requires every contract in the bar to have traded at the offer, with no volume at the bid at all, which is only possible on a bar holding very few trades. Those are also the bars where the percentage carries the least weight, since a handful of contracts sets the whole reading.
What is the difference between the delta percent histogram and the line version?
The calculation is identical: net delta divided by bar volume, as a percentage. They exist as two separate indicators so each identifier stays unique in the catalogue, and so you can choose between a histogram, where the sign is coloured bar by bar, and a continuous line that is easier to read for slope and crossings.
NEXT

Keep reading