Skip to main content
Education
Contents
7 min read

VWAP & Anchors

Volume-weighted reference prices and normalized distance measures.

VWAP is the average transaction price weighted by volume

Volume-weighted average price gives more influence to prices where more volume traded. A price associated with 1,000 units contributes ten times as much as a price associated with 100 units. The result is therefore an average of the declared data—not a line that the market is required to respect.

Over a declared set of observations:

VWAP=ipiviivi\operatorname{VWAP} = \frac{\sum_i p_i v_i}{\sum_i v_i}

Here, pip_i is the price assigned to observation ii and viv_i is its volume. With trade data, pip_i may be the transaction price. With bars, the implementation may use a representative bar price and aggregate volume. Those are related approximations, not identical records.

VWAP tells the reader where volume-weighted trading occurred over its window. It is a reference, not a universal estimate of fair value and not a prediction that price will return to it.

The anchor defines the market memory

Session VWAP

Session VWAP begins at a declared session boundary and resets at the next one. It asks where volume has traded during this session. The session calendar, timezone, and treatment of overnight activity are part of the signal.

Rolling VWAP

Rolling VWAP keeps a fixed recent window and continuously removes old observations. It has no hard session reset, but its value can change when a high-volume observation leaves the window.

Anchored VWAP

Anchored VWAP begins at an explicit timestamp chosen to represent an event, such as a session open or a known announcement. Arizmic's shipped signal accepts that timestamp; it does not discover swings or events on its own. The calculation is objective after the anchor is declared. Selecting a visually attractive anchor after seeing the chart is not.

The three references can sit at different prices on the same bar because they remember different trading histories.

Illustrative session, rolling, and timestamp-anchored VWAP references retaining different histories.

A session anchor keeps every eligible observation since the reset. A rolling anchor forgets one old observation as each new one enters. A timestamp anchor keeps everything after one declared event. When the lines disagree, the first question is not which is correct; it is which memory matches the intended use.

A weighted example

Illustrative example. Assume three transactions:

PriceVolumePrice × volume
100101,000
101303,030
103101,030

Total volume is 50 and volume-weighted value is 5,060, so VWAP is 101.20. The simple average of the three prices is 101.33. The larger trade at 101 pulls the volume-weighted reference toward it.

This example does not imply that 101.20 is the correct next price. It explains what information the calculation summarizes.

Distance must have units

Price minus VWAP is a distance in price units. That can be useful within one instrument but is difficult to compare across prices and volatility regimes.

Common normalizations include:

  • percentage distance from VWAP;
  • distance divided by rolling volatility;
  • distance divided by volume-weighted dispersion;
  • location inside VWAP standard-deviation bands.

A z-score expresses distance in units of the chosen dispersion estimate. Early in a session, that estimate may be based on very little data. A large score can therefore reflect unstable warm-up rather than a mature extreme.

Two shipped normalizations deserve special care. Session VWAP Distance z-scores the distance series around its own rolling mean, so a z-score of zero can occur while price remains above VWAP. Session VWAP Weighted-Dispersion Z-Score divides raw distance directly by the session's cumulative volume-weighted dispersion. The first asks whether today's distance is unusual relative to recent distances; the second asks how many weighted session dispersion units price is from the anchor.

VWAP bands use rolling dispersion around a supplied VWAP to create an envelope. The extreme/block signal adds sequence memory: it records a sufficiently large distance and a later cross back through VWAP. Neither output supplies an order unless a strategy assigns it one.

Reference, distance, and event outputs differ

OutputWhat it saysWhat it does not say
VWAP levelVolume-weighted reference for the anchorPrice must revert
Raw distancePrice units above or below referenceComparable extremity across assets
Percentage distanceRelative displacementWhether volatility is unusual
Standardized distanceDisplacement relative to chosen spread estimateProbability of reversion
Band positionLocation relative to an envelopeDirection of next move
Extreme/block flagA declared threshold or eligibility conditionComplete entry and exit rule

