Intermediate8 min read·September 24, 2026

VWAP, and Why the Timeframe Decides It

VWAP differs from every other indicator in this Academy in two ways. It has no period setting, and it starts over every day.

So the usual question — what length should I use? — doesn't apply. A different one takes its place: how many bars does one session of my chart contain? Half this lesson is about that question.

1. What it averages

A moving average looks only at closes. VWAP adds two things: it uses the typical price (high plus low plus close, divided by three) instead of the close, and it weights each bar by its own volume.

The calculation is a single division. Take the running total of (typical price × volume) since the session began, and divide it by the running total of volume over the same stretch. Price levels where a lot of trading happened pull the result toward themselves.

Building session VWAP, bar by bar

Each bar adds its typical price — (high + low + close) ÷ 3 — weighted by its own volume, to a running total that started at 00:00 UTC on 2026-08-21. A heavy bar pulls the line much further than a quiet one.

  • Price (close)
  • Session VWAP
  • Volume
48 bars in · VWAP $76,768Volume — the weight each bar carries00:00 UTC23:30 UTC

BTC/USDT · 30m · Binance · 2026-08-18 → 2026-08-22

That makes VWAP close to the average price actually paid during the session. It's why institutional desks use it to judge execution quality: fill below VWAP and you bought better than the day's average.

2. It starts over at midnight

Because it's a running total, it has to start somewhere. This app's implementation resets both totals to zero whenever the UTC date changes.

So the VWAP line isn't one continuous curve — it's a series of daily fragments. Early in a session only a few bars are in the average, so it tracks price closely; as the session fills up it gets heavier and moves less.

It resets every midnight

Five UTC sessions end to end. At 00:00 UTC both running totals go back to zero and VWAP restarts wherever price happens to be. On the price panel that reset is too small to see — five days of a 24% move dwarf it — so the lower panel plots the close’s distance from its own session VWAP instead. It returns to zero every midnight, and that sawtooth is the reset.

  • Price (close)
  • Session VWAP
08/1808/1908/2008/2108/220%Distance of the close from its own session VWAP, in % — back to zero at every reset

BTC/USDT · 30m · Binance · 2026-08-18 → 2026-08-22

3. What it tells you inside one session

On a session with real directional pressure, price stays on one side of VWAP. Pick 08/21 in the chart below: 97.9% of closes sat above VWAP, it was crossed only twice all session, and open-to-close was +7.27%.

Switch to 08/22 and you get the exact mirror — 14.6% above, −1.61%. Then 08/18 is the third case: a session that went essentially nowhere (+0.30%) while price crossed VWAP repeatedly. Same line, three completely different pictures depending on what kind of day it was.

What a session's VWAP actually tells you

2026-08-21: price closed above VWAP on 97.9% of the session's bars, crossed it 2 times, and moved 7.27% from open to close.

  • Price (close)
  • Session VWAP
  • Closed above VWAP

BTC/USDT · 30m · Binance · 2026-08-18 → 2026-08-22

4. The timeframe is most of the story

If the session resets at midnight, then the timeframe decides how many bars a session holds. On 30m bars that's 48. On 1h, 24. On 4h, six.

With only six bars, VWAP can't be much more than a weighted average of the last few candles. It sits so close to price that the close keeps crossing back and forth over it.

Why the timeframe decides whether this works

The same rule — buy when the close crosses above session VWAP — on the same asset over comparable calendar spans. The only thing changed is the size of a bar.

  • Price (close)
  • Session VWAP
4h bars6 bars per session · 30 crossovers in 200 bars · one every 6.730m bars48 bars per session · 11 crossovers in 240 bars · one every 21.8

BTC/USDT · Binance · 4h 2026-08-03 → 09-05 (200 bars) above, 30m 2026-08-18 → 08-22 (240 bars) below

Same rule, same asset, and the result differs by more than 3×. On 200 4h bars the close crosses above VWAP 30 times — once every 6.7 bars. On 240 30m bars it happens 11 times, once every 21.8.

If you put a VWAP strategy on 4h or daily bars and the results look strange, the problem is probably the timeframe rather than the strategy. When you use VWAP in the Simulator, start with 30m or 1h data.

5. In the Simulator

VWAP appears as one template and one filter. Neither has a length to tune — the only choice that matters is which timeframe you pull data at.

In the Simulator
  • VWAP Trend — enters when the close crosses above session VWAP and exits when it crosses back below.
  • VWAP trend filter — an optional block that lets another strategy buy only above VWAP and sell only below it.