On-Balance Volume is a cumulative running total that adds the entire bar's volume on up days and subtracts it on down days. It converts raw volume into a single trend line — revealing whether large participants are accumulating or distributing before price reflects their activity.
Section 1: Core Mechanics
OBV accumulates volume directionally. When price closes higher than the previous bar, all of that bar's volume is added. When price closes lower, all volume is subtracted. The result is a line that trends up when volume favors buyers and down when volume favors sellers.
What Is OBV?
Developed by Joseph Granville in 1963, OBV embeds the idea that volume precedes price. Institutional traders accumulate positions quietly over many sessions — the OBV line rises while price remains flat. When enough shares have been accumulated, price breaks out to catch up with OBV.
Formula
The initial OBV value is arbitrary (often set to zero or the first bar's volume). Only the trend of OBV matters — the absolute number is meaningless.
Inputs
- Close price: Determines whether each bar is an "up day" or "down day"
- Volume: The total traded volume for each bar
Parameters
| Parameter | Default | Range | Impact |
|---|---|---|---|
| Start value | 0 or first bar volume | Arbitrary | Irrelevant — only direction and trend matter |
| Smoothing | None | Optional SMA(10-20) | Applying an SMA to OBV removes noise for clearer trend reads |
Output Range
OBV is an unbounded cumulative total. The number itself carries no meaning — what matters is whether OBV is rising, falling, or diverging from price.
Visual Behavior
Plot OBV as a line in a separate pane beneath the price chart. Observe the slope and direction relative to price. In a healthy uptrend: OBV rises alongside price, often leading. In distribution: OBV flattens or falls while price still rises.
Section 2: Interpretation & Signals
Signal Zones
| OBV Condition | Price Condition | Interpretation |
|---|---|---|
| OBV rising | Price rising | Healthy uptrend — buying pressure confirmed |
| OBV falling | Price falling | Healthy downtrend — selling pressure confirmed |
| OBV rising | Price flat or falling | Bullish divergence — accumulation underway |
| OBV falling | Price flat or rising | Bearish divergence — distribution underway |
| OBV at new high | Price at prior high | Bullish — more volume supporting this level |
| OBV at lower high | Price at new high | Bearish divergence — less volume at higher price |
Primary Signal — OBV Trend Confirmation
OBV trending in the same direction as price confirms the move. You want to see OBV reaching new highs when price reaches new highs. A strong trend has OBV accelerating faster than price.
OBV Bullish Divergence — Accumulation Before Breakout
Divergence — The Core OBV Signal
Bullish Divergence (Accumulation): OBV makes new highs while price makes a lower high or remains flat. Smart money is buying quietly — absorbing shares without pushing price up. When they finish accumulating, price catches up sharply.
Bearish Divergence (Distribution): OBV makes lower highs or falls while price continues rising or stays flat. Smart money is selling into retail buying pressure. When distribution completes, price drops to catch up with OBV.
False Signals
Best Market Conditions
OBV works best on liquid instruments with consistent daily volume. It is most reliable on large-cap equities and equity ETFs (SPY, QQQ, individual S&P 500 components). Less reliable on crypto (wash trading distorts cumulative totals) and thin stocks.
Section 3: Pass vs. Live — Real-Time Reliability
OBV on closed bars is immutable. The current bar's OBV shifts in real time as price and volume evolve during the session. Once the bar closes and confirms as an "up" or "down" day, that day's contribution to OBV is fixed.
Because OBV divergences require multiple bars to form, real-time fluctuations on live bars are less critical here than for short-term oscillators. The pattern you are reading builds over days, not minutes.
Section 4: Practical Use Cases
Setup: OBV on 1H chart with SMA(20) overlay on OBV Signal: OBV crosses above its own SMA(20) while price holds near support Entry: Candle close confirming OBV is above OBV SMA on 1H timeframe Exit: OBV crosses back below its SMA(20) Key Rule: On short timeframes, OBV noise is high — always confirm with raw volume spike before entry
Setup: OBV on daily chart, watch for divergence over 5–15 bar window Signal: OBV makes new high while price makes lower high (bullish), or OBV makes lower high while price makes new high (bearish) Entry: Bullish: buy when price breaks above the most recent swing high after OBV divergence confirmed. Bearish: short when price breaks below recent swing low. Exit: OBV confirms new high alongside price (divergence resolved = close trade) Key Rule: Divergence must span at least 5 daily bars to qualify as meaningful
Setup: OBV on weekly chart over 13–26 week window Signal: OBV trending up while stock in a multi-week base = institutional accumulation Entry: Weekly close above base resistance with OBV confirming new high Exit: Weekly OBV lower high while price makes higher high — distribution beginning Key Rule: Weekly OBV divergences often precede 10–30% moves — these are your highest-reward setups
Real example: Apple (AAPL) in October 2022 — during the broader market selloff, AAPL's daily OBV made higher lows even as price ground lower for 6 weeks. The OBV–price bullish divergence formed from September 20 through October 28. On October 28, price broke above the prior swing high at $150.17 while OBV confirmed the breakout — the stock ran to $179 by February 2023.
Section 5: Pseudo Code
INPUT: close[], volume[]
PROCESS:
Step 1: Initialize
obv[0] = volume[0]
Step 2: For each bar i from 1 to len(close)-1:
if close[i] > close[i-1]:
obv[i] = obv[i-1] + volume[i]
elif close[i] < close[i-1]:
obv[i] = obv[i-1] - volume[i]
else:
obv[i] = obv[i-1]
Step 3: Calculate OBV trend (optional smoothing)
obv_sma[i] = SMA(obv, period=20)[i]
Step 4: Detect divergence
price_higher_high = close[i] > close[i-lookback]
obv_lower_high = obv[i] < obv[i-lookback]
if price_higher_high AND obv_lower_high:
signal = "Bearish Divergence"
price_lower_low = close[i] < close[i-lookback]
obv_higher_low = obv[i] > obv[i-lookback]
if price_lower_low AND obv_higher_low:
signal = "Bullish Divergence"
OUTPUT: obv[], obv_sma[], signal[]
EDGE CASES:
- First bar: OBV = volume[0] (arbitrary start, trend only matters)
- Zero volume bar: OBV unchanged (treat as neutral)
- Earnings gap: Flag as external event, do not interpret as structural accumulation
Section 6: Parameters & Optimization
Standard OBV Conventions
| Approach | Setup | Use Case |
|---|---|---|
| Raw OBV trend | OBV line direction over 10+ bars | Long-term accumulation/distribution |
| OBV with SMA(20) | Apply 20-period SMA to OBV itself | Smoother signal, fewer false crossovers |
| OBV breakout | OBV breaks above prior swing high | Confirms price breakout has volume support |
| OBV divergence | OBV vs. price comparison over 5-20 bars | Earliest warning of trend change |
Parameter Impact
| Change | Effect | When to Apply |
|---|---|---|
| Smooth OBV with SMA(10) | Reduces noise, slower to signal | Swing and position traders |
| Raw OBV only | More responsive, more whipsaws | Short-term confirmation |
| Lookback for divergence | 5–10 bars (swing), 10–26 bars (position) | Match to your trading timeframe |
Is the starting OBV value important?
No. The OBV starting value is completely arbitrary — different platforms use different start values for the same instrument, so OBV values are not comparable between platforms or data sources. Only the trend direction, slope, and divergence vs. price matter. Never compare absolute OBV values between instruments.
Should I smooth OBV or use it raw?
Both approaches work. Raw OBV is noisier but more responsive. OBV with an SMA(20) overlay provides cleaner trend reads — the OBV line crossing above its own SMA becomes a defined entry signal. For beginners, adding the SMA overlay reduces ambiguity considerably.
Section 7: Synergies & Conflicts
| Works Well With | Avoid Combining With | |
|---|---|---|
| Volume (Raw) | Raw volume confirms OBV signals — an OBV breakout accompanied by a volume spike is significantly more reliable | — |
| RSI | OBV divergence + RSI divergence in the same direction = double divergence. One of the highest-probability reversal signals in technical analysis. | — |
| Support/Resistance levels | OBV breakout coinciding with price breakout above a horizontal resistance level = extremely strong entry signal | — |
| Price Action patterns | OBV confirming a cup-and-handle or head-and-shoulders neckline break adds conviction to the pattern signal | — |
| A/D Line | — | Both are cumulative volume-weighted indicators with similar goals. A/D uses close-location weighting; OBV uses all-or-nothing. Using both creates redundancy without additive information — pick one. |
| VROC | — | VROC measures volume change rate (short-term); OBV measures cumulative direction (long-term). They answer different questions — combining is valid but OBV's signal will usually dominate. |
Section 8: Common Mistakes
| Mistake | Root Cause | Solution |
|---|---|---|
| Treating absolute OBV values as meaningful | Misunderstanding that OBV starts arbitrarily | Only analyze OBV's trend and direction — ignore the number itself |
| Acting on a single divergent bar | Expecting divergence to resolve immediately | Require at least 5 bars of divergence before considering an entry |
| Applying OBV to thinly traded stocks | Low volume makes cumulative totals erratic | Use OBV only on instruments with consistent daily volume above 500K shares |
| Missing earnings distortion | One gap-up day permanently inflates OBV | Mark earnings dates on your chart — exclude the earnings bar from divergence analysis |
| Using OBV as a timing tool | OBV is slow — divergences form over days and weeks | Pair OBV for direction bias with a faster oscillator (RSI, Stochastic) for entry timing |
Section 9: Cheat Sheet
USE WHEN: Analyzing 5–20 day divergences on daily charts, confirming breakouts from consolidation bases, assessing whether accumulation or distribution is occurring beneath flat price action
AVOID WHEN: Instruments with recent earnings gaps (distorts cumulative total), low-liquidity stocks, seeking exact entry timing (OBV is too slow for that)
ENTRY SIGNAL: Bullish — price breaks above swing high AFTER OBV already made a new high. Bearish — price breaks below swing low AFTER OBV already made a new low.
EXIT SIGNAL: OBV divergence resolves in the wrong direction (OBV starts confirming the adverse price move), or OBV fails to make new high with price on second breakout attempt
PARAMETERS: No period input — use SMA(20) overlay on OBV for smoother trend reads. Divergence lookback: 5–10 bars minimum.
CONFLUENCE: RSI divergence (same direction) + Price pattern completion + Volume spike at breakout bar
RISK: Earnings gaps permanently distort OBV trend — always check for earnings events during the divergence window
BEST TIMEFRAME: Daily chart for swing trades; 4H for active swing; weekly for position trades