What is VWMA?
The volume weighted moving average is a moving average over the last n bars in which each bar's price counts in proportion to the volume traded on it. A heavy bar pulls the line towards its own price, a thin one barely moves it. When volume is roughly constant the line tracks a simple average closely; it separates from it exactly where volume was uneven.
VWMA shows where price has been on average, weighted by participation. It does not say whether that volume was buying or selling, it does not reset each session as VWAP does, and it does not predict future prices.
How to use VWMA
- Price above or below the line. Price holding above VWMA is read as context for an uptrend, below it for a downtrend.
- VWMA against a simple average. With the same length, VWMA above the simple average means the higher prices in the window traded on more volume. VWMA below it means the lower prices did.
- The slope. A rising line means recent volume has been traded at higher prices than the volume leaving the window.
- Period length. Shorter reacts sooner and whipsaws more; longer is smoother and later.
These are ways to read the line, not entry signals on their own.
Settings
| Setting | Default | What it changes |
|---|---|---|
| Length | 20 | Bars in the average. Lower follows price more closely and whipsaws more; higher is smoother and later. Minimum 1. |
| Source | Close | Which price each bar contributes. Open, high, low and the averaged sources such as hl2 and hlc3 are also available. The weighting always uses the bar's volume. |
Adjust the period and price source in the indicator settings.
Calculation
VWMA is the average of price times volume divided by the average of volume, both over the same window:
VWMA = SMA(price * volume, 20) / SMA(volume, 20)
which is the same as:
VWMA = sum(price * volume over 20 bars) / sum(volume over 20 bars)
Each bar's weight is its share of the window's total volume. If every bar had the same volume, the volume terms would cancel and the result would equal a 20-bar simple average. Any difference between the two lines therefore comes entirely from uneven volume.
Both averages need a full window, so the first value appears on bar 20 with the default length. A window in which every bar has zero volume has nothing to weight by and gives no value.
Limitations
- It lags. Like a simple average, every bar in the window holds the line back for the full length of the window.
- One bar can dominate. A single very heavy bar, such as a liquidation spike, can hold the line near its price until it leaves the window.
- Volume differs between exchanges. Volume is the exchange's own figure for that market, so the same pair can give a different line on another exchange.
- It depends on timeframe, period and source. The same indicator gives a different line on 15m than on 1D, or on close against hl2.
- It is not a strategy. On its own it carries no risk management, sizing or exit.
Frequently asked questions
VWMA is a moving average over the last n bars in which each bar's price is weighted by its volume. It is calculated as the sum of price times volume over the window, divided by the total volume over the window.
VWMA uses a rolling window of a fixed number of bars, so old bars drop out as new ones arrive. VWAP accumulates from the start of a session and resets at the next one. Both weight by volume, but they answer different questions.
A simple average gives every bar in the window the same weight. VWMA gives each bar a weight equal to its share of the window's volume. With equal volume the two are identical; the gap between them shows where volume was concentrated.
Yes. The indicator has two inputs: Length, default 20 with a minimum of 1, and Source, default close. Open the indicator's settings on the chart to change them. The weighting always uses each bar's volume.
No. Each value depends only on the bars in its window, so values on closed bars are not revised. The current candle's value moves while that candle is live, including as its volume grows, and settles when it closes.
Use the Add to chart button at the top of this page. It opens BTC/USDT on Binance in the Altrady Charts terminal with the built-in VWMA already applied. On any other market, open the indicator picker on the chart and choose VWMA from the Moving Average group.