Does VWAP actually work?

21,541 touches·Eight instruments, four asset classes·Oct 2026

VWAP is the most watched line in day trading, and almost everything taught about it reduces to three claims. We tested all three on eight instruments across four asset classes, on six different VWAP anchors, using every touch from 2019 to 2026. Two are false. The third is true, and it still will not make you money.

  • 50.2%of the time price reverses after touching VWAP. On all eight instruments the confidence interval contains 50% — a coin flip, on gold and oil as much as the Nasdaq.
  • 48.4%is how often price reaches VWAP before travelling the same distance the opposite way. A magnet would win that test. It loses it, on seven of eight markets.
  • 14 / 14measurements show no difference when the volume data is randomly shuffled. The “volume-weighted” part is undetectable in how price behaves.
  • 0.28×The one belief that is true is worth about a quarter of what it costs to trade — and a fake VWAP gives the same signal.
What VWAP is, and the three claims we tested

VWAP is the volume-weighted average price of the session so far: every trade, weighted by its size, averaged from the opening bell. It was invented as an execution benchmark — a fund filling a large order over the day is graded on whether it beat the day’s average price. That use is real and nothing here disputes it. What we tested is the retail reinterpretation of that benchmark as a predictive level:

  • It acts as support and resistance — price approaching VWAP should bounce rather than pass through
  • Price returns to it — VWAP is “fair value”, and a move too far away gets pulled back
  • It sets directional bias — above is bullish, below is bearish, used as a filter on which side to take

Markets: NQ, ES, YM (index futures), GC, SI (metals), CL (energy), QQQ and TQQQ (cash ETFs). 2019–2024 on futures, 2018–2026 on the ETFs, contract roll days excluded. Anchors: session, overnight, previous-day, weekly, monthly, and anchored from yesterday’s high.

What each result is compared against

A rate on its own means nothing. “Price bounces off VWAP 51% of the time” is only interesting next to what a line that is not VWAP would have done. Every measurement here runs against controls:

  • An unweighted average of the same bars — identical except that it ignores volume entirely
  • A volume-shuffled VWAP — same bars, same price path, volume column randomly permuted. The line stays a weighted average of the same prices; only the real volume information is destroyed
  • A lagged VWAP — the real line as it stood thirty minutes earlier: same construction, deliberately stale
  • The mirror distance — for the “returns to VWAP” test, simply the same distance in the opposite direction, which matches session, time of day, volatility and starting price automatically

One early version of this study used a bad control, and two findings were retracted because of it. Comparing VWAP to a line a quarter-ATR away seemed fair — same slope, same shape, same movement. It is not. VWAP sits at the centre of the day’s trading; a line a quarter-ATR away sits in the tail, so it is only reached during a real move and its touches carry more volume by construction.

The test a control has to pass is how far it sits from the session’s centre and how often it is touched. The unweighted average: 0.000 ATR from centre, touched 1.75 times a session. The shuffled VWAP: 0.005 and 1.76. VWAP itself: 0.026 and 1.66. The quarter-ATR line: 0.24 ATR away and touched half as often. Everything on this page is measured against the matched set only.

Belief 1 · Support and resistance

Price bounces off VWAP 50.2% of the time

A touch is a bar that trades through the line; the question is whether price is back on the side it came from fifteen minutes later. Fifty percent means nothing happened. Across eight instruments the mean is 50.22%, the range is 48.76–50.99%, and all eight confidence intervals contain 50%. Gold, oil and silver answer the same as the Nasdaq, which rules out the obvious objection that this is an equity-index artefact.

NQ · index futures50.99%
GC · gold50.17%
CL · crude oil50.77%
QQQ · cash ETF49.86%

Four of the eight. It holds at every horizon from five minutes to an hour, every year from 2019 to 2024, and all six anchors.

All eight markets, every horizon, every year
MarketTouchesReversal rate95% interval
NQ · Nasdaq 1002,56350.99%49.06 – 52.93
ES · S&P 5002,59250.81%48.89 – 52.73
YM · Dow2,57448.76%46.83 – 50.69
GC · Gold2,30050.17%48.13 – 52.22
CL · Crude oil2,39950.77%48.77 – 52.77
SI · Silver2,25150.29%48.22 – 52.35
QQQ · Nasdaq ETF3,48849.86%48.20 – 51.52
TQQQ · 3× Nasdaq ETF3,37450.12%48.43 – 51.80

