Indicator library · Volume
VWAP, Volume-Weighted Average Price
The average price of every share traded in a session, weighted by how many traded at each price. It is a measurement of where the market actually did business, and it was a benchmark for executions long before anyone treated it as an indicator.
The calculation
Two running totals and one division, computed from the first bar of the session forward:
- For each bar, take the typical price: (high + low + close) ÷ 3, and multiply it by that bar’s volume.
- Add the product to a cumulative total, and add the bar’s volume to a second cumulative total.
- VWAP = cumulative (price × volume) ÷ cumulative volume. Both totals reset when the session does.
The consequence of weighting by volume rather than by time is worth stating plainly. A price at which a great many shares traded moves this average a great deal; a price at which almost nothing traded barely moves it at all. On the session computed below, VWAP finishes at 101.26 while the simple mean of the same closes is 101.17, a difference produced entirely by where the volume was.
A benchmark before it is an indicator
Most lines on a chart were invented to produce signals. This one was not. VWAP exists because a trader handed a large order has to be assessed somehow, and the average price available across the session is a defensible standard: beating it means the order was worked better than the market’s own average, and missing it means the opposite.
That origin explains the line’s behaviour better than any technical argument. A substantial amount of execution is arranged specifically to track VWAP, which means real flow is committed on both sides of it throughout the day (buying below, selling above) by participants who are not expressing a view at all. When price is observed returning to the line, that is frequently what has happened.
It also explains the limit. Because the flow is obliged rather than opinionated, the line tells you where business is being done and nothing about where it will be done next. In a session with a genuine trend, price sits on one side of VWAP from the open to the close and the average simply follows it up or down.
The volume shape decides the number
A trading session is not evenly busy. A disproportionate share of the day’s volume prints in the first and last few minutes (around the opening auction and into the close, where index funds, closing crosses and end-of-day rebalancing concentrate), while the middle hours, which are most of the clock, contribute comparatively little.
Because VWAP weights by volume, those two windows dominate it. The figure above is built to show this: the closes through the middle of the session move the average hardly at all, and the final three bars pull it upward more than the previous twenty combined. This is not a distortion to be corrected (it is a correct statement about where the shares changed hands), but it has two practical consequences.
First, VWAP early in a session is a fragile number. With only a few bars in the cumulative totals it can move sharply, and a deviation from it in the first half hour means much less than the same deviation in the afternoon. Second, the data source matters more than for any other line here: a feed that omits off-exchange prints, or that reports volume differently, produces a VWAP that will not match the one the institution on the other side of your trade is being measured against.
Where it misleads
| Situation | What goes wrong |
|---|---|
| Distance treated as reversion | In a trending session price stays on one side all day and the line follows. A gap from VWAP is not a signal that it will close. |
| Early in the session | Few bars in the cumulative totals means the average is unstable; deviations in the first minutes carry little information. |
| Multi-day VWAP | Without the reset the average stops responding, and it is no longer the benchmark anyone is measured against. |
| Anchored version, moved | The anchor is discretionary. Shifting it until the line sits where price is fits the tool to the answer. |
| Incomplete volume data | A feed missing off-exchange prints produces a different line from the one institutional executions are judged on. |
| Illiquid instruments | A handful of trades sets the weighting, so the average describes those trades rather than a market. |
What breadth adds
VWAP is the most instrument-specific measure in this library: it describes one security’s own session and cannot be compared with another’s, because it is denominated in that instrument’s price. Whether the session it describes was ordinary or unusual is a question it cannot answer at all.
That is what the breadth section is for. A stock closing well above its VWAP on a day when almost every issue advanced has done what the market did; the same close on a day when declines outnumbered advances two to one is a genuinely different observation. The line tells you where business was done in one instrument, and the count of how many issues took part tells you whether that was remarkable.
Frequently asked questions
How is VWAP calculated?
Cumulatively through the session. For each bar, multiply a representative price — conventionally the typical price, the average of high, low and close — by that bar’s volume. Keep a running total of those products and a running total of the volume, and divide one by the other. The result is the average price at which the session’s shares actually changed hands, so a price where a great deal traded pulls it far more than one where almost nothing did.
How does it differ from a moving average?
A moving average weights by recency and ignores participation; VWAP weights by participation and ignores recency. A 20-period average of the close treats a session that traded ten million shares exactly like one that traded two hundred thousand, which is precisely the information a volume-based reading needs. The two are not variants of one idea: they answer different questions, and on a heavy session they can sit a long way apart.
Why does VWAP reset?
Because the quantity it measures is defined over a period, and the period conventionally is the session. A cumulative average that never resets becomes progressively less responsive (after several thousand bars, one more contributes almost nothing), so it would stop describing anything current. The reset is also what makes it usable as a benchmark: an execution can be judged against the average price available during the day it traded, which is a fair comparison, and not against a figure carrying six months of history.
Why is it called a benchmark?
Because institutions are measured against it. A trader given a large order to work through the day is commonly assessed on whether the average price achieved beat the day’s VWAP, and a substantial amount of algorithmic execution is arranged specifically to track it. That has a consequence worth understanding: the line is watched by participants who are obliged to trade around it, which gives it real behaviour independent of anything it forecasts.
Does price come back to VWAP?
Often, and the mechanism is not mysterious. Execution algorithms working large orders will buy below the line and sell above it because that is how they are measured, which puts genuine flow on both sides of it through the day. That said, in a strong trend price can spend an entire session on one side and the line simply follows it, treating a distance from VWAP as a reason to expect reversion is the most common way traders lose money with it.
What is anchored VWAP?
The same calculation started from a chosen bar rather than from the session open (an earnings release, a gap, a swing low), and run forward from there without resetting. It answers a specific question: what is the average price everyone who has traded since that event has paid. It is a legitimate use and it inherits one problem from every drawing tool, which is that the anchor is a discretionary choice, and moving it until the line sits where you want is fitting the tool to the answer.
Can VWAP be used on a daily chart?
It can be computed over any period, and the daily version is far less meaningful than the intraday one. Its whole standing comes from being the benchmark a session’s executions are measured against; a "weekly VWAP" is not a benchmark anyone is judged on, so it carries none of the behaviour that makes the intraday line worth watching. If what you want is a volume-weighted average over months, say that rather than borrowing the acronym.
Which price should be weighted: the close or the typical price?
The typical price, the mean of high, low and close, is the convention and is the better choice: within a bar, trading happened across the whole range and not only at the close. Using the close alone produces a slightly different line that is not wrong so much as inconsistent with what everyone else is plotting, and since the value of this particular line depends on other people watching it, matching the convention matters more here than usual.
How much does the volume shape distort it?
It determines the result. A session concentrates a disproportionate share of its volume into the first and last few minutes, so the prices trading then dominate the average, the middle of the day, which is most of the clock, contributes comparatively little. This is not a flaw: it is an accurate statement of where the shares changed hands. It does mean that a VWAP computed from bars with the volume stripped out, or from a data feed that omits off-exchange prints, is a different number from the one institutions are measured against.