Volume & money flow

Volume Oscillator · VO

The gap between a fast and slow moving average of volume — a read on whether participation is expanding.

Works in most conditionsEngine-computed on a fixed sample series
14512096

The formula

Take a short and a long moving average of volume (common pairs are 5 and 20, or 14 and 28), subtract the slow from the fast, and divide by the slow average to express it as a percentage. Positive means short-term volume is above its longer-term baseline; negative means it is below.

Volume Oscillator = (Fast MA of Volume − Slow MA of Volume) ÷ Slow MA of Volume × 100
Worked example
Fast MA (5)Slow MA (20)Oscillator
1,400,0001,000,000+40%
800,0001,000,000−20%

Fast volume 40% above the slow baseline signals expanding participation; 20% below signals it is contracting.

What it is

The Volume Oscillator is a volume indicator that measures whether trading participation is currently running above or below its own recent norm. It does this by comparing a fast moving average of volume with a slow moving average of volume, so it strips out the direction of price entirely and asks a single question: is volume expanding or contracting? The output oscillates around a zero line, positive when recent volume is above its longer-term average and negative when it is below. Because it isolates the expansion and contraction of participation, it is a pure confirmation tool that tells you whether a price move has crowd support behind it. For a beginner, think of it as a participation meter: it does not care which way price is going, only whether more or fewer people are showing up to trade than usual.

How it is calculated

The Volume Oscillator subtracts a slow moving average of volume from a fast moving average of volume, using two different lookback lengths such as 14 and 28, or 5 and 20. The raw difference is often divided by the slow average and multiplied by 100 to express the result as a percentage, which makes it easier to interpret and somewhat comparable across time. When the fast average is above the slow average, the oscillator is positive, meaning short-term volume exceeds the longer-term baseline; when the fast average is below the slow, it is negative. The two moving-average lengths are the only parameters, and their spacing determines how sensitively the oscillator responds to recent surges in participation. There is no price input whatsoever, which is precisely why the tool is directionless and must be paired with price to be actionable.

Reading it, step by step

Read the zero line first: above zero, short-term volume exceeds the longer average, meaning participation is expanding, which tends to support and validate whatever price move is underway. Below zero, volume is contracting, typical of consolidations and the tired tail end of trends where interest is fading. The slope adds nuance, since a rising oscillator shows accelerating participation and a falling one shows it draining away. A cross from below to above zero signals that activity is picking up, often coinciding with the start of a meaningful move, while a cross back below zero can warn that a trend is running out of fuel. Crucially, the oscillator says nothing about direction, so a positive, rising reading confirms conviction behind whatever price is doing, which could be a rally or a sell-off, and you must always read it together with price.

Best timeframes

  • Scalping1m – 5mchoppy crosses
  • Day trading5m – 15m
  • Swing1h – dailytrend confirmation
  • PositionDaily

It confirms activity, not direction — always read it beside price; the percentage version can exaggerate swings on low-volume names.

Volume Oscillator vs other participation tools

Volume OscPVOVolume ROC
BasisTwo MAs of volumeTwo EMAs (MACD-style)Volume vs N bars ago
Signal line + histogramNoYesNo
Normalized %UsuallyYesYes
Best useConfirm participationVolume momentumSpot surges

Common price-action setups

How the signal typically plays out on the chart.

Breakout confirmation

Price breaks out while the Volume Oscillator is positive and rising — participation backs the move. Enter with the trend and a stop below the breakout.

Buy the break
Backed by volume
Zero-line cross up

The oscillator crosses above zero as a move gets going, flagging volume expanding through its baseline. Use it to confirm a fresh trend.

Buy the cross
Participation grows
Fading trend warning

Price grinds higher but the Volume Oscillator rolls over below zero — the advance is thinning out. Tighten stops or fade the weakness.

Sell the fade
Trend losing fuel

Best timeframes and settings

