Indicator library · Volume

Money Flow Index (MFI), Volume-Weighted RSI

RSI’s conversion applied to money rather than to price change: each bar is weighted by the capital that traded in it. That one substitution makes it the most direct measurement of distribution available from a daily bar.

The calculation

  1. Typical price: (high + low + close) ÷ 3, because the volume traded across the whole bar rather than at the close.
  2. Raw money flow: typical price × volume. This is the money that changed hands, approximately, and it is what the index weights by.
  3. Direction: the flow joins the positive side if the typical price rose against the previous bar, the negative side if it fell.
  4. Convert: MFI = 100 − (100 ÷ (1 + positive flow ÷ negative flow)) over the lookback window. Identical to RSI’s final step, applied to money instead of to price change.

Note the window: unlike RSI and Volume RSI, the conventional MFI sums each side over a fixed lookback rather than smoothing recursively. Nothing from before the window survives, which makes the line more responsive and is why it can print 100 or 0 more readily than either of those two.

Price at a new high while the Money Flow Index falls awayThe upper panel shows a price series rising for about seventeen bars to a high, then declining for about eight and recovering slightly. The lower panel shows the Money Flow Index on a nought-to-one-hundred scale, which peaks around the middle of the advance, falls steadily while price is still making new highs, then drops sharply through the decline as heavy volume accumulates on down bars.CLOSE805020MFI 926.46price highPrice at a new high while the Money Flow Index falls awayThe upper panel shows a price series rising for about seventeen bars to a high, then declining for about eight and recovering slightly. The lower panel shows the Money Flow Index on a nought-to-one-hundred scale, which peaks around the middle of the advance, falls steadily while price is still making new highs, then drops sharply through the decline as heavy volume accumulates on down bars.CLOSE805020MFI 926.46price high
Fig. 1: schematicComputed at build time from the high, low, close and volume of every bar in this page's source. The index peaks at 80.15 on bar 12 and reads 75 when price makes its actual high. The later advances were made on progressively lighter volume, so less money supported each one. That gap is the reading this indicator exists for, and a price-only oscillator on the same closes would have shown a far smaller one.

Money, shares and price change

Three indicators on this site put the same RSI conversion on different inputs, and knowing which is which prevents most of the confusion between them.

The same conversion, three inputs
IndicatorWeights each bar byConsequence
RSIThe size of the price changeA large move on no volume dominates. Participation is invisible.
Volume RSIShare countSees participation, and a low-priced instrument generates far larger counts for the same money.
Money Flow IndexPrice × volume, moneyComparable across price levels and across a long history of one instrument.

The third row is the argument for this indicator over the second. Share volume is not a common currency, the same capital buys fifty times as many shares of a two-dollar stock as of a hundred-dollar one, so a measure weighted by share count quietly changes meaning as an instrument’s price level changes over the years. Weighting by money removes that drift.

Reading it

The extremes are read exactly as on any bounded oscillator and mean slightly less here, because money flow is more variable than price change and the line reaches its ends more easily. In a strong trend it parks near one end for weeks, and crossings back through 80 or 20 are counter-trend trades in a market that is not turning.

Divergence is what the indicator is for. Price making a higher high while the MFI makes a lower one says the second push was funded with less capital than the first, a stronger claim than the same shape on a price-only oscillator, because the input includes the money rather than inferring it. It remains a condition rather than a trigger, and like every divergence on this site it can persist for months.

Why a simple window rather than Wilder smoothing

RSI and Volume RSI both use Wilder’s recursive average, which never fully forgets: every past value survives with a decaying weight. The conventional MFI does not. It sums each side over a fixed lookback, so a session leaves the calculation completely once the window passes it.

Two consequences follow, and both are visible on any chart. The line is more responsive, since nothing from before the window is holding it back. And it can move sharply on a session where little happened, because an enormous flow from n bars ago has just dropped out of the sum, the same window-exit artefact a simple moving average has, and a reason to look at what left the window before attributing a move to what arrived in it.

