← Alpha
Alpha Research · · 12 min read

Do markets hunt the stops beyond yesterday's high and low?

Prior-day highs and lows on Binance and OKX perpetuals, each set against a level built the same way that no chart draws. One question: when price reaches the obvious level, does it snap back more often than at the level nobody watches?

Introduction

Trading forums, indicator libraries and paid courses repeat a claim often enough that most traders take it as given: stop orders pile up just beyond obvious levels such as yesterday's high or low, larger players push price through to fill against them, after which price reverses. Traders act on it in two ways, placing their own stops some distance past the obvious level and buying the reversal after a "liquidity sweep".

What traders expect: a sweep
The alternative: a breakout
Fig. 1: Simulated price path for illustration; not market data. Hourly candles over two UTC days: on the left price pokes just above yesterday's high and falls back, the sweep traders describe, while on the right it crosses the same kind of line and keeps going, and hovering or tapping a candle shows its prices.

It is worth testing because it decides where a great many stops sit and which side of a breakout a trader takes. Carol Osler's studies of currency order books at the Federal Reserve Bank of New York found stop-loss orders clustered just beyond round numbers, with exchange-rate moves accelerating once those stops fired, so on that evidence clustered stops predict continuation.

Fair tests are rare because a bounce at a level is usually counted without asking whether price would have bounced just as often at a level of the same kind that nobody looks at. How often price turns at a recent extreme depends on volatility, distance and timing as much as on who is watching, which leaves a raw reversal rate silent about stops.

This study holds construction, distance, volatility scaling, contracts and dates fixed while changing one thing: whether a chart draws the level.

Reproducibility

The universe rule, the level and control definitions, the tick-level treatment of ambiguous minutes, the strata, the bootstrap and the method gates, with the hashes of the locked plans.

Read the reproducibility →

What we tested

Visible level: the prior UTC day's high and low on a Binance USDT-margined perpetual. Binance and TradingView both start daily candles at 00:00 UTC, so that level sits on every default chart.

Control: the same object on a shifted clock, the high and low of the 24-hour window ending at 10:00 or 13:00 UTC, active for the next 24 hours. No exchange, charting default or populous time zone uses those hours as a day boundary, which makes both levels 24-hour range extremes on the same volatility scale, contracts and days while only one of them is drawn.

Fig. 2: Simulated price path for illustration; not market data. The shaded 24 hours ending at 10:00 UTC set their own high on the afternoon of day 1. That level is built exactly like yesterday's high but no default chart draws it, and the study compares how price behaves when it reaches each kind of line.

Contracts: the top 50 Binance perpetuals by trailing 30-day dollar volume, ranked each month from the archive's full listing history so that contracts which later died are included at the dates they traded, although fewer than 50 qualify before November 2020. In all the sample covers February 2020 to September 2026 on 1-minute bars, 3,751 contract-months over 308 contracts.

Outcome: at the first touch of each level, a bracket of 0.1 daily ATR either side records whether price comes back 0.1 ATR on the original side before it goes 0.1 ATR through. Under a random walk with no level effect that probability sits near one half wherever the level is.

Fig. 3: Simulated price path for illustration; not market data. At the first touch a band of 0.1 daily ATR is drawn either side of the level and whichever edge price reaches first decides the outcome, so this touch, which reaches the lower edge first, counts as a reversal. The band width is a tenth of day 1's range, standing in for the daily ATR.

Comparison: the difference in reversal probability, visible minus control, after reweighting the control to the visible arm's mix of side, era, liquidity, starting distance and approach speed. A negative number means the visible level breaks more often than its control, whereas the stop-hunt story predicts a positive one.

Sometimes a 1-minute bar cannot order a touch and a barrier hit inside the same minute. For 11% to 15% of touches the order is ambiguous, so a registered random sample of about 400 such events per arm was resolved from the exchange's individual trades and those rates carry into both the estimate and its interval.

What the registered test found

Comparing visible levels with the pooled shifted-clock windows gives a difference of −2.0 percentage points, with a 95% interval from −3.7 to −0.5 and p = 0.009, on 37,355 resolved visible touches.

That number sits on the line drawn in advance. With a registered materiality threshold of 2 points and an estimate of 1.986, the registered ruling, "real but immaterial", rests on a margin of 0.00014 while the interval reaches nearly twice the threshold.

Adding the sampling error of the tick-resolved minutes to the week-clustered bootstrap widens the interval to −4.0 to −0.3, with 53% of draws beyond −2 points, which settles the direction while leaving the size open.

