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 Level | Price Action | Signal |
|---|---|---|
| High Volume + Up | Rising prices | Strong buying, bullish confirmation |
| High Volume + Down | Falling prices | Strong selling, bearish confirmation |
| Low Volume + Up | Rising prices | Weak rally, potential reversal |
| Low Volume + Down | Falling prices | Weak decline, potential bounce |
| Increasing Volume | Any direction | Trend strengthening |
| Decreasing Volume | Any direction | Trend 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 Pattern | Price Pattern | Signal |
|---|---|---|
| Rising OBV | Rising Price | Healthy uptrend, accumulation |
| Rising OBV | Flat/Falling Price | Bullish divergence, potential rally |
| Falling OBV | Falling Price | Healthy downtrend, distribution |
| Falling OBV | Flat/Rising Price | Bearish divergence, potential decline |
| Flat OBV | Any Price | Lack 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 VWAP | Signal | Action |
|---|---|---|
| Price > VWAP | Bullish | Look for long entries on pullbacks to VWAP |
| Price < VWAP | Bearish | Look for short entries on rallies to VWAP |
| Price at VWAP | Neutral | Support/resistance level |
| Price crosses above VWAP | Bullish | Buy signal |
| Price crosses below VWAP | Bearish | Sell 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
| Feature | Volume | OBV | VWAP |
|---|---|---|---|
| Type | Raw data | Cumulative | Weighted average |
| Direction | No | Yes | No |
| Timeframe | All | All | Intraday only |
| Best For | Confirmation | Divergences | Fair value |
| Calculation | Simple | Cumulative | Complex |
| Interpretation | Relative | Trend | Support/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
Related Documentation
- Indicators Overview - All available indicators
- Trend Indicators - MACD, ADX, Parabolic SAR
- How to Combine Multiple Indicators - Practical guide
- Breakout Strategy Examples - Volume-confirmed breakouts