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.

Senzoukria · Indicators · Updated September 2026


Delta % Histogram ships with the Senzoukria desktop app, in the Delta group of the indicator catalogue. It is drawn 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 a description of 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.

Using it in Senzoukria

Add it from the Indicators panel of any footprint chart or candle chart. It runs on futures data from Rithmic or Databento and on crypto pairs from Binance and Bybit, on the same engine — the calculation does not change with the venue, only the data feeding it does. Market data subscriptions are billed by the provider, separately from the app.

See the full indicator library, or start with the order flow guide if you are new to reading aggression, delta and absorption.

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.

Keep reading