The output chosen by the strategy must match its threshold and units. Comparing a raw distance with a z-score threshold is a type error in economic terms even if software accepts both numbers.

VWAP can play several roles

  • Execution benchmark: compare realized trades with market volume-weighted activity over a specified interval.
  • Market-state reference: describe whether price is above or below a session or event anchor.
  • Reversion input: test whether large normalized displacement contracts.
  • Continuation context: test whether price accepts above a reference after a breakout.
  • Risk or exit reference: define a live condition that moves as VWAP updates.

A live recalculated VWAP exit is not the same as a fixed target set at entry. The reference can move after the trade begins, so the exit price is not known in advance.

Data and session choices dominate interpretation

Bar-based VWAP depends on the bar price convention and can hide transaction detail. A session signal needs an instrument calendar, correct timezone, and clear treatment of breaks. Volume from different venues or feed coverage can change the reference.

Futures research must define contract and roll handling. Equity research must consider auctions and extended hours. Crypto has no natural exchange-wide session reset unless the strategy declares one.

False readings to avoid

  • Calling VWAP fair value.
  • Comparing session and rolling VWAP as if only their labels differ.
  • Choosing an anchor after seeing the result.
  • Treating a z-score as a reversion probability.
  • Ignoring early-session warm-up.
  • Using a completed session reading for an earlier fill.
  • Treating a moving VWAP exit as a fixed entry bracket.
  • Assuming bar VWAP reconstructs every transaction.

Shipped signals in this family

Try it in Arizmic

Included with Arizmic

9 prebuilt signals in this family

Use shipped VWAP signals as session, rolling, or timestamp-anchored price references, with separate distance and normalization outputs.

  • The anchor determines which trades the average remembers.
  • Raw distance, rolling-normalized distance, and direct weighted-dispersion z-score are not interchangeable.
  • A price reference is not an entry, exit, or execution benchmark until a strategy assigns that role.

Ask the AI Companion

Draft a custom anchored signal

Signal draft

Create a typed price-anchor draft with explicit memory, reset, and normalization semantics.

Draft a custom volume-weighted anchor signal for [market and bar interval]. The anchor should be [session boundary, rolling window, or explicit event supplied as an input], using [price field] and [volume field]. Emit the reference, raw distance, and [optional normalization] as separate outputs. Define reset behavior, zero-volume handling, warmup, and completed-bar timing, and compare it with the nearest shipped VWAP signal. Return a typed signal_draft for review only; do not infer unsupported swing anchors, save, run, generate arbitrary Python, or execute anything.

Ask the AI Companion

Explore VWAP and anchor uses

Research critique

Choose a shipped anchor and use its outputs without confusing reference, displacement, and event semantics.

For [session, rolling, or anchored shipped VWAP signal] on [market and horizon], explain exactly what history the anchor includes and what each distance or z-score output means. Suggest one location use, one acceptance or rejection use, and one exit-context use. Identify which output represents an actual touch, name a nearby shipped comparator, and flag reset and normalization mistakes. Do not turn the reference into an automatic trade or execute anything.

Personal notebook

Extend it in Marimo

Prepared Data

Open typed price, volume, session identifiers, and selected VWAP outputs in a personal Marimo notebook.

Show what each anchor remembers and why its distance outputs disagree.

Bring in
price and volume, session identifiers or anchor timestamp, two selected VWAP references, raw and normalized distance outputs
Build
price with multiple VWAP anchors, anchor-memory and reset timeline, raw-distance versus z-score comparison

How to read it: Inspect disagreement periods and z-score-zero observations with nonzero raw distance. Those cases reveal the exact question each normalization answers.

Value origin: Only retained signal columns are engine-reported; alternate anchors or normalizations computed in Marimo are notebook-derived.

With Companion: Request a reviewed cell draft for the anchor comparison, inspect the selected timestamps and diff, then apply it explicitly.

Further reading