Indicator library · Volume

Volume RSI, RSI Applied to Volume

The RSI formula with volume substituted for price change. It answers a question the price version cannot ask: whether recent advances were made with size behind them or without.

The calculation

Take each bar and decide its direction from the close. Assign the bar's entire volume to the up series if the close rose and to the down series if it fell. Smooth both with Wilder's method over the chosen period, then convert exactly as RSI does: 100 − (100 ÷ (1 + average up volume ÷ average down volume)).

Fifty means up-volume and down-volume have balanced across the window. Above it, more of the recent trading happened on rising closes. That is the whole claim, and it is a claim about participation rather than about price.

Price with Volume RSIThe upper panel shows a price series rising for about fourteen bars and then declining before a partial recovery. The lower panel shows Volume RSI on a nought-to-one-hundred scale: it declines through the later part of the advance even while price is still rising, because the up sessions were made on progressively lighter volume, then falls sharply as heavy down sessions dominate.CLOSE705030VOL RSI 845.14price highPrice with Volume RSIThe upper panel shows a price series rising for about fourteen bars and then declining before a partial recovery. The lower panel shows Volume RSI on a nought-to-one-hundred scale: it declines through the later part of the advance even while price is still rising, because the up sessions were made on progressively lighter volume, then falls sharply as heavy down sessions dominate.CLOSE70VOL RSI 845.14price high
Fig. 1: schematicComputed at build time from the price and volume series in this page's source. The reading to notice is in the second half of the advance: price is still making highs while Volume RSI is already falling, because the up sessions are being made on lighter volume than the down sessions that interrupt them. Price RSI on the same data would still be elevated. The two are looking at different inputs and that is the point.

Reading it against price RSI

Used alone this indicator is weaker than its price-based parent, because volume has no direction of its own. It only acquires one through the crude attribution above. Its value comes from being a second opinion built on a different input.

Four combinations, of which two are informative. Both elevated: an advance with participation behind it, unremarkable and reassuring. Both depressed: the same in reverse. Price high, volume RSI falling: the advance is being made on progressively less trading, which is distribution as it happens rather than as it is described afterwards. Price low, volume RSI rising: the decline is being met with more trading than the falls that preceded it, which is where accumulation shows up.

Neither of the informative cases is a trigger. They are statements about the character of a move, and like every divergence on this site they can persist far longer than is comfortable.

Six sessions, step by step

The attribution is the only part of this indicator that differs from RSI, so it is worth seeing it happen. Below are six consecutive sessions from the series charted above: the close, the direction that close implies, the volume that direction claims, and the resulting reading.

Volume attributed by the direction of the close
BarCloseVolumeAttributedVol RSI
927.239down73.42
1028.063up77.13
1128.658up80.06
1228.335down73.56
1329.049up76.60
1429.444up79.07

Two things are visible here that the chart flattens. The whole of each bar’s volume goes to one side or the other. There is no partial attribution, so a session that closed a cent higher contributes exactly as much to the up series as one that closed five per cent higher. And because Wilder smoothing keeps a decaying trace of everything before it, a single very heavy session continues to influence the reading for many bars after it has passed.

The four combinations

The indicator earns its place by being read beside price RSI over the same window. Four states are possible and two of them carry information.

Price RSI against Volume RSI
StateWhat it describes
Both elevatedAn advance with participation behind it. Unremarkable, and the usual state during a healthy trend.
Both depressedA decline that the volume agrees with. Equally unremarkable in the other direction.
Price high, volume fallingAdvances being made on progressively lighter trading. Distribution as it happens rather than as it is described afterwards.
Price low, volume risingDeclines being met with heavier trading than the falls before them. Where accumulation shows up, when it shows up at all.

The two informative rows are conditions, not triggers, and the honest way to use them is to write down the session on which the disagreement began. That converts an impression into something checkable later, including on the many occasions when the disagreement resolved into nothing at all.

Where it misleads