Horizons. Measured at five, fifteen, thirty and sixty minutes, and against both the live line and the line frozen at the touch — 32 combinations. Thirty of the 32 intervals contain 50%. The two that do not are ES at the five-minute horizon only; they vanish by fifteen minutes and appear on no other market, which is what chance produces across 32 tests.

Years. Year by year the rate wanders between 44% and 56% with no year carrying it, on every instrument — noise around a null rather than a decaying edge.

Is anyone actually defending the level? (the tape)

Bars show how much traded. Only ticks show who was lifting. The strongest surviving form of the institutional claim is that passive size rests at VWAP and absorbs — so we took every individual trade around 2,608 touches on NQ and ES, with the bid and ask carried on each one, and classified it as buyer- or seller-initiated. On NQ the spread is one tick, so 100% of volume classifies.

Oriented so that positive means aggression opposing the approach — buyers stepping in as price falls to the line — the score is −0.159 on NQ and −0.135 on ES. Negative. At the moment price reaches VWAP, order flow is pushing through it, not absorbing into it. And the figure is the same at a randomly placed line.

Against the matched controls, every tick measurement — defence at the level, volume share, trade size, trade count — has a confidence interval containing zero. That is the third independent confirmation that VWAP behaves like an average that ignores volume: once in profit-and-loss, once in price behaviour, once in the tape itself.

Belief 2 · Fair value

Price reaches VWAP less often than the opposite direction

If VWAP pulls price toward it, there is a clean way to show that. When price sits a given distance above VWAP, compare two targets: VWAP below, and a mirror level the same distance above. Both are equally far away, on the same chart at the same moment — so session, time of day, volatility and starting price are matched automatically. Only the direction differs. A magnet has to win that test.

Reaches VWAP first48.4%
Reaches the opposite level first51.6%

Averaged over both directions to cancel market drift. Seven of eight instruments come in below 50%, and all sixteen cells across four displacement sizes do. Price is slightly more likely to keep going than to come back.

Why the belief feels so true — the line chases price

There is a real reason traders see this every day, and it is worth understanding rather than dismissing. VWAP is an average of where price has already been, so the line chases price. When price breaks away and stays away, VWAP falls toward it. The trade “reaches VWAP” without price recovering at all.

Score the identical events against the live, moving line and price appears to come back 55–62% of the time. Freeze the line at the level it actually was — which is what a real limit order is — and it is 47.8%. The entire appearance of magnetism is the target walking to meet price.

The same effect sits inside a popular strategy: buy when price is two ATR below VWAP, target VWAP. It does win about 70% of the time. It still loses money, because the average loss is 2.1× the average win — a profit factor of 0.81 over 773 trades. And a fifth of that hit rate is the target drifting down, not price rising.

Belief 3 · Directional bias

This one is true — and it is not VWAP

Of the three claims, this is the one that survives. An hour after price is above VWAP it is higher 55.2% of the time; below VWAP, 53.4%. The gap is statistically real on five of the eight instruments — including gold and silver, so it is not even an equity phenomenon.

Then we redefined “side” using the controls. A VWAP built on randomly shuffled volume gives the same signal — larger, on two of three markets. An unweighted average matches it too. Real VWAP beats its own shuffled version on only five of eight instruments, which is a coin flip.

The signal is simply “is price above the average price of the day”. It is intraday momentum, and VWAP is one of many equivalent ways to read it. And the size settles whether it matters: the effect is 0.28× the cost of trading it on NQ, 0.07× on ES — about a quarter of what you need just to cover the spread and commission.

The numbers: real VWAP against a fake one
Reference used to decide “above” or “below”NQESQQQ
Real VWAP+0.01306+0.00908+0.01230
An unweighted average (ignores volume)+0.01321+0.01050+0.01119
A VWAP built on randomly shuffled volume+0.01334+0.01182+0.01043

