Price Volume Trend Indicator: Formula, Settings and How to Read It

Price Volume Trend (PVT) is a cumulative volume line that adds only the fraction of each bar's volume matching that bar's percentage price change. It is On Balance Volume corrected for the size of the move rather than its sign alone.

Senzoukria · Indicators · Updated September 2026


Price Volume Trend ships with the Senzoukria desktop app, in the Volume group of the indicator catalogue. It is drawn in its own panel below the chart.

What Price Volume Trend measures

Where OBV credits a bar's entire volume the moment the close ticks up, PVT credits volume in proportion to the percentage change from the previous close, so a one-tick rise on enormous volume contributes almost nothing to the line. That is the whole practical difference, and it matters most on instruments that gap: a gap's contribution is scaled by its actual size instead of being flattened into a binary up or down. The series is seeded at zero on the first bar loaded and runs continuously with no session reset. A previous close of zero contributes zero rather than breaking the series, since cutting the cumulative line there would lose the anchor for every bar after it.

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:

PVT — Price Volume Trend : PVT[0] = 0 (graine) PVT[i] = PVT[i−1] + ((close[i] − close[i−1]) / close[i−1]) × volume[i] POURQUOI : c'est l'OBV corrigé de l'AMPLITUDE. Là où Granville ajoute le volume entier dès que le close monte d'un tick, le PVT ne lui accorde que la fraction correspondant au % de variation. Résultat : une micro-hausse sur volume énorme ne fait plus décoller la courbe — les divergences PVT/prix sont nettement plus fiables que celles de l'OBV sur les instruments qui ouvrent en gap. close[i−1] = 0 → CONTRIBUTION 0, pas un trou (exception documentée en en-tête, identique à l'A/D) : le rendement relatif n'existe pas, et un null couperait le cumul en perdant l'ancrage de toutes les barres suivantes. Graine 0 sur la première barre chargée, mêmes conséquences que l'OBV. CONTINU — pas de reset session.

How to read it

  • Read the slope against price: PVT making higher highs while price does the same is the ordinary confirming picture.
  • Price extending while PVT fails to follow means the volume behind the extension is smaller relative to the price change than it was earlier. That is a description of the move, not a reversal signal.
  • The absolute level is meaningless, because the line is seeded at zero on whatever bar happens to be first in the loaded range. Only the shape matters.
  • Compare it with OBV on gapping instruments: where the two disagree, PVT is the one weighting the move by its size.
  • It never resets at a session boundary, so an overnight gap enters the cumulative line directly and can produce a step unrelated to intraday activity.

Parameters and defaults

Color and a smoothing window are the only inputs. Smoothing defaults to 1, leaving the cumulative line raw. Values up to 200 apply an averaging pass afterwards, which can help read the slope on noisy intraday data but delays every turn — so it should not be used to judge the precise bar on which a divergence began.

Price Volume Trend — parameters exposed in the app, with the values it ships with.
ParameterTypeDefaultRange
Smoothingnumber11 – 200

What it does not show

The line is anchored to the first bar loaded, so its level and the visual size of any divergence change with the amount of history in the chart: two people with different lookbacks see different curves. It carries no aggressor information, crediting the same volume whether the close rose through aggressive buying or through passive absorption. Divergences are descriptive and routinely persist for a long time without resolving. On very low-priced instruments, percentage changes are large for small price moves, which inflates contributions. It never resets at a session boundary, so gaps compound into it.

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 is the difference between PVT and OBV?
OBV adds a bar's whole volume whenever the close rises and subtracts it whenever the close falls, regardless of how far price moved. PVT adds only the share of volume matching the percentage change, so a tiny move on huge volume barely shifts the line. That weighting is the reason PVT is used in place of OBV on instruments that gap.
How do you read a price volume trend divergence?
Compare the slope of PVT with the slope of price. When price makes a new extreme and PVT does not, the volume accompanying the extension is smaller relative to the price change than it was before. That describes the composition of the move; it does not indicate a reversal, and such divergences often persist.
Does price volume trend reset at the start of each session?
No. The line is seeded at zero on the first bar of the loaded range and accumulates from there, overnight gaps included. The absolute level therefore depends on how much history you loaded, and only the shape of the curve should be interpreted.

Keep reading