Skip to main content
Skip to main content
Version: Next 🚧

Volume Indicators

Volume indicators analyze trading activity to confirm price movements, identify accumulation/distribution, and validate breakouts. Volume is often called the "fuel" of price movements.

Volume

Overview

Volume represents the total number of shares or contracts traded during a specific period. It's the most fundamental indicator of market participation and liquidity.

Characteristics

  • Measurement: Number of shares/contracts traded
  • Timeframe: Per candle/bar
  • Interpretation: Higher volume = stronger conviction
  • Best For: Confirming price movements and breakouts
  • Limitation: Doesn't indicate direction

Volume Interpretation

Volume LevelPrice ActionSignal
High Volume + UpRising pricesStrong buying, bullish confirmation
High Volume + DownFalling pricesStrong selling, bearish confirmation
Low Volume + UpRising pricesWeak rally, potential reversal
Low Volume + DownFalling pricesWeak decline, potential bounce
Increasing VolumeAny directionTrend strengthening
Decreasing VolumeAny directionTrend weakening

Volume Patterns

1. Volume Spike:

  • Sudden increase in volume
  • Indicates significant event or news
  • Often marks trend reversal or continuation
  • Confirm with price action

2. Volume Climax:

  • Extremely high volume at trend extreme
  • Exhaustion signal
  • Often precedes reversal
  • Look for price reversal confirmation

3. Volume Dry-Up:

  • Decreasing volume over time
  • Indicates lack of interest
  • Often precedes breakout
  • Trade the breakout direction

4. Volume Confirmation:

  • Volume increases with trend
  • Validates price movement
  • Healthy trend characteristic
  • Continue holding position

Usage Examples

Volume Above Average:

{
"type": "indicator_value",
"indicator": "volume",
"comparison": "above",
"value": "sma_volume_20"
}
// Current volume > 20-period average = high activity

Volume Spike (2x Average):

{
"type": "indicator_value",
"indicator": "volume",
"comparison": "above",
"value": "sma_volume_20_multiplied_2"
}
// Volume > 2× average = significant event

Breakout with Volume:

{
"logicalOperator": "AND",
"conditions": [
{
"type": "price_indicator",
"price": "close",
"indicator": "sma",
"period": 50,
"comparison": "crosses_above"
},
{
"type": "indicator_value",
"indicator": "volume",
"comparison": "above",
"value": "sma_volume_20_multiplied_1.5"
}
]
}
// Price breakout + 1.5× volume = confirmed breakout

Volume Strategies

1. Volume Confirmation Strategy:

{
"entryConditions": {
"long": {
"logicalOperator": "AND",
"conditions": [
{
"indicator1": "ema",
"period1": 20,
"indicator2": "ema",
"period2": 50,
"comparison": "crosses_above"
},
{
"type": "indicator_value",
"indicator": "volume",
"comparison": "above",
"value": "sma_volume_20"
}
]
}
}
}
// Enter on EMA crossover with above-average volume

2. Volume Breakout Strategy:

{
"entryConditions": {
"long": {
"logicalOperator": "AND",
"conditions": [
{
"type": "price_value",
"price": "close",
"comparison": "above",
"value": "high_20"
},
{
"type": "indicator_value",
"indicator": "volume",
"comparison": "above",
"value": "max_volume_20"
}
]
}
}
}
// Enter on 20-day high with highest volume in 20 days

On-Balance Volume (OBV)

Calculation

OBV is a cumulative indicator that adds volume on up days and subtracts volume on down days, showing the flow of volume.

Formula:

If Close > Close_previous:
OBV = OBV_previous + Volume

If Close < Close_previous:
OBV = OBV_previous - Volume

If Close = Close_previous:
OBV = OBV_previous

Example:

Day 1: Close=100, Volume=1000, OBV=1000 (starting value)
Day 2: Close=102, Volume=1500, OBV=1000+1500=2500 (up day)
Day 3: Close=101, Volume=1200, OBV=2500-1200=1300 (down day)
Day 4: Close=103, Volume=1800, OBV=1300+1800=3100 (up day)
Day 5: Close=103, Volume=1000, OBV=3100 (unchanged)

Characteristics

  • Range: Unbounded (cumulative)
  • Direction: Rising OBV = accumulation, Falling OBV = distribution
  • Trend: OBV trend should confirm price trend
  • Divergence: OBV divergence signals potential reversal
  • Best For: Identifying accumulation/distribution

OBV Interpretation

OBV PatternPrice PatternSignal
Rising OBVRising PriceHealthy uptrend, accumulation
Rising OBVFlat/Falling PriceBullish divergence, potential rally
Falling OBVFalling PriceHealthy downtrend, distribution
Falling OBVFlat/Rising PriceBearish divergence, potential decline
Flat OBVAny PriceLack of conviction, wait

OBV Divergence