The registered control also mixes in visible levels. A window ending at 10:00 UTC contains the first ten hours of the current UTC day, so whenever its extreme falls in those hours the level is also today's running high or low, which a daily candle draws, and 58% of the registered control levels are of this kind.

A clean control keeps only levels whose extreme was set on the previous UTC day. We added it in a second plan, locked by hash before it ran, together with an estimator that leaves out the clock-hour strata because they separated the two arms almost completely and discarded half the sample.

The clean control, and a second exchange

Against the clean control the visible level reverses 5.1 points less often on Binance, 0.468 against 0.519, with a 95% interval from −6.7 to −3.6 on 35,707 visible touches. On OKX's USDT swaps the same design, run on the same underlyings from October 2021 to September 2026 and computed only after its plan was locked, gives −4.4 points with an interval of −6.2 to −2.7 on 22,717 touches.

Fig. 4: Visible prior-day high or low minus its control, in percentage points of reversal probability. The upper two rows are the registered test with its registered interval and with tick-sample error included, the lower two use the clean control, and every interval lies below zero. Dashed lines mark the registered materiality threshold of 2 points. Hover or tap a row for its interval and sample.

Both venues pass the same method gates. On a shuffle that permutes 1-minute bars within each calendar month, destroying any memory of levels, the clean-control estimator returns −0.1 points on Binance and −0.05 on OKX across 20 seeds.

Overwriting every bar from the touch onward with noise leaves the level, its volatility scale, its eligibility and its strata unchanged for all 200 sampled events on each venue. Dropping the time strata, adding level age or using no strata at all gives −3.1 to −5.1 points on Binance and −3.4 to −4.4 on OKX.

−2.0
Registered estimate, points of reversal probability
0.00014
Margin by which the registered ruling stayed immaterial
−5.1
Binance, against levels nobody draws
−4.4
OKX, the same design on a second exchange
0 / 28
Reported estimates showing more reversal, splits included
−10.4
bp per trade, sweep fade after costs

The 28 estimates are every one reported for the prior-day level, from the registered test and its variants through both clean-control tests, the alternative estimators, each control clock on its own and the exploratory splits below. In 24 of them the interval lies entirely below zero while the remaining 4 include zero, and the largest point estimate is +0.1 points.

What the comparison level has to be

Splitting the clean control by touch day came after the second plan's results were in, which makes it exploratory. Touched on its activation day, a clean level sits inside the previous UTC day's range, so reaching it breaks nothing recent; touched the following day, reaching it is itself a break beyond the previous day's extreme.

Fig. 5: Exploratory. Prior-day high or low minus three kinds of comparison level. Against undrawn levels inside the previous day's range the gap is about 5 points on both exchanges, whereas every interval includes zero against undrawn levels whose touch also breaks a recent range extreme or against today's running extreme.

Against undrawn levels inside the range the gap is −4.9 on Binance and −5.2 on OKX. It shrinks to −0.4 and −1.5 points against undrawn levels whose touch also breaks a recent extreme (both intervals include zero) and sits at +0.1 on Binance and −0.9 on OKX against today's running extreme.

Measured this way, the excess belongs to range extremes as a class. Breaking the prior day's high or low continues more often than touching a level inside the range and about as often as breaking any other recent extreme, drawn or not, so the data cannot separate visibility from being a range extreme while giving no support anywhere to a reversal at the visible level.

How far beyond the level

A registered offset profile repeats the comparison at levels a fixed distance beyond the prior-day extreme, with 1-minute outcomes and the registered control.

Fig. 6: Visible minus registered control at the level and beyond it, 1-minute outcomes, with the 95% band. The continuation excess sits within 0.1 ATR of the level and is gone by 0.2 ATR. Offsets past 0.5 ATR are left out because fewer than 2,000 visible touches enter the estimate there.

At the level the difference is −1.9 points, at 0.05 ATR beyond it −2.7 and at 0.1 ATR −2.0, after which it cannot be told apart from zero from 0.2 ATR outward. Whatever happens at a prior-day extreme happens within the first tenth of a daily range past it.

Stops placed beyond the level tell the same story. Hit-then-recovered, meaning a stop at that distance is taken out and price then trades half an ATR back on the other side, happens on 42.4% of visible touches and 41.6% of control touches at the level, falling to 7.3% and 7.2% at 0.5 ATR, so being stopped out just before a recovery is a feature of any 24-hour extreme.

Trading the sweep and the breakout

