Money Flow Index (MFI): The Volume-Weighted RSI, Calculated

The Money Flow Index is often described as “RSI with volume.” That description is close enough to get you started and loose enough to mislead you. MFI does not just add volume to RSI. It changes what gets counted. RSI cares about how far price moved on each bar. MFI mostly ignores how far price moved and cares about which direction the bar’s typical price went and how much money changed hands while it did. Once you see that difference in numbers, a lot of “why is MFI saying 70 when price barely moved?” confusion goes away.

This article works through one MFI calculation by hand, then changes one input at a time to show what drives the reading.

The four steps

MFI was created by Gene Quong and Avrum Soudack. TradingView’s Money Flow (MFI) help page lays out the calculation, with 14 periods as the default:

  1. Typical price = (High + Low + Close) / 3
  2. Raw money flow = Typical price × Volume
  3. Money flow ratio = (sum of raw money flow on bars where typical price rose versus the prior bar) / (sum of raw money flow on bars where typical price fell), over the lookback
  4. MFI = 100 − 100 / (1 + Money flow ratio)

Step 4 is the same normalization RSI uses, which is why MFI also lives on a 0 to 100 scale. Steps 1 to 3 are where it differs. A bar whose typical price is exactly equal to the previous one goes into neither sum under this definition.

A worked calculation: MFI(5) on six bars

To keep the arithmetic readable, this uses a 5-period lookback instead of 14. The prices are illustrative, for a coin trading around $100, with volume in coins. Bar 0 only supplies the starting typical price.

Bar High Low Close Typical price Direction Volume Raw money flow
0 100.0 96.0 98.0 98.000 (start) 1,000 n/a
1 101.0 97.0 100.0 99.333 Up 1,200 119,200.0
2 102.0 98.0 99.0 99.667 Up 3,000 299,000.0
3 103.0 99.0 102.0 101.333 Up 900 91,200.0
4 104.0 100.0 103.0 102.333 Up 800 81,866.7
5 103.5 100.5 102.2 102.067 Down 2,500 255,166.7
  • Positive money flow = 119,200.0 + 299,000.0 + 91,200.0 + 81,866.7 = 591,266.7
  • Negative money flow = 255,166.7
  • Money flow ratio = 591,266.7 / 255,166.7 = 2.317
  • MFI = 100 − 100 / 3.317 = 69.9

Two details in this table matter more than the final number.

Bar 2 closed lower than bar 1 but still counted as positive. Its close fell from 100 to 99, but its high and low both rose, so the typical price ticked up from 99.333 to 99.667. MFI classifies bars by typical price, not by close. Comparing it with a close-only indicator like On-Balance Volume, which would have subtracted bar 2’s volume, shows how the two can disagree on the same bar.

Bar 5 dropped only 0.27 in typical price but contributed almost a third of the total flow. MFI puts the bar’s entire money flow into one bucket based on direction alone. A tiny dip on heavy volume can outweigh several larger rises on light volume.

What changes if…

…every bar had the same volume?

Set all five volumes equal. Each bar’s money flow is now just its typical price, so the sums become 99.333 + 99.667 + 101.333 + 102.333 = 402.667 positive and 102.067 negative. The ratio is 3.945 and MFI is 79.8. Ten points higher, entirely because bar 5’s heavy volume was removed. This is the volume weighting doing its job: with the original volumes, the one down bar carried enough turnover to pull MFI away from the overbought zone.

…you used price change instead, like RSI?

Take the same typical prices and sum the size of the moves instead of money flow: rises total 4.333, the one fall is 0.267. An RSI-style ratio of 4.333 / 0.267 gives a reading of 94.2. (This is a simplified sum, not Wilder’s smoothed RSI, but the point holds.) RSI-style math says “price went almost straight up.” MFI says “about 70% of the money traded on up bars.” Both are true. They answer different questions, which is why MFI and RSI can disagree on the same chart.

…bar 5 had closed near its high?

