Money Flow Index (MFI): Volume-Weighted Momentum Signals
The Money Flow Index combines a price source with reported volume to produce an oscillator usually displayed between 0 and 100. It summarizes volume-weighted price movement; it does not observe investors' cash transfers or distinguish every buyer from every seller. Understanding the volume feed is part of interpreting the result.
How MFI Is Calculated
The conventional source is typical price: high plus low plus close, divided by three. Multiply that value by the bar's volume. Assign the result to positive flow when typical price rises from the preceding bar and negative flow when it falls; unchanged prices contribute to neither directional sum.
Sum positive and negative flows over the selected lookback. Their ratio is transformed as 100 minus 100 divided by one plus the ratio. The conventional length is 14, with 80 and 20 used as reference levels. TradingView's MFI documentation describes the calculation and these conventions.
The sums are rolling values over multiple bars, not merely today's positive flow divided by today's negative flow. Check missing volume, zero-volume intervals and zero denominators when implementing or comparing versions.
MFI Is Not a Fraud Detector or a Direct Cash-Flow Measure
MFI assigns a whole bar's price-volume product according to the direction of its source change. Both buyers and sellers participate in every executed trade, so a rising value is not a measurement of net cash entering the market.
A volume input can affect the oscillator without proving that a move is supported by informed participants. Exchange volume, a broker's tick volume and a particular crypto venue's volume describe different datasets. Compare the same instrument and feed before attributing a difference to indicator settings.
RSI uses price changes with a different calculation. Describing MFI as volume-weighted RSI is a shorthand, not a statement that it is RSI multiplied by volume or that it necessarily rejects false signals better.
Add and Verify the Indicator
In TradingView, search Indicators for Money Flow Index. In Pineify, add the MFI component and inspect its Source and Length. The current component uses ta.mfi, defaults to HLC3 and length 14, and exposes line and background styling.
The generated Pineify drawing currently uses fixed horizontal levels at 80, 50 and 20. Those levels are not separate numeric inputs in the component configuration. Custom thresholds require separate conditions or a reviewed code change; the existing visual controls should not be described as offering arbitrary band inputs.
After generating the script, add it to TradingView and compare readings with the same source, length and feed. Changing the source from HLC3 changes the calculation and can explain differences from a conventional MFI display.
Turn Interpretations into Explicit Rules
Threshold Re-entry
An illustrative reversal hypothesis could wait for a confirmed crossing back above 20 after an oversold reading, then require a separately defined price condition. Specify whether those events must occur on the same bar and how long the setup remains eligible. A reading below 20 alone is not an instruction to buy.
Divergence
Bullish divergence compares a lower price low with a higher MFI low; bearish divergence compares a higher price high with a lower MFI high. Fix the swing-point rule and account for the bars required to confirm a pivot. A marker plotted on a past pivot must not be treated as a signal known at that earlier time.
Trend Filter
A trend-following experiment might require price above a specified moving average and use MFI for a pullback condition. This is different from fading every overbought reading. MFI can remain high during a continuing advance, so an extreme value does not supply the time of a reversal.
Test Settings and Risk Separately
Length 14 and levels 80/20 are conventions, not measured best settings for every timeframe. Compare a small range without repeatedly selecting the best result on the same data. Record trade count, costs, drawdown and the influence of a few large outcomes.
Use confirmed higher-timeframe values when the rule requires completed periods. A developing daily MFI can change while an hourly chart is trading; historical appearances alone do not resolve this timing issue.
Choose stop placement from a defined invalidation or volatility rule, then size the position using the resulting distance and instrument value. Tightening a stop merely because MFI is extreme has no established risk benefit. Gaps can exceed the planned loss, and a wider target does not by itself create a favorable expected return.
No AAPL, TSLA or other trade performance is reported here. The purpose of these rules is to make an experiment reproducible, including unsuccessful signals and unusable volume intervals.



