Technical Analysis

VWAP Explained: The Benchmark Institutions Trade Against

VWAP is one division: dollars traded divided by shares traded. The denominator only ever grows, which is why the afternoon line is so hard to move.

AI-assisted, reviewed and edited by Ryza Glorioso. How we use AI

9 min read

VWAP is one division, performed again on every bar: every dollar that changed hands since the opening bell, divided by every share that changed hands since the opening bell. At 10:15 the sum is small and the line jumps around. By 15:45 the denominator holds most of a day’s volume. The line barely moves. That slow stiffening is the property everything else about VWAP depends on.

The calculation, bar by bar

Each bar contributes typical price x volume, where typical price is (high + low + close) / 3. Add the product to a running dollar total. Add the bar’s volume to a running share total. Divide one by the other.

Bar Typical price Volume price x volume Cumulative dollars Cumulative shares VWAP
1 50.00 400,000 20,000,000 20,000,000 400,000 50.00
2 50.50 200,000 10,100,000 30,100,000 600,000 50.17
3 49.80 500,000 24,900,000 55,000,000 1,100,000 50.00
4 49.60 400,000 19,840,000 74,840,000 1,500,000 49.89
5 50.20 500,000 25,100,000 99,940,000 2,000,000 49.97

Compare the second bar with the fifth. Bar 2 printed the high of the day at 50.50 and dragged VWAP up by 0.17, while bar 5 printed 50.20 on two and a half times that volume and moved the line by only 0.08. The smaller bar won because it was dividing into 600,000 shares while the larger one was dividing into 2,000,000.

Push it one step further. Add a sixth bar of 200,000 shares at 51.00, a dollar above the line. The new reading is (99,940,000 + 10,200,000) / 2,200,000 = 50.06, a move of 0.09. That identical bar arriving in the second slot would have produced (20,000,000 + 10,200,000) / 600,000 = 50.33.

The reset, and what it protects

At the opening bell both totals go back to zero. Yesterday leaves nothing behind. That looks like a design flaw. Look at who the number is built for.

An institution with two million shares to buy cannot lift the offer once. The order gets sliced across the session by an algorithm that tries to participate in proportion to the volume as it arrives, which is where the cost of demanding liquidity comes in, covered in the market makers and liquidity guide. At the close the desk has an average fill price. The comparison is against the session VWAP. That is the average price the whole market paid over the same window.

Say the desk filled all two million shares at 50.02 on average. Session VWAP came in at 49.97. It paid 0.05 per share above the benchmark. That is 0.05 x 2,000,000 = $100,000 in total, and 0.05 / 49.97 = 0.0010 of the price, which is 10 basis points. That figure is what gets reported, and commissions on an order of that size are a rounding error next to it.

There is something circular in the arrangement, and it is worth naming. The algorithm doing the slicing is usually targeting the same benchmark it will be measured against, so it buys more when the market is busy and less when the market is quiet, which is exactly the behaviour that produces a fill near the volume weighted average. Thousands of orders worked that way become a large pool of flow that tracks the line by construction. The benchmark attracts the trading that keeps it honest.

Now the reason the reset matters. A benchmark carrying last week’s prices would grade a trader against levels that were unavailable on the day the order was worked, and a trader graded on something unattainable will manage the order to protect the score at the client’s expense. One session in, one session out. That is the entire justification for starting again every morning.

Check one setting before you rely on the number. Some platforms include pre-market and after-hours prints in the sum and some start at the regular session open, and the two versions of the same indicator sit at different prices on any day with a gap in it.

Anchored VWAP, where the start date has a reason

Anchored VWAP runs the identical formula from a bar you choose. An earnings gap. A major low. The day a stock was added to an index. From that bar forward the sums accumulate as the session version does. They never reset.

Take a stock where 918,000,000 / 18,000,000 = 51.00 since the anchor. Every share traded since that event went through at an average of 51.00. With the stock at 53.20 the average participant since the anchor is ahead by 2.20 per share, and with the stock at 49.60 that same participant is underwater, which gives the supply appearing on any rally back toward 51.00 an obvious source.

That is a statement about positioning, and no price-only indicator can make it. It also gives the tool a defensible reason for where the calculation begins. Anchor at an event that changed what the company was worth. The line then answers a question worth asking.

Standard deviation bands

The bands measure spread around the average, weighted by volume: sqrt( sum(volume x (price - VWAP)^2) / sum(volume) ). Work it on the five bars above, with VWAP sitting at 49.97.

Bar price - VWAP Squared x volume
1 0.03 0.0009 360
2 0.53 0.2809 56,180
3 -0.17 0.0289 14,450
4 -0.37 0.1369 54,760
5 0.23 0.0529 26,450