Forward 60-minute return, above minus below, in ATR units. Sampled at fixed clock times so the windows never overlap, with intervals from resampling whole sessions so intraday correlation cannot manufacture significance.

The session open gives about half the effect, so averaging genuinely helps — volume-weighting the average does not. And when side-of-VWAP was used as a filter on a neutral strategy, it made the strategy worse: the effect is real but far below the cost of acting on it, and filtering also shrinks the sample.

Every version of the line

“You tested the wrong VWAP”

Session VWAP is not the only one people watch, so all three beliefs were run again on every anchor in common use — overnight, previous-day, weekly, monthly, and anchored from yesterday’s high — across NQ, ES, GC and CL. Bounce fails at every one: 23 of 24 anchor-by-market cells have an interval containing 50%. None is a magnet.

All six anchors, all three beliefs
AnchorBounce rateReaches VWAP firstDirectional bias
Session (09:30 reset)50.69%48.04%+0.0096
Overnight (18:00 reset)50.03%48.52%+0.0041
Previous-day VWAP51.23%51.18%−0.00005
Weekly VWAP50.50%49.90%+0.0039
Monthly VWAP52.37%49.56%+0.0006
Anchored from yesterday’s high51.14%49.45%+0.0038

One cell leaned the other way and is worth reporting honestly. Previous-day VWAP averaged 51.18% on the magnet test, and it mattered, because a previous-day level is static — so the moving-target effect that explains the session anchor cannot operate there. That made it the cleanest magnet test available. Run per direction with proper intervals: seven of eight arms contain 50%, and the one exception is contradicted by its own opposite arm.

The bias column is the most informative. The effect is biggest for today’s VWAP and collapses to zero for yesterday’s — exactly what intraday momentum should look like, and confirmation that it is about the current session rather than any longer-horizon notion of value.

Verdict

VWAP marks where price has been, not where it is going

Price does not bounce off it and is not pulled back to it. Being above it is mildly bullish — and so is being above any running average of the day, including one built from randomly scrambled volume, and the effect is a quarter of what it costs to collect. One fact explains all of it: VWAP tracks where the session has actually been trading, so price is near it constantly and reaching it is an ordinary event rather than a meaningful one.

What we predicted before running itWhat happened
1 · Price does not revert to VWAPright — it reaches VWAP less often than the mirror distance
2 · VWAP is indistinguishable from an unweighted averageright — 14 of 14 measurements show no difference
3 · The “returns to VWAP” statistic is true but unprofitableright — 70% win rate, 0.81 profit factor
4 · Directional bias is real but belongs to momentumright — a shuffled-volume VWAP matches it
5 · VWAP touches are quieter than a comparable linewrong — bad control, finding retracted
This is a powered result, not a failure to look. 21,541 touches across eight instruments and four asset classes, six anchors, every year from 2019 to 2026, plus 2,608 touches examined trade-by-trade on the tape. The line itself was verified against a true tick-by-tick VWAP and agrees to within half a tick on NQ. A support level that genuinely worked — say 55% against a 50% null — would have been caught many times over.
What VWAP is good for, and what we did not test

Institutions really do use VWAP — they are graded against it. A fund filling four hundred thousand shares over a session is judged on whether its average fill beat the day’s volume-weighted average price. That is VWAP doing the exact job it was built for, and it is why the line sits on every professional screen.

Being measured against a price is not the same as defending it. Nothing in the tape suggests anyone is leaning on the level, and the prints there are no different from the prints at a plain running average. The leap from “institutions benchmark to this number” to “therefore price respects this number” is the whole error.

Scope, stated plainly. This is index futures, metals, energy and two cash ETFs, in the 09:30–16:00 ET session. Single-name stocks are not tested — that is where VWAP execution algorithms genuinely dominate, and it is the one place the institutional story could still have teeth. We also hold no tick data for equities, so the order-flow test is futures only.

A separate study tests the most famous academic claim about VWAP — a paper reporting 671% and a 2.1 Sharpe on QQQ. We reproduced it exactly, then charged the one cost it left out: the VWAP “Holy Grail” paper →

← Back to all studies

Now see what actually works.

The same brutal test — matched controls, real costs, one honest out-of-sample shot — run on what we sell: edges that survive it.

View our strategies