Two fixed rules ran on every visible touch, both at the defaults trading courses teach:

  • Sweep fade: buy when price pierces the level by no more than 0.3 ATR and closes back inside within an hour, stop just below the sweep, target at twice the risk.
  • Breakout: trade in the direction of a close 0.1 ATR through the level.

Each rule also went through a walk-forward search over nine variants. Every fill pays the 5 bp taker fee and half the spread measured from the exchange's own trades plus half again as slippage, with funding charged at its true settlement times.

Fig. 7: Per-trade economics on visible levels in basis points, where 1 bp is $1 per $10,000 traded. The sweep fade earns 3 to 4 bp before costs and pays about 13.5, while the breakout loses before costs as well. Hover or tap a rule for its trade count and the interval on its net return.

Before costs the sweep fade earns 3.2 bp per trade, about $3 on every $10,000 traded, then pays 13.6 bp in fees and spread to net −10.4 bp across 33,124 trades, with the walk-forward version at −9.3. Breakouts lose even before costs, −2.9 bp gross, and net −16.4 fixed and −20.9 walk-forward.

All four tests fail at p = 1.0. For every rule the gap between visible and control levels stays inside its own interval, +1.6 bp for the fixed fade with an interval of −2.4 to +5.3.

RuleTradesGross (bp)Fees + spread (bp)Net (bp)Net 95% interval
Sweep fade, fixed33,124+3.213.6−10.4−13.7 to −7.3
Sweep fade, walk-forward31,377+4.113.4−9.3−13.0 to −5.5
Breakout, fixed17,531−2.913.5−16.4−24.9 to −8.1
Breakout, walk-forward12,239−7.913.0−20.9−29.6 to −12.3

The four registered trading tests on visible levels, net of costs. None is credited after Benjamini-Hochberg correction.

Other obvious levels

Prior ISO-week highs and lows, set against 7-day windows anchored on Thursday at 10:00 UTC, show a larger gap of −3.9 points with an interval of −6.0 to −1.9. Round numbers, against a grid shifted by 0.37 of a step, show −2.9 points (−3.4 to −2.4), and both results survive Holm correction in the continuation direction.

Fig. 8: Three kinds of obvious level, each against its own undrawn control, all of which continue more often than that control.

Round numbers carry a caveat of their own, because their placebo grid reverses at 51.7% against a shuffle baseline of about 48.5%, which puts part of that gap on the placebo.

At yesterday's high or low, price reverses no more often than at a level nobody draws, while a trade built on believing otherwise loses about $10 on every $10,000.

What this rules out and what it does not

The study rules out the stop-hunt reversal as a property of prior-day extremes on Binance and OKX perpetuals. In no specification on either exchange does the visible level reverse more often than its control, while fading a sweep of the level earns a few basis points before costs and loses about 10 after them.

It leaves open whether visibility causes the continuation. Because the excess appears against levels inside the previous day's range and fades against undrawn levels whose touch is also a range break, range extremes in general explain it as well as the line on the chart does; its size runs from 2.0 points under the registered control to 4.4 and 5.1 under the clean one.

Since the continuation excess is confined to the first 0.1 ATR past the level, a stop placed more than 0.2 ATR beyond a prior-day extreme behaves like a stop beyond any recent high or low.

Limitations

Visibility is assumed, not observed. Shifted-clock windows are undrawn on default charts, yet some traders use other day boundaries and every hour is midnight somewhere. The exploratory split above also shows that this design does not separate visibility from range-extreme status.

OKX shares the underlyings. Its prices track Binance within basis points, so the replication repeats the measurement on a different exchange's trades, order books and stop and liquidation populations over a price history that is not independent. OKX's app also shows daily candles in UTC+8 by default, while the replication kept the UTC day.

00:00 UTC is also a Binance funding settlement time. Visible levels activate there and the controls do not, and nothing in the design isolates that.

Stops are never observed. Neither exchange publishes stop orders or liquidations at the detail needed, so the study measures what price does and not who traded.

The registered estimate rests on half the sample. Its strata include the clock hour, which nearly separates the arms, so 18,689 of 37,355 visible touches enter it; the clean-control estimator drops that dimension and keeps 96% of touches on Binance and 92% on OKX.

A forward test is defined and not yet run. Covering both venues from 19 September 2026, it runs once 30,000 visible touches have accrued, about 2029 at the current rate.

Every chart on this page is drawn in your browser from the study's published result table, the same numbers given in the text and on the reproducibility page.

Full methodology

Data, the universe rule, level and control definitions, tick resolution, strata, the two-stage bootstrap, costs, method gates and the locked plans with their hashes.

Reproducibility →