Money Flow Index

The Money Flow Index (MFI) is a technical indicator used in financial markets to assess the strength and momentum of a price movement. Developed by Gene Quong and Avrum Soudack, MFI combines price and volume data to provide insights into the buying and selling pressure behind a security. You can use TAAPI.IO to access both realtime and historical values of MFI easily and also combine it with other indicators like the RSI or Moving Averages.

The indicator is calculated through a series of steps: first, the typical price (the average of high, low, and closing prices) is determined; then, the money flow is calculated by multiplying the typical price by the corresponding volume. Positive money flow represents buying pressure, while negative money flow signifies selling pressure.

How is the Money Flow Index calculated

The MFI is an oscillator and is calculated using a formula that takes into account the ratio of positive to negative money flow and scales it to a value between 0 and 100. A high MFI suggests a potentially overbought condition, indicating that a reversal or correction may be imminent, while a low MFI may signal an oversold condition, suggesting a potential buying opportunity.

What other indicators can you pair the MFI with?

One common pairing is with the Relative Strength Index (RSI), another popular oscillator. Both the MFI and RSI assess overbought and oversold conditions, but they use slightly different calculations. When these two indicators give similar signals, it can strengthen the confidence of traders in the identified market conditions.

Additionally, some traders combine the MFI with trend-following indicators like moving averages. The convergence of signals from different types of indicators can provide a more comprehensive view of market dynamics. For example, if the MFI signals overbought conditions while a moving average suggests a strong uptrend, traders might approach the situation differently than if these indicators were sending conflicting signals.

Get started with the mfi

Simply make an HTTPS [GET] request or call in your browser:

			[GET] https://api.taapi.io/mfi?secret=MY_SECRET&exchange=binance&symbol=BTC/USDT&interval=1h
		

The mfi endpoint returns a JSON response like this:

			{
  "value": 29.67871649257061
}
		
Example response from TAAPI.IO when querying mfi endpoint.

API parameters

secret
Required String
The secret which is emailed to you when you request an API key.
exchange
Required String
The exchange you want to calculate the indicator from: binance, binancefutures or one of our supported exchanges. For other crypto / stock exchanges, please refer to our Client or Manual integration methods.
symbol
Required String
Symbol names are always uppercase, with the coin separated by a forward slash and the market: COIN/MARKET. For example: BTC/USDT Bitcoin to Tether, or LTC/BTC Litecoin to Bitcoin...
interval
Required String
Interval or time frame: We support the following time frames: 1m, 5m, 15m, 30m, 1h, 2h, 4h, 12h, 1d, 1w. So if you're interested in values on hourly candles, use interval=1h, for daily values use interval=1d, etc.
backtrack
Optional Integer
The backtrack parameter removes candles from the data set and calculates the mfi value X amount of candles back. So, if you’re fetching the mfi on the hourly and you want to know what the mfi was 5 hours ago, set backtrack=5. The default is 0 and a maximum is 50.
backtracks
Optional Integer
The backtracks parameter returns the mfi value calculated on every candle for the past X candles. For example, if you want to know what the mfi was every hour for the past 12 hours, you use backtracks=12. As a result, you will get 12 values back.
chart
Optional String
The chart parameter accepts one of two values: candles or heikinashi. candles is the default, but if you set this to heikinashi, the indicator values will be calculated using Heikin Ashi candles. Note: Pro & Expert Plans only.
addResultTimestamp
Optional Boolean
true or false. Defaults to false. By setting to true the API will return a timestamp with every result (real-time and backtracked) to which candle the value corresponds. This is helpful when requesting multiple backtracks.
gaps
New Optional Boolean
true or false. Defaults to true. By setting to false, the API will ensure that there are no candles missing. This often happens on lower timeframes in thin markets. Gaps will be filled by a new candle with 0 volume, and OHLC set the the close price of the latest candle with volume.
results
New Optional String
number or max. Use this parameter to access historical values on the past X candles until the most recent candle. Use max to return all available historical values. Returns an array with the oldest value on top and most recent value returned the last.
period
Optional Integer

Default: 14

More examples

Let's say you want to know the mfi value on the last closed candle on the 30m timeframe. You are not interest in the real-time value, so you use the backtrack=1 optional parameter to go back 1 candle in history to the last closed candle.

				[GET] https://api.taapi.io/mfi?secret=MY_SECRET&exchange=binance&symbol=BTC/USDT&interval=30m&backtrack=1
			
Get mfi values on each of the past X candles in one call

Let's say you want to know what the mfi daily value was each day for the previous 10 days. You can get this returned by our API easily and efficiently in one call using the backtracks=10 parameter:

				[GET] https://api.taapi.io/mfi?secret=MY_SECRET&exchange=binance&symbol=BTC/USDT&interval=1d&backtracks=10
			

Here's the example response:

				[
  {
    "value": 29.720350379345774,
    "backtrack": 0
  },
  {
    "value": 27.393864189750474,
    "backtrack": 1
  },
  {
    "value": 26.7939983766644,
    "backtrack": 2
  },
  {
    "value": 26.030014280856296,
    "backtrack": 3
  },
  {
    "value": 37.63107055016443,
    "backtrack": 4
  },
  {
    "value": 49.42894708590861,
    "backtrack": 5
  },
  {
    "value": 56.24067695980421,
    "backtrack": 6
  },
  {
    "value": 55.54113886927081,
    "backtrack": 7
  },
  {
    "value": 60.10796610854096,
    "backtrack": 8
  },
  {
    "value": 59.657278684585016,
    "backtrack": 9
  }
]
			

Looking for even more integration examples in different languages like NodeJS, PHP, Python, Curl or Ruby? Continue to [GET] REST - Direct documentation.