Bullish Divergence:

  • Price makes lower low
  • OBV makes higher low
  • Signal: Accumulation, potential reversal up

Bearish Divergence:

  • Price makes higher high
  • OBV makes lower high
  • Signal: Distribution, potential reversal down

Usage Examples

OBV Uptrend:

{
"indicator1": "obv",
"indicator2": "sma_obv",
"period2": 20,
"comparison": "above"
}
// OBV above its 20-period SMA = accumulation

OBV Crosses Above SMA:

{
"indicator1": "obv",
"indicator2": "sma_obv",
"period2": 20,
"comparison": "crosses_above"
}
// OBV crosses above its SMA = bullish signal

OBV Confirmation:

{
"logicalOperator": "AND",
"conditions": [
{
"type": "price_indicator",
"price": "close",
"indicator": "sma",
"period": 50,
"comparison": "above"
},
{
"indicator1": "obv",
"indicator2": "sma_obv",
"period2": 20,
"comparison": "above"
}
]
}
// Price uptrend + OBV uptrend = confirmed trend

OBV Strategies

1. OBV Trend Following:

{
"entryConditions": {
"long": {
"logicalOperator": "AND",
"conditions": [
{
"indicator1": "obv",
"indicator2": "sma_obv",
"period2": 20,
"comparison": "crosses_above"
},
{
"type": "price_indicator",
"price": "close",
"indicator": "ema",
"period": 50,
"comparison": "above"
}
]
}
}
}
// Enter when OBV crosses above its SMA in uptrend

2. OBV Divergence Strategy:

{
"entryConditions": {
"long": {
"logicalOperator": "AND",
"conditions": [
{
"type": "custom",
"description": "Price makes lower low, OBV makes higher low"
},
{
"type": "indicator_value",
"indicator": "rsi",
"period": 14,
"comparison": "crosses_above",
"value": 30
}
]
}
}
}
// Enter on bullish OBV divergence + RSI confirmation

Volume Weighted Average Price (VWAP)

Calculation

VWAP calculates the average price weighted by volume, showing the true average price paid by all traders during the period.

Formula:

VWAP = Σ(Typical Price × Volume) / Σ(Volume)

Where:
Typical Price = (High + Low + Close) / 3

Example (Intraday VWAP):

9:30 AM: TP=100, Vol=1000, VWAP=(100×1000)/1000=100.00
9:45 AM: TP=101, Vol=1500, VWAP=((100×1000)+(101×1500))/(1000+1500)=100.60
10:00 AM: TP=99, Vol=800, VWAP=((100×1000)+(101×1500)+(99×800))/(1000+1500+800)=100.36
...continues throughout day

Characteristics

  • Reset: Daily (resets at market open)
  • Timeframe: Intraday only
  • Purpose: Fair value reference
  • Institutional: Used by institutions for execution
  • Best For: Intraday trading, support/resistance

VWAP Interpretation

Price vs VWAPSignalAction
Price > VWAPBullishLook for long entries on pullbacks to VWAP
Price < VWAPBearishLook for short entries on rallies to VWAP
Price at VWAPNeutralSupport/resistance level
Price crosses above VWAPBullishBuy signal
Price crosses below VWAPBearishSell signal

VWAP as Support/Resistance

Support (Uptrend):

  • Price above VWAP
  • Pullbacks to VWAP find support
  • Buy at VWAP with confirmation

Resistance (Downtrend):

  • Price below VWAP
  • Rallies to VWAP face resistance
  • Sell at VWAP with confirmation

Usage Examples

Price Above VWAP:

{
"type": "price_indicator",
"price": "close",
"indicator": "vwap",
"comparison": "above"
}
// Price > VWAP = bullish, above fair value

VWAP Crossover:

{
"type": "price_indicator",
"price": "close",
"indicator": "vwap",
"comparison": "crosses_above"
}
// Price crosses above VWAP = bullish signal

VWAP Bounce:

{
"logicalOperator": "AND",
"conditions": [
{
"type": "price_indicator",
"price": "low",
"indicator": "vwap",
"comparison": "below"
},
{
"type": "price_indicator",
"price": "close",
"indicator": "vwap",
"comparison": "above"
}
]
}
// Price touches VWAP and bounces = support

VWAP Strategies

1. VWAP Pullback Strategy:

{
"entryConditions": {
"long": {
"logicalOperator": "AND",
"conditions": [
{
"type": "price_indicator",
"price": "close",
"indicator": "vwap",
"comparison": "above"
},
{
"type": "price_indicator",
"price": "low",
"indicator": "vwap",
"comparison": "below"
},
{
"type": "price_indicator",
"price": "close",
"indicator": "vwap",
"comparison": "above"
}
]
}
}
}
// Enter when price pulls back to VWAP and bounces

2. VWAP Breakout Strategy:

