Moneydesks

🔊 Volume indicators: OBV, accumulation/distribution, money flow and VWAP

Open this guide in the app →

🎯 In 30 seconds: Volume indicators try to tell whether trading activity is leaning toward buying or selling. On-balance volume adds or subtracts a whole day’s volume based on the close. The accumulation/distribution line weighs volume by where the close sits in the day’s range. Money flow tools turn that into an oscillator. VWAP is the average price paid per share since a starting point. Each makes an assumption about who was buying, and none can see the actual buyers and sellers.

What these tools assume

Every trade has a buyer and a seller, so volume itself has no direction. These indicators assign one by rule: an up close, or a close near the high, is treated as a sign that buyers were in control. That rule is a reasonable shortcut, and it is still a guess. Read the Reading volume chapter first if raw volume bars are new to you.

On-balance volume (OBV)

Joseph Granville popularized OBV in the early 1960s. The rule: if today closes above yesterday, add today’s volume to a running total. If it closes below, subtract it. If the close is unchanged, leave the total alone.

Worked example with a hypothetical stock, TALN:

DayCloseVolumeRuleOBV
1$20.00100,000Starting point0
2$20.50150,000Up, add150,000
3$20.3080,000Down, subtract70,000
4$20.3090,000Unchanged70,000
5$21.00200,000Up, add270,000

The level of OBV means nothing, because it depends on the start date. What people watch is its direction. OBV rising while price moves sideways is read as quiet buying. OBV failing to confirm a new price high is read as a warning.

The weakness is bluntness. A day that closes up one cent adds its full volume, even if most of the day was spent falling.

Accumulation/distribution (A/D)

Marc Chaikin’s accumulation/distribution line refines that idea. It first finds where the close sits within the day’s range, a number called the close location value (CLV):

CLV = ((close minus low) minus (high minus close)) / (high minus low)

CLV runs from plus 1 (close at the high) to minus 1 (close at the low). Multiply it by volume to get money flow volume, and add each day’s figure to a running total.

Example: high $20, low $18, close $19.50, volume 100,000. CLV = (1.50 minus 0.50) / 2 = 0.5. The day adds 50,000 to the A/D line.

close near highmultiplier +0.8close mid-rangemultiplier 0close near lowmultiplier -0.8highlow
Hypothetical. The accumulation/distribution line multiplies each bar’s volume by where the close landed in that bar’s range. A close at the very top counts all of the volume as buying; a close at the very bottom counts all of it as selling.

Now compare the two tools on one tricky day. TALN closed at $20 yesterday, gaps down to open at $18.20, trades between $18 and $19, and closes at $18.90 on 100,000 shares. OBV subtracts all 100,000 because the close is lower. A/D gives CLV = (0.90 minus 0.10) / 1 = 0.8 and adds 80,000, because the close was near the top of the day’s range. A/D ignores the gap entirely. Neither answer is “right”; they measure different things.

Chaikin Money Flow and the Money Flow Index

Chaikin Money Flow (CMF) uses the same money flow volume over a fixed window, usually 20 bars: the sum of money flow volume divided by the sum of volume. It runs from minus 1 to plus 1. Positive readings mean closes have tended to land in the upper part of their ranges on heavy volume. Many readers ignore values very close to zero.

The Money Flow Index (MFI) works like a volume-weighted RSI. For each bar, typical price = (high + low + close) / 3, and raw money flow = typical price × volume. If typical price rose from the prior bar, that flow counts as positive; if it fell, negative. Over 14 bars, money ratio = positive flow / negative flow, and MFI = 100 minus 100 / (1 + money ratio).

Example: over 14 bars, positive flow totals $6 million and negative flow $2 million. The ratio is 3, so MFI = 100 minus 100 / 4 = 75. Readings above 80 and below 20 are the usual reference lines, with the same trend caveats as any oscillator in Momentum oscillators.

VWAP: the average price paid

The volume-weighted average price adds up typical price × volume for every bar since a start point and divides by total volume. On intraday charts it starts fresh each session.

Example with three 5-minute bars:

BarTypical priceVolumePrice × volume
1$50.001,000$50,000
2$50.503,000$151,500
3$52.001,000$52,000
Total5,000$253,500

VWAP = $253,500 / 5,000 = $50.70. The plain average of the three typical prices is $50.83. The busy middle bar pulls VWAP toward its price.

VWAPopenclosevolume
Hypothetical session of 5-minute bars. VWAP starts at the first bar’s price and moves less and less as the day’s volume piles up. The heavy volume at the open gives the morning prices a large say in the final value.

Large funds often judge their own trading against VWAP, which is one reason intraday traders watch it. Price above VWAP means the average buyer today is showing a gain; below means the average buyer is behind. Anchored VWAP starts the calculation from a chosen bar, such as an earnings day or a breakout, and shows the average cost of everyone who traded since then.

ToolDirection ruleDefaultMain blind spot
OBVClose up or downNone, cumulativeAll-or-nothing; size of move ignored
A/D lineClose location in the barNone, cumulativeIgnores gaps
Chaikin Money FlowClose location, summed over a window20Same as A/D
MFITypical price up or down14Behaves like any oscillator in trends
VWAPNone; it is an average priceSessionMeaning fades late in the day or far from the anchor
Watch out
Volume data is less consistent than price data. Different feeds may or may not include off-exchange trades and extended hours, so the same indicator can look different on two sites. One huge day, such as an index rebalance or an earnings release, can bend a cumulative line for months. And these tools guess at buying and selling from price behavior; they do not see actual orders. Treat a disagreement between a volume line and price as a question to investigate, not a signal.
Try it on the chart
In the Technical Analysis tool, load a daily chart and add OBV and A/D from “+ Indicators”. Find a day with a large gap and see how differently the two lines handled it. Then switch to 5 min bars, add VWAP, and use the anchored VWAP drawing tool on the bar of a recent earnings report to see whether price has held above or below that average since.
Check yourself
  1. OBV is 500,000. Today closes lower on 120,000 shares. What is OBV now? Answer: 380,000.
  2. A day has high $40, low $36 and close $37. What is the close location value? Answer: (1 minus 3) / 4 = minus 0.5.
  3. Positive money flow is $3 million and negative is $3 million over 14 bars. What is MFI? Answer: The ratio is 1, so MFI = 100 minus 100 / 2 = 50.
  4. Two bars: typical price $10 on 4,000 shares and $12 on 1,000 shares. What is VWAP? Answer: (40,000 + 12,000) / 5,000 = $10.40.

Sources

  • John J. Murphy, Technical Analysis of the Financial Markets (1999), volume, on-balance volume and accumulation/distribution
  • Perry J. Kaufman, Trading Systems and Methods, volume-based indicators and VWAP
  • Moneydesks Technical Analysis tool: Indicator guide entries for OBV, A/D, Chaikin Money Flow, MFI, VWAP and anchored VWAP