Volume indicator: settings and signals
Volume shows how many trades or contracts passed during a bar — it is a measure of participant activity, not of price.
What the indicator looks like on a real chart
Data: EUR/USD, daily bars, 2025-06-16 — 2026-07-20. The indicator is computed over 400 bars; the chart shows the last 180. Quote source: Binance Spot REST API (api.binance.com/api/v3/klines).
| Regime | Score |
|---|---|
| Trending market | 54 |
| Range | 40 |
| High volatility | 60 |
| Low volatility | 33 |
What the indicator actually measures
Volume is the only quantity in the set that is not derived from price. All the other indicators are transformations of the price series and therefore add no new information; volume brings an independent dimension — trading intensity.
Meaning arises only in comparison. The absolute number of contracts says nothing until it is set against the average over a period: a spike twice above the average means the participation of large players, while a move on below-average volume more often turns out to be unstable.
It is critical to understand the data source. On an exchange, volume is centralized and reliable. On forex the broker provides tick volume — the number of price changes within a bar, which correlates with activity but is not equal to real turnover and differs between brokers.
Formula
There is no calculation as such: it is source data arriving together with quotes. All analytical content appears when comparing with a moving average of volume — that is what turns a raw number into the statement "above or below usual".
Standard settings
| Parameter | Value |
|---|---|
| Average-volume period | 20 |
| Above-average threshold | 1.5× |
| Proxy on Forex | Tick Volume |
A 20-bar volume average is a common reference that sets the level of "ordinary" activity. On instruments with pronounced seasonality of activity it makes sense to compare volume with the same time of day or day of week rather than with the overall average.
Implementation code (Python)
def volume_confirms(volume, period=20, threshold=1.5):avg = volume.rolling(period).mean()return volume > avg * threshold
When the indicator stops working
- On forex only tick volume is available, differing between brokers.
- A volume spike does not indicate direction: a large trade can be either a buy or a sell.
- Calendar effects — holidays, session closes, expirations — distort the comparison with the average.
Common mistakes in use
- Reading the absolute volume value without comparison to the average. The number of contracts on its own carries no information.
- Treating high volume as a bullish sign. Volume is symmetric: it rises equally on active buying and on active selling.
- Comparing the volumes of different instruments directly, ignoring the difference in liquidity.
- Drawing conclusions from a forex broker's tick volume as if it were real exchange turnover.
Who needs this and why
Necessary for everyone trading exchange instruments who wants to distinguish a move with large-capital participation from a move on a thin market. On forex it is applicable with a correction for the nature of the data.
Frequently asked questions
What is tick volume and what is wrong with it?
It is the number of price changes within a bar, not the number of units of the asset traded. On decentralized forex there is no real aggregate volume, so brokers provide tick volume. It reflects relative activity reasonably well, but it differs between brokers and does not allow judging real turnover.
Is a volume spike a buy signal?
No. Every trade has both sides, so volume contains no information about direction. A spike only says that an event attracted the attention of large participants; where price will go, volume does not show.
What should I compare the current volume with?
With a moving average of volume over 20 or so bars. For instruments with pronounced intraday seasonality it is more correct to compare with the volume of the same hour on previous days: a morning spike at the session open is the norm, not a signal.