If bar 5 had closed above 103.0 instead of 102.2 (same high and low), its typical price would have been above 102.333. It would have counted as positive, negative flow would be zero, and the ratio would be infinite, which pushes MFI to its ceiling of 100. Check how your platform handles zero negative flow; implementations can differ. With a 14-bar lookback this is rare, but with short lookbacks on quiet coins, MFI can jump between extremes because a single bar flips buckets.

How traders read MFI, and what each reading actually means

Reading Common interpretation What the math actually says
Above 80 Overbought Over the lookback, more than 80% of typical-price-weighted volume traded on bars whose typical price rose. Strong trends can hold this for a long time.
Below 20 Oversold More than 80% of the flow was on falling bars. Capitulation-style selling can keep it here.
Around 50 Neutral Up-bar and down-bar flow are roughly balanced. Price can still be trending if the moves are uneven in size.
Bearish divergence Weakening rally Price made a higher high, but the share of flow on up bars shrank versus the prior high. Often a few heavy down bars inside the rally.

TradingView describes 80 and 20 as the traditional thresholds and notes they are subjective. Some traders use 90 and 10 for rarer, more extreme readings. Neither pair is a law. The usual overbought/oversold trap applies: a high reading in a strong uptrend is a description of the trend, not a reversal signal.

Where MFI misleads in crypto

  • One venue, one volume. Your chart’s volume usually comes from one exchange. MFI on BTCUSDT from one venue can differ from MFI on BTCUSD from another, because the heavy bars are not the same.
  • Liquidation bars. A cascade of forced selling produces one or two bars with several times normal volume. They dominate the negative sum for the entire lookback, then drop out all at once 14 bars later, making MFI jump without any new information.
  • Small moves, big buckets. As bar 5 showed, the size of the price change does not matter. A flat, high-volume bar that drifts slightly down counts as heavily as a real breakdown with the same volume.
  • Timeframe flips. Typical-price direction is recalculated on every bar, so MFI on 1-hour bars and MFI on 4-hour bars are built from different classifications and can point in opposite directions.
  • Divergence that never resolves. In persistent trends, MFI can diverge several times in a row while price keeps going. Treat divergence as a reason to look closer, as in our RSI divergence guide, not as a timing tool.

MFI versus Chaikin Money Flow

Both indicators have “money flow” in the name, and both weight by volume, but they classify bars in completely different ways. MFI asks “did the typical price rise or fall from the last bar?” Chaikin Money Flow asks “where did the close land inside this bar’s own high-low range?” and never compares bars with each other.

Here is how far apart they can land on the same four illustrative bars (closes 2,055, 2,034, 2,028, 1,985, with price falling over the last three; the same bars are worked through in the CMF guide):

MFI(4) CMF(4)
Reading 52.5 (neutral) +0.103 (mild buying pressure)
Why Two up bars and two down bars of similar money flow Three of four bars closed in the upper part of their own range, even the falling ones

Neither is “right.” MFI is tracking bar-to-bar direction, CMF is tracking intrabar closing strength. Our Chaikin Money Flow guide works through the CMF side of this table.

Check it yourself

  1. Export about 30 bars of OHLCV data from your chart or exchange.
  2. In a spreadsheet, add columns for typical price, raw money flow, and a direction flag (+1, −1, or 0 against the prior typical price).
  3. Sum positive and negative flow over the last 14 rows and apply the formula. Your number should match TradingView’s MFI(14) on the same exchange and timeframe, apart from rounding.
  4. Now find the single bar with the largest raw money flow in the window. Delete its volume (set to the average) and recalculate. If MFI moves more than 10 points, the current reading is mostly about that one bar.
  5. When you test an MFI rule (for example, “MFI crosses back below 80 after being above it”), write down the rule, the timeframe and the exchange before you look, and log every occurrence in your trading journal, including the ones where nothing happened.

Step 4 is the most useful habit. It tells you whether you are reading broad participation or one outlier bar.

Financial disclaimer: This article is for educational purposes only and is not financial, investment, or trading advice. Trading involves substantial risk of loss. Example figures are illustrative.

1 thought on “Money Flow Index (MFI): The Volume-Weighted RSI, Calculated”

Leave a Comment