volume
Volume-Price Oscillator
Intermediate
MFI

Money Flow Index

A volume-weighted RSI that measures buying and selling pressure on a 0–100 scale, often called the volume-weighted RSI.

Overview

The Money Flow Index (MFI) was developed by Gene Quong and Avrum Soudack. It is sometimes called the "volume-weighted RSI" because it incorporates volume into the RSI framework. Instead of averaging price gains and losses, MFI computes the ratio of positive money flow (volume on up-days, weighted by typical price) to total money flow, producing a 0–100 oscillator. Readings above 80 are overbought; below 20 are oversold.

How it looks on a chart

Illustration only — synthetic data generated for visual reference.

Beginner

MFI is like RSI but takes volume into account. An RSI signal that occurs on high volume is more significant than the same signal on low volume. MFI bakes this into a single number, so you don't need to check the volume chart separately. A reading above 80 means a lot of money (volume × price) has been flowing into the asset recently — it may be overbought. A reading below 20 means heavy money outflow — it may be oversold. These levels work similarly to RSI's 70 and 30 thresholds. Divergence is MFI's strongest signal. If price makes a new high but MFI makes a lower high, it means the money flow behind the advance is weakening — even though prices are higher, the volume-weighted buying pressure is actually declining. This is often a warning sign before a reversal.

Intermediate

Typical Price = (H + L + C) / 3. Raw Money Flow = TP × Volume. If today's TP > yesterday's TP, it is Positive Money Flow; if lower, Negative Money Flow. Money Flow Ratio = 14-period sum of Positive MF / 14-period sum of Negative MF. MFI = 100 − (100 / (1 + Money Flow Ratio)). This formula is structurally identical to RSI, with Money Flow replacing price gains/losses. As with RSI, the standard period is 14. Shorter periods (7, 10) are more sensitive for short-term trading; longer periods (20+) reduce noise for swing trading. MFI divergence trades work best when confirmed by price structure. For example, a stock making a new 52-week high with MFI making a lower high AND a bearish candlestick pattern on the new high day provides a multi-confirmation short signal. Using MFI as a filter for RSI signals — only acting on RSI extremes when MFI agrees — is a common combination.

Advanced

MFI differs from RSI in a subtle but important way: because it uses Typical Price × Volume (a dollar flow measure), it is sensitive to both the direction and the magnitude of money movement. A $1 move on 10 million shares registers as a $10M positive flow; the same $1 move on 100,000 shares registers as only $100K. This makes MFI more informative about institutional activity than RSI. However, MFI shares RSI's structural limitations: it is bounded 0–100, which means extreme values in either direction are capped and sustained extreme readings are possible in trending markets. The binary positive/negative classification (based solely on TP direction) discards intraday information about where volume actually transacted. In systematic factor research, MFI has been shown to add incremental predictive power over RSI alone for short-term mean reversion strategies on liquid equities (Chan 2013). The combination of MFI and RSI as a composite score — averaging the two — provides a more robust overbought/oversold signal than either alone, reducing the period sensitivity that plagues single-indicator approaches.

Formula

TP = (High + Low + Close) / 3
Raw Money Flow = TP × Volume
MFI = 100 − (100 / (1 + (Σ Positive MF₁₄ / Σ Negative MF₁₄)))
  1. 1.Calculate Typical Price: TP = (High + Low + Close) / 3.
  2. 2.Compute Raw Money Flow = TP × Volume for each period.
  3. 3.Classify each period: Positive MF if TP > Prev TP; Negative MF if TP < Prev TP.
  4. 4.Sum Positive MF and Negative MF over 14 periods; compute Money Flow Ratio = Positive / Negative.
  5. 5.MFI = 100 − (100 / (1 + Money Flow Ratio)); plot with 80 (overbought) and 20 (oversold) lines.

Parameters

ParameterDefaultRangeDescription
Period14350Lookback period for summing positive and negative money flows.
Overbought Level807090MFI level considered overbought.
Oversold Level201030MFI level considered oversold.

Trading signals

bullish: MFI drops below 20 (oversold)

Heavy volume-weighted selling has brought the asset to an extreme — potential reversal.

bearish: MFI rises above 80 (overbought)

Heavy volume-weighted buying has pushed the asset to an extreme — potential reversal.

bearish: Price new high but MFI lower high (bearish divergence)

Diminishing money flow at new price highs — rally losing institutional support.

bullish: Price new low but MFI higher low (bullish divergence)

Diminishing money outflow at new price lows — selling pressure fading.

Limitations

  • Requires accurate volume data — not suitable for spot forex, OTC markets, or thin-volume assets.
  • Binary TP direction classification ignores magnitude of typical price changes.
  • Like RSI, can remain in overbought/oversold territory for extended periods in trending markets.
  • Short periods lead to heavy oscillation; long periods create significant lag.
How Gilito AI uses MFI

Gilito tests MFI alongside RSI on every equity and futures instrument in its universe to determine whether the volume-weighting adds incremental signal quality. It also constructs composite momentum scores combining MFI and RSI, backtesting whether the average of the two outperforms either indicator alone across its full strategy grid.

Related indicators