Volume & money flow

Volume Flow Indicator · VFI

Markos Katsanos' modernised On-Balance Volume, with a volatility filter and a cap on outlier volume.

Works in most conditionsEngine-computed on a fixed sample series
14512096Rising = expanding, falling = fading
VFI 38760061.00How to read VFI on the chart — the callouts mark what to look for.

The formula

Each bar's typical price (high, low and close averaged) is compared with the last. If the change is larger than a volatility-based cutoff it counts as buying (+) or selling (−); smaller moves count as zero. That signed volume — with unusually large volume capped — is accumulated and usually smoothed, giving a zero-bounded money-flow line.

VFI = cumulative of ( signed, capped Volume ), sign = +1 / 0 / −1 by whether the typical-price change clears a volatility threshold
Worked example
Typical-price ΔVolatility cutoffCounts as
+0.8%0.3%Buying (+Vol)
+0.1%0.3%Ignored (0)
−1.2%0.3%Selling (−Vol)

Only moves bigger than the volatility cutoff add or subtract volume — small wiggles are filtered out, unlike raw OBV.

What it is

The Volume Flow Indicator (VFI) is a modernized version of On-Balance Volume created by Markos Katsanos and published in Technical Analysis of Stocks and Commodities. It keeps OBV's core idea of accumulating volume signed by price direction to track whether money is flowing into or out of an instrument, but it adds two refinements that fix OBV's best-known weaknesses. First, a volatility filter ignores price changes too small to be meaningful, so trivial noise does not register as accumulation or distribution. Second, unusually large volume is capped so a single freak spike cannot dominate the reading. The result oscillates around a zero line instead of drifting endlessly upward or downward the way raw OBV does. For a beginner, it is a smarter, filtered money-flow gauge that reads cleaner than the classic tool it improves upon.

How it is calculated

VFI begins with the typical price, the average of the high, low, and close, and measures its change from one bar to the next, typically using the natural logarithm of the ratio of today's typical price to yesterday's, which expresses the move in a scale-free way. A cutoff threshold, set as a coefficient times the recent standard deviation of that log change, defines a minimum move: if the bar's typical-price change is smaller than the cutoff, its volume is treated as neutral and does not count as inflow or outflow. For bars that clear the cutoff, the bar's volume, but capped at a maximum such as 2.5 times its own moving average, is added when the typical price rose and subtracted when it fell. These signed, filtered, capped volume contributions are cumulated over a lookback, often around 130 periods, and the running total is then usually smoothed with a short exponential moving average to produce the final line.

Reading it, step by step

The zero line is the primary reference: VFI above zero indicates net accumulation and a bullish money-flow backdrop, while below zero indicates distribution and a bearish backdrop. Crossings of zero mark shifts in the money-flow regime, and because the indicator is filtered and bounded rather than endlessly drifting, those crossings are cleaner and more trustworthy than OBV's. The slope matters too, since a rising VFI shows strengthening inflows even before it reaches zero. As with all money-flow tools, divergence against price is especially valuable: if price makes a new high but VFI makes a lower high, the advance is not being backed by genuine, filtered money flow and may be vulnerable. Many traders add a short moving average of VFI as a signal line and read crossovers of the VFI against that signal line as earlier cues than the zero-line cross alone.

Best timeframes

  • ScalpingRarely used
  • Day trading15m – 1hneeds clean volume
  • SwingDailyits home
  • PositionDaily / weekly

VFI has several inputs — period, volatility coefficient and volume cap — that need tuning; the defaults are a starting point, not gospel.

VFI vs other money-flow lines

VFIOBVChaikin Money Flow
Bounded around zeroYesNoYes
Volatility filterYesNoNo
Caps outlier volumeYesNoNo
Signs volume byTypical priceCloseClose in range

Common price-action setups

How the signal typically plays out on the chart.

Zero-line cross up

VFI crosses above zero as price bases — the money-flow regime turns to accumulation. Buy the cross with a stop below the base.

Buy above zero
Accumulation regime
Zero-line cross down

VFI drops below zero as price stalls — distribution takes over. Sell the cross with a stop above the recent high.

Sell below zero
Distribution regime
Bullish divergence

Price makes a lower low while VFI makes a higher low — the filtered flow says selling is fading. Buy the turn with a stop under the low.

Buy divergence
Selling exhausted

Best timeframes and settings