{
"entryConditions": {
"long": {
"logicalOperator": "AND",
"conditions": [
{
"type": "price_indicator",
"price": "close",
"indicator": "vwap",
"comparison": "crosses_above"
},
{
"type": "indicator_value",
"indicator": "volume",
"comparison": "above",
"value": "sma_volume_20"
}
]
}
}
}
// Enter when price crosses above VWAP with volume

3. VWAP Mean Reversion:

{
"entryConditions": {
"long": {
"logicalOperator": "AND",
"conditions": [
{
"type": "price_indicator",
"price": "close",
"indicator": "vwap",
"comparison": "below"
},
{
"type": "custom",
"description": "Price 2% below VWAP"
},
{
"type": "indicator_value",
"indicator": "rsi",
"period": 14,
"comparison": "below",
"value": 30
}
]
}
},
"exitConditions": {
"takeProfit": {
"type": "indicator",
"indicator": "vwap"
}
}
}
// Enter when price oversold below VWAP, exit at VWAP

Comparison: Volume vs OBV vs VWAP

FeatureVolumeOBVVWAP
TypeRaw dataCumulativeWeighted average
DirectionNoYesNo
TimeframeAllAllIntraday only
Best ForConfirmationDivergencesFair value
CalculationSimpleCumulativeComplex
InterpretationRelativeTrendSupport/Resistance

Volume Indicator Combinations

1. Volume + OBV (Double Confirmation)

Setup:

  • Volume for immediate confirmation
  • OBV for trend confirmation

Entry (Long):

  • Volume > average
  • OBV rising
  • Price breakout
{
"entryConditions": {
"long": {
"logicalOperator": "AND",
"conditions": [
{
"type": "price_value",
"price": "close",
"comparison": "above",
"value": "high_20"
},
{
"type": "indicator_value",
"indicator": "volume",
"comparison": "above",
"value": "sma_volume_20"
},
{
"indicator1": "obv",
"indicator2": "sma_obv",
"period2": 20,
"comparison": "above"
}
]
}
}
}

2. VWAP + Volume (Intraday Scalping)

Setup:

  • VWAP for direction
  • Volume for confirmation

Entry (Long):

  • Price above VWAP
  • Price pulls back to VWAP
  • Volume spike on bounce
{
"entryConditions": {
"long": {
"logicalOperator": "AND",
"conditions": [
{
"type": "price_indicator",
"price": "close",
"indicator": "vwap",
"comparison": "crosses_above"
},
{
"type": "indicator_value",
"indicator": "volume",
"comparison": "above",
"value": "sma_volume_5"
}
]
}
}
}

3. Volume + Price Action (Breakout Confirmation)

Setup:

  • Price breakout
  • Volume confirmation
  • Momentum confirmation

Entry (Long):

  • Price breaks resistance
  • Volume > 1.5× average
  • RSI > 50
{
"entryConditions": {
"long": {
"logicalOperator": "AND",
"conditions": [
{
"type": "price_value",
"price": "close",
"comparison": "above",
"value": "resistance_level"
},
{
"type": "indicator_value",
"indicator": "volume",
"comparison": "above",
"value": "sma_volume_20_multiplied_1.5"
},
{
"type": "indicator_value",
"indicator": "rsi",
"period": 14,
"comparison": "above",
"value": 50
}
]
}
}
}

Volume Analysis Techniques

1. Volume Profile

  • Shows volume distribution at different price levels
  • Identifies high-volume nodes (support/resistance)
  • Point of Control (POC) = highest volume price
  • Value Area = 70% of volume

2. Volume Spread Analysis (VSA)

  • Analyzes relationship between volume and price range
  • High volume + narrow spread = accumulation
  • High volume + wide spread = distribution
  • Low volume + wide spread = weak move

3. Accumulation/Distribution

  • Rising price + rising volume = accumulation
  • Falling price + rising volume = distribution
  • Rising price + falling volume = weak rally
  • Falling price + falling volume = weak decline

Best Practices

Do's

  • ✅ Always confirm breakouts with volume
  • ✅ Use OBV to identify divergences
  • ✅ Use VWAP for intraday support/resistance
  • ✅ Compare current volume to average volume
  • ✅ Look for volume climaxes at trend extremes
  • ✅ Use volume with price action for best results

Don'ts

  • ❌ Trade breakouts without volume confirmation
  • ❌ Ignore volume when analyzing trends
  • ❌ Use VWAP for multi-day analysis (resets daily)
  • ❌ Rely solely on volume indicators
  • ❌ Ignore low volume rallies (often fail)
  • ❌ Trade against volume trends

Common Pitfalls

1. False Breakouts Without Volume

Problem: Price breaks level but volume is low Solution: Require volume > 1.5× average for breakouts

2. Ignoring Volume Climaxes

Problem: Missing reversal signals at extremes Solution: Watch for extremely high volume at trend ends

3. Using VWAP on Daily Charts

Problem: VWAP resets daily, not useful for multi-day Solution: Only use VWAP for intraday trading