Where it misleads

Known failure modes
SituationWhat goes wrong
RSI thresholds reusedMoney flow is more variable than price change; 80 and 20 are the convention here and still only conventions.
Strong trendThe line parks at an extreme for weeks, exactly as RSI does, and crossings generate counter-trend losses.
Whole-bar attributionAll of a bar's money goes to one side because the typical price ticked up. Every share had a buyer and a seller.
Index rebalance and expiryMechanical money dominates a short window entirely; the reading describes fund maintenance.
Simple window, not smoothedOne enormous session enters and later leaves the sum, moving the line sharply on a day when nothing happened.
Illiquid instrumentsA handful of trades sets both the typical price and the volume, so the flow describes those trades rather than a market.

What breadth adds

The MFI describes the money behind one instrument and cannot say whether the market around it was doing the same thing. A falling money flow in a name whose whole sector is seeing outflows is one observation; the same fall while the sector broadens is a different and much more specific one.

Reading it beside the breadth measures covers that gap. Money flow answers how much capital stood behind a move in one name; breadth answers how many names were moving at all. Narrowing in both, while an index makes new highs, is two genuinely different inputs agreeing, which is as much confirmation as anything here offers.

Frequently asked questions

How is the Money Flow Index calculated?

Four steps. Take the typical price of each bar, high, low and close divided by three. Multiply it by the bar’s volume to get the raw money flow. Assign that flow to the positive side if the typical price rose against the previous bar and to the negative side if it fell. Then sum each side over the lookback, divide positive by negative to get the money flow ratio, and convert with 100 − (100 ÷ (1 + ratio)), the same final step as RSI.

How does it differ from RSI?

RSI weights each bar by the size of its price change. The MFI weights each bar by the money that traded in it, and takes only the direction of the price from the bar itself. So a large advance on almost no volume contributes little here and a great deal to RSI, while a modest move on the heaviest session of the month dominates the MFI. On quiet data the two lines look similar; they separate exactly when volume is doing something interesting.

How does it differ from Volume RSI?

Volume RSI assigns a bar’s share count to the up or down side and averages those with Wilder smoothing. The MFI assigns price multiplied by volume — money rather than shares — and sums it over a simple window rather than smoothing recursively. Weighting by money removes the distortion whereby a low-priced instrument generates enormous share counts, which matters when the price level has changed substantially over the history being plotted.

Why is the typical price used rather than the close?

Because the volume traded across the whole bar, not only at the close. Averaging high, low and close is a crude estimate of where the average transaction happened, and it makes the measure less sensitive to a single erratic closing print. It is the same reasoning that puts the typical price inside VWAP, and it is a convention rather than a derivation.

What do 80 and 20 mean here?

They are the conventional extremes, wider than RSI’s 70 and 30 because the MFI moves more: money flow is far more variable than price change, so the line reaches its ends more readily. As everywhere on this site, they are conventions rather than thresholds with statistical standing, and a level derived from the instrument’s own distribution is worth more than an inherited number.

What is the reading worth having?

Divergence against price, and specifically the case where price makes a new high and the MFI does not. Because the index is weighted by money, that says the latest push was made with less capital behind it than the previous one, which is a stronger statement than the same divergence on a price-only oscillator, and the closest thing on this site to a direct measurement of distribution as it happens.

Does it work on an index?

Yes, with aggregate volume, and with the usual calendar caveat. Index rebalances, quarterly reconstitutions and options expiries push enormous mechanical money flow into single sessions, and the MFI weights precisely by that money, so those dates can dominate a nine or fourteen-period window entirely. Around them the reading describes fund maintenance rather than conviction.

What happens when there are no down bars in the window?

The negative flow is zero, the ratio is undefined and the index is set to 100 by convention. It happens more often than on RSI because the window is a simple sum rather than a decaying average, nothing from before the lookback survives to keep the denominator alive. Any implementation that returns NaN there will fail on a straight-line test series, which is the first test worth writing.