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.
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:
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.
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:
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.
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.
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.
| Market | Touches | Reversal rate | 95% interval |
|---|---|---|---|
| NQ · Nasdaq 100 | 2,563 | 50.99% | 49.06 – 52.93 |
| ES · S&P 500 | 2,592 | 50.81% | 48.89 – 52.73 |
| YM · Dow | 2,574 | 48.76% | 46.83 – 50.69 |
| GC · Gold | 2,300 | 50.17% | 48.13 – 52.22 |
| CL · Crude oil | 2,399 | 50.77% | 48.77 – 52.77 |
| SI · Silver | 2,251 | 50.29% | 48.22 – 52.35 |
| QQQ · Nasdaq ETF | 3,488 | 49.86% | 48.20 – 51.52 |
| TQQQ · 3× Nasdaq ETF | 3,374 | 50.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.
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.
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.
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.
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.
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.
| Reference used to decide “above” or “below” | NQ | ES | QQQ |
|---|---|---|---|
| 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.
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.
| Anchor | Bounce rate | Reaches VWAP first | Directional bias |
|---|---|---|---|
| Session (09:30 reset) | 50.69% | 48.04% | +0.0096 |
| Overnight (18:00 reset) | 50.03% | 48.52% | +0.0041 |
| Previous-day VWAP | 51.23% | 51.18% | −0.00005 |
| Weekly VWAP | 50.50% | 49.90% | +0.0039 |
| Monthly VWAP | 52.37% | 49.56% | +0.0006 |
| Anchored from yesterday’s high | 51.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.
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 it | What happened |
|---|---|
| 1 · Price does not revert to VWAP | right — it reaches VWAP less often than the mirror distance |
| 2 · VWAP is indistinguishable from an unweighted average | right — 14 of 14 measurements show no difference |
| 3 · The “returns to VWAP” statistic is true but unprofitable | right — 70% win rate, 0.81 profit factor |
| 4 · Directional bias is real but belongs to momentum | right — a shuffled-volume VWAP matches it |
| 5 · VWAP touches are quieter than a comparable line | wrong — bad control, finding retracted |
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 studiesThe 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