The column adds to 152,200. Divide by the 2,000,000 shares: 152,200 / 2,000,000 = 0.0761. The square root of that is 0.276. One band sits at 49.69 and 50.25. Two bands sit at 49.41 and 50.53.

Five bars is a toy. A real session has hundreds of them. Treat the arithmetic as the demonstration and the chart as the product. What the bands tell you is whether size traded away from the average. A wide band says the day covered ground with volume behind the extremes. A narrow band says almost everything went through near the middle. That is the profile of a session waiting for something.

The temptation is to read a two band touch as a probability, and that step imports an assumption the data will not carry, since intraday prices cluster, gap and trend in ways a normal distribution does nothing to describe. A touch of the upper band is a statement about the session so far. In a session that trends from the open, price can ride that band for hours, and every fade against it loses money while the line keeps sloping away from the entry.

How it differs from a moving average

Session VWAP 20-period moving average
Window Everything since the open A fixed count of bars
Weighting By shares traded By bar, equally or by decay
Through the day Stiffens as volume accumulates Responsiveness stays constant
Memory Erased at the next open Rolls across sessions
Question answered Where the average share traded Where the average bar closed

The weighting is the real distinction. A 20-period average treats a 30,000 share bar at lunchtime and a 300,000 share bar at the open as equals, while VWAP counts the second one ten times as heavily. The moving averages guide works through the lag a fixed window builds in. The two lines fail in different places for that reason.

The growing window is the other one. A 20-period average is equally jumpy at 09:45 and at 15:45. It always holds twenty bars. VWAP starts unstable and ends immovable.

Why the daily chart ruins it

Put session VWAP on a daily chart and each bar receives one number, computed from that day alone, sitting somewhere inside the range you are already looking at. The line traces price with a little of the noise damped out and no memory of anything, which makes it a worse version of a two-day average. There is nothing to trade against. Every level it drew was deleted at the following open.

The continuous version fails in the other direction. Run the sum across years without an anchor and ancient volume swamps everything recent: a stock that has traded 4 billion shares over a decade with 120 million of them in the last quarter gives that quarter about 3% of the weight. The line ends up far from price and crawling. It describes an average holder who has mostly moved on. Use the anchored version on any chart longer than a day.

Where it fails

The first fifteen minutes are the worst case. A few hundred thousand shares in the denominator means the line swings with every block that prints, and a plan that treats the 09:45 reading as a level is trading against a number that will have moved by 10:00.

Thin stocks break it. A single 300,000 share block crossed at 48.00 in a name that trades 500,000 shares on an average day drags the line most of the way to the block price, and the resulting average describes one negotiated print more than it describes the session.

Halts and gaps break the continuity. When a stock reopens after a halt at a price nowhere near the line, the VWAP is an average of a market that no longer exists, and it takes a large amount of fresh volume before the number means anything again.

The last failure is crowding, and it is the one worth respecting. Everybody sees the same line, the fade at the first touch is the most obvious trade on the screen, and obvious trades on a well watched level are where stop orders pile up in the way the support and resistance guide describes. No published figure exists for how often a VWAP touch holds. Any that you meet will name no sample and no rule for what counted as a touch, so you can put it down.

For the participation half of this, read the volume analysis guide. It covers relative volume and the mechanical volume that quietly distorts an average. The technical analysis pillar puts the intraday tools in their place alongside trend and levels, and the stock screener filters on relative volume so that you only open an intraday chart on names where enough is happening for the average to mean anything.

Frequently asked questions

How is VWAP calculated?

Each bar contributes its typical price multiplied by its volume, where typical price is the high plus the low plus the close divided by three. Those products are added into a running total of dollars, and the bar volumes are added into a running total of shares. VWAP is the first total divided by the second, recomputed on every bar from the opening bell onward.

Why does VWAP reset at the start of every session?

The line exists to describe the average price paid during one trading day, because that is the window an execution desk is given and judged on. Carrying yesterday into the sum would grade a trader against prices that were no longer available. The reset is what makes the number a fair benchmark, and it is also what makes the line useless on a daily chart.

What is anchored VWAP?

Anchored VWAP is the same running calculation started from a bar you choose, such as an earnings gap, a major low or the day a stock entered an index. It tells you the average price paid by everyone who has traded since that event. Price above the anchored line means the average buyer since the anchor is ahead on the position.

What do VWAP standard deviation bands show?

The bands measure how far prices have spread around VWAP, weighted by the volume that traded at each of them. A wide band means the session covered a lot of ground with real size at the extremes, and a narrow band means most of the day traded close to the average. Treating a two band touch as a fixed probability imports an assumption about the distribution that intraday prices do not satisfy.

Should I use VWAP or a moving average?

They answer different questions. A moving average tells you where the average bar closed over a fixed count of bars, giving a 30,000 share bar the same weight as a 300,000 share bar. VWAP tells you where the average share changed hands since the open, so the size of each bar decides how much it counts.