538 / 736VWAP

Volume weighted average price

Volume-weighted mean price

Volume weighted average price (VWAP) is an average in which larger trades carry more weight. It helps show the prices at which trading took place over a chosen period. The result always belongs to a particular dataset, however, and is not a promise that you can buy at that price.

In an ordinary average, every included price gets an equal vote. VWAP also accounts for the quantity traded: it multiplies each trade’s price by its volume, adds the results and divides by total volume. A chart may use candle summaries instead of individual trades, so it matters what the line is calculated from.

Petr sees a small trade at a lower price and a much larger trade at a higher price. Adding the prices and dividing by their count would give them equal weight. VWAP gives more influence to the price at which more bitcoin changed hands. It answers a different question: what was the average price per unit traded? The number of trades is not volume; many small trades can together amount to less than one large trade. [1]

TradingView’s indicator defaults to hlc3, the average of High, Low and Close: the candle’s highest, lowest and closing prices. It weights that value by the volume for the candle’s period. But a candle does not tell you how much traded at each individual price within it. This calculation can therefore differ from VWAP built from every actual trade. Comparing charts also requires matching the price input and candle interval. [2]

Petr also needs to know where the included period begins. TradingView’s Anchor Period sets this: Session for a trading session or Week for a week, for example. At a reset, the accumulated totals are discarded and calculation starts again. Bitcoin trades continuously, but data providers still define days and sessions. “Daily VWAP” therefore needs a specific start, end and time zone; it need not start at Petr’s local midnight. [2]

Anchored VWAP lets you choose a starting point directly on the chart. Further data accumulates from there while the start stays fixed. This differs from a rolling window, which drops its oldest values as time moves on. An anchor can help explore a particular period. But if Petr chooses it only after seeing later price movements, he cannot present that choice as a rule he knew beforehand. [3]

VWAP needs a defined market and consistent units. A trading pair states what is exchanged for what; with prices in USD/BTC and quantities in BTC, the resulting average is again in USD/BTC. Another exchange can have different trades and a different result. Likewise, bitcoin quantities, contract counts and monetary turnover cannot be mixed without conversion. A contract is a traded agreement with its own size rules, not automatically the bitcoin quantity shown on a chart. [1]

Total volume is the divisor in the formula. If it is zero, VWAP is undefined; zero is not a measured market price. A blank value can also mean missing data rather than an actual absence of trades. How a chart displays that situation depends on the provider. Petr should not silently treat it as a cheap buying opportunity or as a continuation of the last known value. [2]

VWAP can be a benchmark: a reference for comparing an achieved price. The line itself executes no order. IBKR, for example, describes its algorithm for US equities as best-efforts: it aims to approach the benchmark but allows for a different price or incomplete execution. That is not an offer of the same service on every bitcoin market. To compare his own purchase, Petr must also match the period and markets and make clear whether amounts include fees. [4]

A current price below VWAP is below the volume-weighted average of the selected past data. That alone proves neither undervaluation nor a future recovery. The reverse also applies: a price above the line does not promise further gains. VWAP responds to completed trading and can lag behind price. Any trading rule therefore needs its own validation, decision timing and realistic execution including costs. [2]

Example · VWAP

Why the average sits closer to the larger trade

Take two fictional trades in the same pair: 1 BTC trades at 100000 USD/BTC, then 3 BTC at 100100 USD/BTC. Simply averaging the prices would give both trades equal weight. VWAP first accounts for quantity: VWAP = (100000 × 1 + 100100 × 3) / 4 = 100075 USD/BTC. The result is closer to the higher price because the larger trade took place there. The ordinary average of the prices is only 100050 USD/BTC. Here we use individual trades without fees, not candle hlc3 values. This is neither an actual market offer nor a forecast of the next price, nor a guarantee of the same outcome for Petr’s purchase.

For the clearest picture, read this entry together with Time weighted average price, OHLCV, Market impact, Slippage, Simple moving average, Technical indicator. The reverse links also lead from Market impact, OHLCV, Time weighted average price.

01Why does VWAP differ between exchanges?

Each exchange can have different trades and volumes. Differences can also come from the price input, candle interval or calculation-period boundaries. Before comparing, check the trading pair, units and calculation method. The same indicator name does not imply the same data.

02Is a price below VWAP an automatic instruction to buy?

No. It describes the current price relative to an average for the chosen past period. The price can keep falling. VWAP alone does not say how much to buy, when to trade or what the return will be; those would require a separately validated rule.

DOC · 001IBKR — VWAP glossaryDocumentation DOC · 002TradingView — VWAPDocumentation DOC · 003TradingView — Anchored VWAPDocumentation DOC · 004IBKR — VWAP algorithmDocumentation
Revised: Source-first · No investment advice