Katsanos designed VFI with a fairly long default period around 130 bars, along with a volatility coefficient near 0.2 and a volume cap around 2.5, and it is typically applied to daily charts for swing and position analysis. The long default lookback makes it a deliberate, structural money-flow gauge rather than a fast signal, so shortening the period makes it more responsive for shorter swings at the cost of more noise. The volatility coefficient controls how much minor movement is filtered out: raising it ignores more small moves and produces a smoother line, while lowering it lets more subtle action through. The volume cap governs how aggressively outlier spikes are tamed. Because it has several interacting parameters, VFI benefits from deliberate tuning to the instrument rather than blind acceptance of defaults, and the general responsiveness-versus-noise trade-off applies to each dial.

When and where to use it

VFI is well suited to confirming the money-flow backdrop during trend and reversal analysis on liquid instruments with reliable volume. Its volatility filter and volume cap make it particularly appropriate where raw OBV would be distorted by choppy small moves or by occasional enormous volume days, such as stocks that see periodic news-driven spikes. It works as a regime gauge in both trending and ranging conditions, telling you whether the broad flow is accumulative or distributive. Avoid it on thin or unreliable-volume instruments, since like every volume tool it is only as good as the underlying data. Also avoid treating its long-default version as a timing trigger, because its purpose is to characterize the flow regime and support divergence analysis rather than to fire precise entries.

Strategies that use it

A first strategy is regime confirmation via the zero line: take long setups from your primary system only when VFI is above zero, confirming an accumulative backdrop, and shorts only when it is below zero, using the indicator as a permission gate. A second is signal-line crossovers: smooth VFI with a short moving average and act when VFI crosses its signal line, buying on an upward cross in an uptrend context and exiting or shorting on a downward cross, which gives earlier cues than waiting for the zero-line cross. A third is divergence trading: when price makes a new extreme but VFI fails to confirm, prepare for a reversal, entering only once price itself breaks structure in the divergence's direction. In each case VFI supplies the money-flow context while price structure supplies the trigger.

Combining it with other indicators

VFI is a refinement of On-Balance Volume, so comparing the two shows how the volatility filter and volume cap clean up the signal, though you would use one or the other rather than both as confirmation. It complements price-based momentum tools like the Relative Strength Index or MACD, and agreement between money flow and momentum strengthens a case. Related volume tools such as the Trade Volume Index or the Volume Zone Oscillator measure similar accumulation-distribution ideas and can corroborate VFI. A trend filter such as a long moving average keeps you taking VFI signals in the direction of the larger trend. Support and resistance give VFI divergences a location to matter at. Avoid stacking it with several other OBV variants that all measure nearly the same thing, since that only manufactures false confidence.

Where it fails

VFI's main practical drawback is that it has several parameters, the period, the volatility coefficient, and the volume cap, and poor choices for any of them distort the signal, so it demands more tuning than a simpler tool. Like all volume indicators it is only as reliable as the volume data feeding it, so it misleads on thin or fragmented instruments. Its long default lookback makes it slow, so it lags at sharp reversals and is not a timing trigger. In genuinely directionless markets its zero-line crossings can still whipsaw despite the filtering. The classic mistake is accepting default parameters on an instrument they do not fit, or reading a zero cross as an automatic entry. Guard against these by tuning the coefficients to the instrument, by using VFI as regime context and divergence rather than as a standalone trigger, and by trusting it only where volume is clean.

A worked example

Suppose a stock has been basing and you run a 130-period VFI with a volatility coefficient of 0.2 and a volume cap of 2.5 times average volume. During the base, most daily typical-price changes are tiny and fall below the cutoff, so their volume is filtered out and does not muddy the line, while one panic day with volume at five times its average is capped at 2.5 times, preventing that single spike from swamping the reading. Over several weeks the filtered, capped inflows accumulate and VFI climbs from minus 3 through zero to plus 2, and its short signal-line crossover fires on the way up. That move above zero, achieved on genuine, filtered accumulation rather than noise or one freak spike, confirms a bullish money-flow backdrop, so when price breaks out of the base you take the long with the flow at your back.

Common mistakes

  • Leaving the period, volatility coefficient and volume cap untuned for the instrument.
  • Trading zero-line crosses in isolation instead of alongside price structure.
  • Using it on thin or unreliable volume, which no filter can rescue.
  • Expecting instant signals — the volatility filter and smoothing add some lag versus raw OBV.
  • Confusing VFI's smoothed signal line with the raw line and misreading the crossover.