Volume · TickAtlas Learn

Money Flow Index (MFI)

MFI is a volume-weighted version of RSI. It measures buying and selling pressure using both price and volume, making it more comprehensive than RSI alone.

10 min readUpdated 2026-03-21Volume
MFI · quick spec
GET /v1/indicator ?symbol=EURUSD&indicator=MFI_14&timeframe=H1
Family
Volume
Series
Periods 14
Best timeframes
H1 · H4 · D1
Last updated
2026-03-21

TL;DR

  • MFI is a volume indicator used in technical analysis
  • MFI > 80 is overbought; < 20 is oversold. Like RSI but volume-weighted, making divergence signals stronger.
  • Best timeframes: H1, H4, D1
  • Skip to API docs
Understand

What is Money Flow Index?

MFI is a volume-weighted version of RSI. It measures buying and selling pressure using both price and volume, making it more comprehensive than RSI alone.

Calculate

How MFI is calculated

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

Default period: 14
Interpret

How to interpret MFI

MFI > 80 is overbought; < 20 is oversold. Like RSI but volume-weighted, making divergence signals stronger.

Apply

Trading strategies using MFI

Strategy 1: MFI Overbought/Oversold

Trade reversals when MFI reaches extremes with volume confirmation.

Entry rules

Buy when MFI crosses above 20. Sell when MFI crosses below 80.

Exit rules

Exit at opposite extreme or when volume dries up.

Combine

Combining MFI with other indicators

MFI works best when combined with complementary indicators:

  • MFI + RSI: Combine for stronger confluence signals
  • MFI + OBV: Combine for stronger confluence signals
  • MFI + A/D Line: Combine for stronger confluence signals
Timeframes

MFI across different timeframes

MFI works across all 7 timeframes but performs best on H1, H4, D1 for most trading styles.

H1H4D1

Learn about all 7 timeframes

Query

Accessing MFI via the TickAtlas API

GET https://tickatlas.com/v1/indicator

Python example

python
import requests

url = "https://tickatlas.com/v1/indicator"
headers = {"X-API-Key": "YOUR_API_KEY"}
params = {
  "symbol": "EURUSD",
  "indicator": "MFI_14",
  "timeframe": "H1"
}

response = requests.get(url, headers=headers, params=params)
data = response.json()
print(data)

Sample response

200 OK
{
  "success": true,
  "data": {
    "symbol": "EURUSD",
    "indicator": "MFI_14",
    "timeframe": "H1",
    "value": 58.43,
    "updated_at": 1711548000,
    "server_time": "2024-03-27T14:00:00+00:00",
    "bid": 1.0856,
    "ask": 1.0857
  }
}
Avoid

Common mistakes to avoid

  • Treating MFI identically to RSI — the volume component makes it behave differently
  • Ignoring MFI when volume is abnormally low
FAQ

Frequently asked questions

What is the difference between MFI and RSI?

MFI incorporates volume into its calculation, making it a volume-weighted RSI. MFI signals are generally considered more reliable because they account for the conviction behind price moves.

Continue learning

From learning to building

Put MFI to work in your application.

Sign up with $2.50 of starting credit and query pre-calculated MFI data across 7 timeframes, from M1 to D1.