Common length pairs are 14 and 28 or 5 and 20, and the Volume Oscillator adapts to intraday, daily, and weekly charts. On daily charts it suits swing traders confirming that breakouts and trends have participation; on intraday charts it helps day traders judge whether a session's move has real volume behind it. Closer, shorter lengths make the oscillator more responsive to recent volume surges, which catches expansion early but produces choppier crossovers, while wider, longer lengths smooth it into a steadier read at the cost of timeliness. The percentage version can exaggerate swings on low-volume instruments, so on thin names a wider setting or the raw-difference version may behave better. As always, the trade-off is responsiveness versus noise, and the right pair depends on the instrument and your trading horizon.

When and where to use it

The Volume Oscillator is most useful as a confirmation layer at breakouts and during trends, where you want objective evidence that participation is expanding rather than drifting. It shines when you are already reading price and need a yes-or-no answer on whether volume backs the move. It works in both trending and ranging markets, though its readings mean different things: rising participation validates a trend but can also mark the climax of one. Avoid using it as a directional or standalone signal, since it carries no information about which way price is headed. Be cautious on low-volume or fragmented instruments where the percentage version can whip around. It is a complement to price analysis, not a replacement for it, and is best deployed alongside a chart you are already reading directionally.

Strategies that use it

A first strategy is breakout confirmation: when price clears a key level, require the Volume Oscillator to be positive and rising, confirming that participation is expanding into the breakout, and skip or fade breakouts that occur while the oscillator is negative or falling. A second is trend-exhaustion warning: in an established trend, watch for the oscillator to cross back below zero as a sign that the crowd is losing interest and the trend may be near its end, prompting you to tighten stops or take profits. A third is a participation filter on a momentum system: only take your primary signals when the Volume Oscillator confirms expanding volume, filtering out moves that lack crowd support. In every case the oscillator confirms the conviction behind a price event that another tool has identified directionally.

Combining it with other indicators

The Volume Oscillator pairs with the Percentage Volume Oscillator, which applies MACD-style momentum to volume, and with Volume Rate of Change, which measures raw participation surges, so together they give both the level and the momentum of volume. It complements price momentum tools like MACD or RSI, where the price oscillator gives direction and the volume oscillator gives conviction. Raw volume bars sit naturally beneath it, showing the individual spikes that the oscillator smooths into a trend. A trend indicator such as a moving average supplies the directional context the oscillator lacks, so you know whether expanding participation is fueling an up move or a down move. Breakout levels and chart patterns give the oscillator's confirmation a specific price event to validate, sharpening its usefulness.

Where it fails

The defining limitation is that the Volume Oscillator is directionless: it confirms that activity is expanding or contracting but says nothing about which way price is heading, so reading it without price is meaningless and a common beginner error. Choppy, erratic volume produces choppy crossovers around the zero line, generating false signals in indecisive markets. The percentage version can exaggerate swings on low-volume instruments, making expansion look more dramatic than it is. It also depends on clean volume data and misleads where volume is fragmented or unreliable. The classic mistake is treating a positive reading as bullish, when it merely confirms conviction behind whatever price is doing, up or down. Avoid these traps by always pairing it with a directional read, by choosing lengths suited to the instrument, and by trusting it only where volume data is dependable.

A worked example

Picture a stock breaking out above a well-watched resistance level, and you want to know whether the move has real support. You compute the Volume Oscillator using a 14-period fast average and a 28-period slow average of volume. On the breakout day the fast average of volume sits at 8 million shares while the slow average sits at 5 million, so the oscillator, expressed as a percentage, is 8 minus 5 divided by 5 times 100, which equals 60 percent, strongly positive. That reading confirms that recent participation is running well above its longer-term baseline, exactly the expansion you want to see behind a genuine breakout. Because the oscillator is positive and rising as price clears resistance, you trust the breakout and take the long, whereas had the oscillator been negative, showing volume contracting into the move, you would have treated the breakout as suspect and stood aside.

Common mistakes

  • Reading it as directional — it measures participation, not which way price is going.
  • Acting on choppy crossovers in markets with erratic volume.
  • Trusting the percentage version's big swings on thin, low-volume instruments.
  • Ignoring price context and buying just because volume is expanding.
  • Assuming below-zero always means sell — quiet volume is normal inside healthy consolidations.