Every sweep of a previous-day, Asia, London or prior-week high or low in seven futures markets, 2019 to mid-2026 — 23,718 of them — against a fake level matched to each one and run through the same code. Built on 2019–2024, then checked on 2025–2026. In all, 37,162 sweeps across the 14 level types tested; the four most traded are shown here.
A liquidity sweep is when price takes out a key level and then closes back inside it. The idea is that stop orders rest just beyond obvious highs and lows; price runs them, the stops get filled, and with nobody left to push it further, price turns around. We tested it on the levels most traders mark: the previous day’s high and low, the Asia and London session highs and lows, and the prior week’s.
| Level · seven markets, 2019–2026 | Sweeps | First touches |
|---|---|---|
| Previous day high / low | 6,009 | 13,587 |
| Asia session high / low | 8,546 | 19,087 |
| London session high / low | 8,120 | 17,768 |
| Prior week high / low | 1,043 | 2,460 |
| All four | 23,718 | 52,902 |
Markets: NQ, ES, YM, GC, SI, CL and RTY. Sweeps found on five-minute candles; outcomes measured on one-minute bars.
The fake level. To know whether a level matters, you need something to compare it with. So for every real level we built a fake one — a price that isn’t a key level, but matches it in every other way:
We ran the exact same code on both. If real levels matter, they have to beat the fakes.
The bar. Every test was written down before we looked at the data. To count, a result had to:
One disclosure: some of the 2025–2026 data had been looked at by earlier studies of these levels, so that check is a second look rather than a first one.
A bug that finds nothing looks exactly like a pattern that predicts nothing, so the measuring equipment was checked before any answer was trusted. Every level value matched an independent rebuild — 110,504 of them — and every touch, sweep and break matched a minute-by-minute brute-force search.
The shuffled-price world. We shuffled each day’s one-minute price moves into a random order — the same raw ingredients, with no real buying and selling left in them — and ran everything again. A few thin cells, mostly weekly and monthly levels, still showed differences of 2 points or more there. Each cell’s shuffled-world difference is subtracted before it can count.
ATR — how far the market typically moves in one five-minute candle. Using it instead of dollars puts the Nasdaq and gold on the same scale.
A point — one percentage point. If real levels reverse 51% of the time and fake ones 50%, the real level is one point ahead.
R — the amount risked on a trade. “−0.20R per trade” means the average trade lost a fifth of what it risked.
In sample / out of sample — the study was built on 2019–2024. 2025–2026 was used only to check the result.
No difference / too few to tell — “no difference” means there was enough data to rule out an edge of about one to two points. “Too few to tell” means there were not enough events to say either way.
Costs — commission plus one tick of slippage on the entry and on every exit. A tick is the smallest step a market’s price moves in.
From the close of the sweep candle we set a target one ATR away in the reversal direction and a stop one ATR back through the level. Does price reach the target before the stop? Both are checked only from the next minute on, and a tie counts as a loss. Fifty per cent is a coin flip before costs.
| Reverses one ATR before going one ATR back through | After a real sweep | After a fake sweep | Difference |
|---|---|---|---|
| All four level groups | 49.9% | 50.0% | −0.1 |
| Previous day high / low | 50.4% | 49.6% | +0.8 |
| Asia session high / low | 50.4% | 50.5% | −0.1 |
| London session high / low | 49.3% | 50.1% | −0.8 |
| Prior week high / low | 49.0% | 48.8% | +0.2 |
A coin flip. Across all 23,718 sweeps the difference is −0.1 points, with a 95% range of −0.9 to +0.9 — enough data to have spotted an edge under one point. A measured zero, not a shortage of data.
In case one market was hiding an effect that the pooled number averages away, every market was run on its own, for every level group and both sweep definitions — 97 comparisons. None survived the correction for the number of tests, and none was ahead in both windows. Below is every high and low pooled, on the five-minute sweep.
| Market | Real · in sample | Fake · in sample | Difference · in sample | Difference · out of sample |
|---|---|---|---|---|
| All seven | 49.7% | 49.9% | −0.2 | +0.4 |
| NQ · Nasdaq 100 | 49.9% | 50.5% | −0.6 | +2.4 |
| ES · S&P 500 | 48.6% | 49.8% | −1.2 | +1.2 |
| YM · Dow | 48.4% | 50.0% | −1.7 | −1.9 |
| RTY · Russell 2000 | 50.2% | 49.5% | +0.7 | +0.7 |
| GC · Gold | 50.9% | 50.0% | +0.9 | +1.9 |
| SI · Silver | 48.4% | 49.7% | −1.3 | −1.1 |
| CL · Crude oil | 51.3% | 49.9% | +1.4 | −1.0 |
Every market sits within about two points of its fake level, and the sign flips between the two windows in half of them. 19,224 sweeps in sample and 4,730 out of sample across every high and low level type.
Most traders say a sweep needs confirmation before you take it. So we tested every one that gets taught, trading each the same way:
Then we ran the exact same trades at the fake levels.
| Trading the reversal · target 1R, after costs | Real · wins | Real · per trade | Fake · wins | Fake · per trade |
|---|---|---|---|---|
| No confirmation at all | 45.4% | −0.23R | 45.2% | −0.25R |
| With the trend | 43.6% | −0.26R | 44.6% | −0.26R |
| Break of structure | 45.2% | −0.14R | 47.2% | −0.11R |
| Fair value gap | 45.5% | −0.14R | 49.1% | −0.07R |
| Inverse fair value gap | 44.9% | −0.15R | 48.2% | −0.09R |
| Inside a killzone | 45.1% | −0.23R | 44.3% | −0.26R |
| On a volume surge | 44.1% | −0.25R | 44.7% | −0.25R |
| Clean, shallow sweep | 45.2% | −0.26R | 45.4% | −0.27R |
| Never tested before | 46.3% | −0.21R | 45.5% | −0.24R |
| Two levels stacked | 46.9% | −0.20R | 46.5% | −0.20R |
| Premium / discount | 45.1% | −0.25R | 44.8% | −0.27R |
Every confirmation loses money on a real level.
The most specific version taught says it isn’t any high or low that matters but a pool — equal highs or equal lows, where stops visibly cluster — swept with a decisive candle, in line with the daily bias, with a clear target on the other side. We built exactly that and tested it the same way: 8,269 real pool sweeps across the seven markets, against three separate sets of matched fake pools and a shuffled-price world.
| Equal-high / equal-low pool sweeps · 2019–2024 | Result |
|---|---|
| Reverses after a real pool sweep vs a fake pool sweep | 50.6% vs 49.7% |
| A more decisive sweep candle · one ATR body or more | −0.8 pts · worse, not better |
| Versions of the model that made money after costs | 0 / 54 |
| Best version on real levels · per trade | −0.20R |
| Best version in the shuffled-price world · per trade | −0.005R |
Each filter makes the losing trade slightly less of a loser; none makes it a winner. A world with no real buying and selling in it produced a better-looking setup than the real one.
The last explanation left is that you have to read the tape: a sweep that gets absorbed — heavy volume that fails to move price — is the one that reverses. We measured every trade and the resting book at 69,602 touches across five markets, from one second to thirty seconds after the sweep.
It sorts sweeps in the wrong direction. The more a sweep is absorbed, the less it reverses — the most-absorbed fifth reverses 2.4 to 2.9 points less often than the least. No slice of any order-flow measure reaches 55%, the rate a one-to-one reversal needs; the best reaches 50.1%. The same sorting shows up at fake levels, and the size resting on the far side of the book at the moment of the sweep predicts nothing at all.
One measurement error was caught and fixed before any result was read: timing the outcome from the level rather than from the price at the end of the window made absorption look like it worked by 18 points. It was measuring its own definition.
| Variation | What happened |
|---|---|
| Wait for price to reclaim the level, then fade | real, and tiny — about 2 points over a fake level pooled (+0.02 to +0.05R before costs). Market by market, 17 of 352 looked good; chance alone predicts 17.6 |
| Wait longer for the reversal | 97% of touches break the level and 96% of those come back — a failed break is the norm, not a signal. The longer the break lasts, the less it reverses: 41.7% within 15 minutes, 36.0% after four hours |
| Enter on a one-minute break of structure | it follows 99.6% of sweeps, so it selects nothing — −0.32R per trade; the tighter stop it allows makes it worse, −0.47R |
| Enter on the retest of the swept level | −0.83R per trade, 24% winners — the level does not hold |
Of 298 versions of the last two entries, none made money after costs and none survived the correction for the number of tests. Waiting removes the loss; it never creates an edge.
If sweeps don’t reverse, do these levels mean anything at all? To find out, we stopped waiting for a sweep and looked at the first time price reaches each level. From there, does it break through or bounce back? We measured both the same distance — one ATR — and asked which came first, at real levels and at fake ones.
If the levels were just lines on a chart, real and fake would come out the same. They don’t — but not in the direction that gets taught.
| Breaks one ATR through before bouncing one ATR | Real level | Fake level | Difference |
|---|---|---|---|
| Previous day high / low | 56.0% | 50.1% | +5.9 |
| Asia session high / low | 53.3% | 49.0% | +4.3 |
| London session high / low | 55.4% | 51.7% | +3.7 |
| Prior week high / low | 61.9% | 50.3% | +11.6 |
Real levels get run through more, not less. 52,902 first touches, seven markets, 2019–2026. The difference holds in all seven markets, in every year, with and against the trend, at every approach speed, and keeps its sign out of sample. It is strongest at the most obvious extremes. The prior day’s and today’s 9:30 opens behave like any other price.
Trading volume in the first second at the level, compared with the 30 seconds before.
| How much more often a real level breaks than a fake one · points | In sample · 2019–24 | Out of sample · 2025–26 |
|---|---|---|
| Previous day low | +6.3 | +5.8 |
| Previous day high | +5.9 | +4.4 |
| Asia high / low | +4.1 / +5.1 | +2.5 / +3.7 |
| London high / low | +4.5 / +3.8 | +2.3 / +1.2 |
| Prior week high / low | +11.5 / +12.1 | +13.3 / +7.0 |
| Prior day’s open · today’s open | −1.1 / +1.0 | −1.1 / −1.2 |
Every high and low keeps its sign out of sample. The out-of-sample window holds about a quarter of the data, so it can only confirm an edge of about five points against about two and a half in sample; the previous-day low is the one level that clears the full bar in both. The two 9:30 opens show nothing either way. Real levels are also broken more than stale highs and lows from a week earlier: it is the current extremes that matter, not any old high.
| After price reaches the level | Real level | Fake level |
|---|---|---|
| Volume, as a multiple of the 30 seconds before | ||
| The first second | 8.4× | 5.5× |
| 1 to 5 seconds after | 1.4× | 1.1× |
| 5 to 30 seconds after | 1.3× | 1.1× |
| Share of volume trading in the break direction | ||
| The 30 seconds before | 62.2% | 62.1% |
| The first second | 70.5% | 67.4% |
| 1 to 5 seconds after | 50.2% | 49.9% |
29,192 touches with every trade print, five markets, 2019–2024.
The 62% before the touch is not a signal. It looks like the market leaning into the level early — but a fake level reads 62.1% in the same window. To reach a price above you, price has to be going up; that number describes approaching any price, not this one. Only the first second separates real from fake, and by five seconds it is over.
A common idea is that the longer a level survives untouched, the more orders pile up behind it. The data says the opposite. The run-through difference is largest the same day and fades away as the level ages; a level untouched for 20 or more trading days behaves like a random line.
| Level untouched for | Run-through vs fake · points | First-second volume |
|---|---|---|
| Touched the same day | +6.4 | 11.2× |
| 1 day | +5.1 | 9.0× |
| 2 to 4 days | +4.8 | 7.5× |
| 5 to 9 days | +2.6 | 7.0× |
| 10 to 19 days | +3.7 | 6.4× |
| 20 days or more | −0.2 | 5.3× |
In sample, all level types pooled. The first-second burst at real levels shrinks steadily with age while fake levels barely move, so the gap between them collapses. Most levels are hit the same session they form.
The effect was real, but trading it the simple way lost money. So I looked deeper into where the effect is strongest, how to capture it and how to manage the trade. Then I put the result through the same test as everything on this page: built on 2019–2024 and run once on data it had never seen, with costs and slippage included.
That became T-812. The rules stay private. The results don’t:
| T-812 | Trades | Win rate | Profit factor | Sharpe |
|---|---|---|---|---|
| In sample · 2019–2024 | 1,294 | 59.0% | 1.27 | 1.06 |
| Out of sample · 2025–2026 | 313 | 60.4% | 1.45 | 1.84 |
Hypothetical / backtested on tick data, $150,000 account risking 1% per trade. Sharpe is annualized from monthly returns, net of the risk-free rate. Past performance is not indicative of future results.
See T-812’s full track record →Price reverses after a sweep no more often than after a sweep of a matched fake level, in any market, at any level, with any confirmation we tested. At the first touch these levels get broken more often than empty price — the stops really are sitting there, and fading the level is trading the wrong side of them.
| What we predicted | What happened |
|---|---|
| 1 · Price is drawn to these levels no more than to a fake level | right — 0 of 12 |
| 2 · Price reacts at the first touch no differently than at a fake level | wrong — real levels get broken more; the previous-day low passes the full bar in both windows |
| 3 · Price reverses after a sweep no more than after a fake sweep | right — 0 of 12 |
| 4 · A close beyond the level follows through no more than at a fake level | right — 0 of 12 |
| 5 · Price does not pause at these levels | right — 0 of 12 |
| 6 · Previous-day and weekly levels show a real reaction (in the concept’s favour) | right — but as breaks, not bounces |
| 7 · Today’s 9:30 open works as a pivot (in the concept’s favour) | wrong — it behaves like any other price |
The same brutal test — matched controls, real costs, one honest out-of-sample shot — run on what we sell: edges that survive it, on your TradingView charts.
View our strategies