MFI Indicator: Formula, Settings and How to Read It
Money Flow Index (MFI) is a 0 to 100 oscillator that weights price direction by traded volume. Each bar's typical price - the average of high, low and close - decides the direction, and that typical price multiplied by the bar's total volume becomes the money flow assigned to the up or the down side.
Senzoukria · Indicators · Updated September 2026
MFI ships with the Senzoukria desktop app, in the Momentum group of the indicator catalogue. It is drawn in its own panel below the chart.
What MFI measures
The index is the positive money flow over the last N bars divided by the total money flow in that window, scaled to 100; the default period is 14. The window is a plain rolling sum, which is the canonical Quong and Soudack definition, not a Wilder-smoothed average - that difference makes readings drop out of the window abruptly rather than decaying. When a bar's typical price equals the previous one, that bar contributes to neither side. Three boundary cases are explicit: no negative flow in the window returns 100, no positive flow returns 0, and a window with neither - a flat typical price or no volume at all - returns no value instead of a number.
The formula, as implemented
This is not a description of how the indicator is usually defined elsewhere — it is what the shipped code computes, documented next to the implementation:
MFI (Quong & Soudack) — le « RSI pondéré volume » : TP = (high + low + close)/3 ; flux = TP × totalVolume TP > TPₚ → flux positif ; TP < TPₚ → flux négatif ; TP égal → aucun MFI = 100·ΣposMF/(ΣposMF + ΣnegMF) sur les N derniers flux Égalités : ΣnegMF = 0 (et pos > 0) → 100 ; ΣposMF = 0 (et neg > 0) → 0 ; les deux nuls (TP plat ou volume nul) → null. Fenêtre = somme GLISSANTE (la définition canonique — pas de lissage Wilder ici). Défaut N=14.
How to read it
- The reading is a share, not a rate: 70 means seventy percent of the window's volume-weighted flow fell on up bars, not that price rose seventy percent.
- The commonly cited 80 and 20 levels are conventions, not thresholds derived from the formula; where a given instrument spends its time is worth checking on its own history.
- Set beside an RSI of the same length, the two lines differ for more than one reason: this index decides direction on the typical price rather than the close, and it sums a plain rolling window instead of decaying its history.
- A reading pinned at 100 means not a single bar in the window had a lower typical price than its predecessor - an unusually one-sided window, and nothing about what follows.
- Divergence between the index and price means the volume-weighted balance stopped confirming the newer price extreme; treat it as a description of the window, not a reversal signal.
Parameters and defaults
Period defaults to 14 and accepts 1 to 200. At a period of 1 the window holds a single flow, so the reading can only be 100, 0 or nothing at all. A short window still reaches the extremes often, since only a handful of bars have to agree; a long window keeps the reading nearer the middle, because it takes many one-sided bars to dominate a large rolling sum.
| Parameter | Type | Default | Range |
|---|---|---|---|
| Period | number | 14 | 1 – 200 |
What it does not show
The volume used here is total bar volume. It is not split between buyer-initiated and seller-initiated trades, so this is not a delta and does not measure the aggressor side - direction comes entirely from the typical price, and every contract traded in an up bar is counted as positive flow regardless of who lifted or hit. It depends on the connected market data feed actually carrying volume for the instrument, and volume conventions differ between a futures exchange feed and an aggregated crypto feed. On thin sessions a couple of large prints can dominate a whole window. A flat typical price across the window leaves both sums at zero and the line simply stops.
Using it in Senzoukria
Add it from the Indicators panel of any footprint chart or candle chart. It runs on futures data from Rithmic or Databento and on crypto pairs from Binance and Bybit, on the same engine — the calculation does not change with the venue, only the data feeding it does. Market data subscriptions are billed by the provider, separately from the app.
Related indicators
See the full indicator library, or start with the order flow guide if you are new to reading aggression, delta and absorption.
Frequently asked questions
- What is the difference between the Money Flow Index and RSI?
- RSI compares the size of up and down closes. The Money Flow Index compares the same up and down direction but weights each bar by its traded volume, and it uses the typical price rather than the close to decide direction. On identical price data with no volume variation the two behave similarly; they diverge when large-volume bars move opposite to small-volume ones.
- Does the Money Flow Index measure buying and selling pressure?
- It measures volume attached to bars whose typical price rose or fell. It does not identify which side was the aggressor on each trade; that requires bid-ask trade classification, as in a footprint or a delta series. A bar's typical price can rise because offers were pulled rather than lifted, and its whole volume still counts as positive flow.
- Why does the Money Flow Index read exactly 100?
- Because no bar in the lookback window had a typical price lower than the bar before it, so the negative money flow sum is zero and the ratio resolves to 100. Short periods reach this state easily. It is an exact result of the formula, not a data error.