VolumeReference · Indicator Library

VWAP

Volume Weighted Average Price

A volume-weighted running average that institutional traders use as a fair-value reference and dynamic intraday support/resistance.

VWAP is a volume-weighted running average of price, calculated cumulatively from the session open. Institutional traders use it as an execution benchmark; retail traders use it as a dynamic fair-value level. Above VWAP = intraday strength; below = weakness. Resets each session; not designed for multi-day trading.

VWAP is the cumulative sum of price × volume divided by the cumulative sum of volume, recalculated from each session's open. Unlike a simple moving average, VWAP weighs every bar by its volume — so high-volume bars pull the line more than thin ones.

Institutional desks use VWAP as a benchmark for execution quality and as a bias level for the day. Retail traders use it as a dynamic support/resistance line: above VWAP signals intraday strength, below signals weakness. VWAP works best on intraday timeframes (1m–1h) and resets each session — it's not designed for multi-day position trading.

How do I read VWAP?

  • Price above VWAP = the average buyer (weighted by volume) is in profit, signalling intraday bullish bias.
  • Price below VWAP = average buyer is at a loss, signalling intraday bearish bias.
  • Slope direction matters: a rising VWAP throughout the session means buyers controlled flow. A falling VWAP means sellers did.
  • VWAP often acts as dynamic intraday support and resistance: bounces off VWAP from above are common in uptrending sessions.
  • Distance from VWAP gauges 'stretch': price 1% above VWAP on a fast move is overextended for most assets and timeframes — expect mean-reversion toward the line.
  • VWAP resets at session open. The first 30–60 minutes of any session produce noisy VWAP readings since not enough volume has been weighted yet.

How is VWAP calculated?

VWAP weights each bar's price by its volume, accumulating both totals from the session open and dividing at every bar.

  1. 1.For each bar, compute the typical price: (high + low + close) / 3.
  2. 2.Multiply typical price by the bar's volume — this is the price-volume product.
  3. 3.Sum the price-volume products from the session open to the current bar.
  4. 4.Sum the volumes over the same period.
  5. 5.VWAP = sum(price × volume) / sum(volume). Reset both sums to zero at the start of each new session.

What are the default VWAP settings?

ParameterDefaultWhen to adjust
AnchorSession openVWAP resets each new trading session by default. Anchored VWAP variants reset at custom points (e.g., earnings, breakout bars) for swing-trading use cases.
SourceHLC3 (typical price)Standard formula uses (high + low + close) / 3. Some platforms allow plain close; results differ slightly.
Bands (optional)±1 / ±2 std devMany traders plot volatility bands around VWAP (similar to Bollinger) for stretch detection. Standard: ±1 and ±2 standard deviations.
TimeframeIntraday onlyVWAP is designed for intraday charts (1m–1h). On daily charts, each session's VWAP is essentially a single point — meaningless.

How do I plot VWAP in Pine Script?

//@version=5
indicator("VWAP Example", overlay=true)

src = input.source(hlc3, title="Source")

vwapValue = ta.vwap(src)

plot(vwapValue, title="VWAP", color=color.orange, linewidth=2)

Pine's ta.vwap() automatically resets at the start of each session — no manual cumulative tracking needed. The default source hlc3 (typical price) matches the textbook VWAP formula. Plot it on the price pane (overlay=true) so the line draws directly through the candles. For more advanced anchored VWAP, use ta.vwap(src, anchor) with a custom anchor condition.

Continue exploring

Related indicators

Browse all indicators

About this reference

This page is an educational reference explaining what VWAP is, how it is calculated, its default settings, and how to plot it in Pine Script. It is compiled from established trading literature and public technical documentation. Last review: .

Educational content. Not financial advice.