Known failure modes
SituationWhat goes wrong
Price RSI thresholds reusedVolume is asymmetric (down sessions are more often heavy), so the series sits below 50 more than a price RSI does.
Whole-bar attributionEvery share had a buyer and a seller. Assigning all of it to one side because the close finished higher is an approximation, not a measurement.
Index rebalance dayMechanical volume from funds obliged to trade enters the calculation carrying no opinion at all.
Illiquid instrumentA handful of trades can dominate the window; the reading describes the trades, not the market.
Intraday use without adjustmentVolume clusters at the open and the close, so bars from different parts of the session are not comparable inputs.

Frequently asked questions

How is Volume RSI calculated?

Identically to RSI, with one substitution. Instead of splitting each bar’s price change into a gain or a loss, you assign that bar’s whole volume to the up side if the close rose and to the down side if it fell. Those two volume series are then smoothed with Wilder’s method and converted with the same formula: 100 − (100 ÷ (1 + average up volume ÷ average down volume)). A reading of 50 means up-volume and down-volume have balanced over the window.

What does it tell me that ordinary RSI does not?

Whether the moves had size behind them. Price RSI cannot distinguish a one-per-cent advance that absorbed heavy selling from one that drifted up on nothing, because both produce the same input. Volume RSI is looking only at participation, so the two can disagree, and the disagreement is the useful part. Price RSI high while volume RSI is falling describes an advance being made on progressively less trading, which is the classic distribution pattern this site is organised around.

Why do its extremes behave differently?

Because volume is not symmetric the way price change is. Down sessions are more often heavy than up sessions, so the series spends more time below 50 than a price-based RSI does, and the conventional 70 and 30 lines are not calibrated for it. Read it against its own history for the instrument in question; borrowing thresholds from price RSI is the commonest error with this indicator.

Is attributing all of a bar’s volume to one direction reasonable?

It is crude, and worth being explicit about. Every share traded in a session had a buyer and a seller; assigning the lot to "up" because the close finished higher is an approximation, not a measurement of who was more aggressive. It is the same simplification On-Balance Volume makes. Measures that try to do better — money flow, or intraday volume-at-price — need data that a daily bar does not contain.

What happens on an unchanged close?

The convention has to be stated because it changes the output and is rarely documented. This page assigns an unchanged close to the up side, matching the treatment of a flat bar as "not a decline"; other implementations discard the bar’s volume entirely, and a few split it. On a decimalised tape genuinely unchanged closes are rare enough that the choice barely moves the line, but on illiquid instruments (where flat closes are common) the three conventions can produce visibly different series from the same data.

What period should I use?

The same period you use for price RSI, if you intend to read the two together. That is the only setting that makes the comparison meaningful: two oscillators over different windows will diverge for reasons of window length alone, and you will have no way to tell that from a real disagreement between price and participation. Fourteen is the usual default because it is RSI’s.

Does it work on an index?

Yes, using the index’s aggregate volume, and it behaves rather better than on a single stock because aggregate volume is less easily distorted by one large trade. The caveat is that index volume includes a substantial mechanical component (funds obliged to trade on rebalancing, index arbitrage, options expiry) none of which carries an opinion. Around known rebalance and expiry dates the reading describes the calendar rather than the market.

How does it differ from On-Balance Volume?

They start from the same directional attribution and then do opposite things with it. OBV adds up-volume and subtracts down-volume into a running total with no window, so it is a cumulative trend whose level depends on where it started. Volume RSI averages the same two series over a fixed window and bounds the result between 0 and 100, so it is a reading rather than a trend. Volume RSI can be compared with itself across years; OBV cannot be compared with anything.

Can it be used with money flow instead of share volume?

It can, and doing so answers a slightly different question. Multiplying volume by the typical price before attribution gives a series in currency rather than shares, which removes the distortion whereby a low-priced stock generates enormous share counts for modest sums of money. That is essentially what the Money Flow Index does with a similar formula. For a single instrument over a short window the two are close; across instruments, or across a long history in which the price level changed substantially, the money-weighted version is the more honest input.