23 — Volume Indicators

Money Flow Index#

Debated1 min read
◆ The PatternRSI with volume in it: overbought and oversold, weighted by how much money changed hands

The Money Flow Index — often called "volume-weighted RSI."

Typical Price = (High + Low + Close) / 3
Money Flow = TP × Volume
MF Ratio = Positive Flow / Negative Flow
MFI = 100 − 100 / (1 + MF Ratio)

Scale: 0–100. Default period: 14.

Zones:
• MFI > 80 → overbought (potential reversal)
• MFI < 20 → oversold (potential bounce)
• MFI divergence from price → strong reversal signal
Adds volume to the RSI idea; whether that improves signals is an empirical question for each market
Worked example

Money flow is typical price × volume, counted as positive on days the typical price rose and negative when it fell. Over days 11–15 the falls (days 12 and 13) slightly outweigh the rises (days 11, 14 and 15) in volume, and MFI = 53.2. Two days earlier, at the low, it read 15.0, below the 20 line for “oversold”.

The example data: 15 days, used in every indicator here
DayHighLowCloseVolume
11019910050,000
210310010262,000
310310010148,000
410510110470,000
510810410785,000
610810510660,000
711010610990,000
811010710872,000
910810410580,000
1010510210366,000
1110510210455,000
1210410110275,000
13102989995,000
141029910164,000
1510510110471,000
Where it misleads
  • Volume spikes dominate it: one heavy day can move it more than a week of price changes.
  • Like RSI, it can stay “overbought” for as long as a trend lasts.
  • The split into positive and negative ignores how far the price moved; a tiny rise on huge volume counts as heavy buying.
In code
tp = (df['high'] + df['low'] + df['close']) / 3
flow = tp * df['volume']
pos = flow.where(tp > tp.shift(), 0).rolling(5).sum()
neg = flow.where(tp < tp.shift(), 0).rolling(5).sum()
df['mfi5'] = 100 - 100 / (1 + pos / neg)
Python, in your browser — edit the code and run it again

Assumes import numpy as np, import pandas as pd, and a DataFrame df with columns high, low, close and volume — the 15 days above.

Sources
  • G. Quong & A. Soudack, “Volume-Weighted RSI: Money Flow”, Technical Analysis of Stocks & Commodities 7(3), 1989
  • Technical Analysis from A to Z (2nd ed.), S. B. Achelis, McGraw-Hill, 2000

Last reviewed October 2026 · How this site checks its content · Report a mistake

Pattern bridge: Money Flow Index is RSI weighted by volume — the same normalization to [0,100]. In statistics, weighting by a second variable is a covariance-aware approach.
Linked from 1
← Previous
Accumulation/Distribution
Open in the full reader, with the topic sidebar