Spend five minutes in any trading Discord and you'll see some version of these: "market makers hunt the liquidity", "they ate the wall, breakout incoming", "wall got pulled, it's a spoof, short it". People sell courses on this stuff. There are paid channels and whole "order-flow academies" built around it.
I've never seen one of them show actual statistics. A screenshot of a good trade, sure. A count with a control group, never.
We run a crypto trading platform and a free order-book heatmap. Yes, it's ours, and I'll come back to why that matters at the end. Before we drew any "magnets" or "strong levels" on that chart, we wanted to know if any of this holds up. So we recorded the Bybit book once a minute, wrote each test down before running it (so we couldn't quietly change the rules after seeing the result), and ran them.
It didn't go well for the order-book folklore. None of the 7 liquidity beliefs we tested held up. We then pushed 5 other "proven" ideas through the same process, including a big ML model across 356 coins and two strategies from popular trading YouTubers. Same story.
TL;DR
- Price moves on market orders, not on resting orders. The book shows where size can trade. It doesn't show where price will go.
- Most walls get pulled well before price arrives. The few that stay hold price about as well as an empty level at the same distance.
- Your own backtest is the thing most likely to fool you. I'll show three times ours did, and how we caught it.
How we tested
- Data. Bybit USDT perps, 1000 levels of the book, one snapshot a minute, plus every trade rolled up into taker buy and sell volume per minute. The book tests use BTC, ETH, SOL and XRP from late September to late October 2026. The flow tests use a full year on 7 coins from Bybit's public trade archive, which we checked against our own collector (they match to 6 decimal places).
- Pre-registration. For every question we wrote the signal definition, horizons, statistic and pass bar into git before the first run. The commit timestamps are there if anyone wants to check we didn't move the goalposts.
- Controls. Every effect gets compared with something boring at the same moment: the mirror level on the other side, an empty level, or random minutes of the same coin. Skip this and everything "works". In a falling month, any filter that blocks longs looks brilliant.
- Stats. 95% confidence intervals from a day-block bootstrap, both halves of the period have to agree, and a Bonferroni correction when we test lots of cells.
- Costs. 11 bp taker fees per round trip, plus 5 bp slippage where you'd be entering a fast move. If it only works before fees, it doesn't work.
Part 1. Seven order-book myths
Myth 1: price is drawn to liquidity
This is the big one. Market makers supposedly push price toward liquidity to "collect" it.
Every 15 minutes we took the biggest resting cluster on each side of price (30-minute average, 5 bp buckets, at least 2x the median bucket) and its mirror, the level the same distance away on the other side. Then we checked which one price touched first within 15 minutes, 1 hour, 4 hours and 12 hours. If walls attract price, the wall side should get hit first more often. We set the bar at 55% before running anything.
19,541 trials. All 12 cells (4 horizons, 3 wall sizes) came in between 46% and 54%, and every confidence interval includes 50%. Coin flip.
The usual reply is that the liquidity isn't in the walls, it's in the stops past the recent highs and lows. We tested that too, with 1h, 4h and 24h extremes, and naked daily POCs while we were at it. 15 of 16 cells landed between 44% and 52.5%.
One cell did pass: the 24h high or low on the 15-minute horizon, at 56.1%. If I were selling a course, this is where I'd stop and make a video. Instead we re-ran that cell at five other minute offsets and got 51.1% to 54.0%. After a Bonferroni correction for the 28 tests we'd run, nothing was significant. The 56% was just the best of six draws. Run 28 tests and one of them will look good by chance, which is worth keeping in mind next time someone shows you a strategy "with a backtest".
Myth 2: a big wall is support
A wall in the book is really just an ad that says "I'll buy here". It can be cancelled in milliseconds and it costs nothing to cancel. We tracked what happened to 221,487 walls on SOL, XRP and ETH. We left BTC out because its 1000 levels only cover about ±0.27% of price.
Between 69% and 88% of walls were cancelled while price was still far away. Only 1-3% were still there when price touched them. So are those few the "real" liquidity? We measured bounces: price moves 0.3% away from the wall before it moves 0.3% through it.
| bounce rate | n | |
|---|---|---|
| wall still there at the touch | 48.2% ± 1.4 | 4,939 |
| wall pulled just before the touch | 48.9% ± 1.0 | 9,669 |
| empty level, same distance and time | 48.5% ± 0.3 | 104,364 |
A wall that actually stays holds price no better than empty space. We also split by the wall's age, size (5x up to 15x+ the median), distance, and how much traded into it during the touch minute. None of it changed the rate.
Myth 3: they ate the wall, breakout incoming
We took walls of at least 5x the median that price traded straight through, and compared them with price crossing the same distance where there was no wall.
- 160 eaten walls vs 306 controls.
- After 60 minutes the eaten-wall cases were 3.4 bp better than the controls, with a 95% CI from -5.8 to +12.7 bp. That's noise.
- After 11 bp of fees, the trade is down 12.9 bp.
- We tried 8 nearby definitions (3x or 10x walls, different "eaten" thresholds, 60 to 240 minute waits). None passed.
The number that stuck with me: over the same period, 3,653 walls were pulled before price got to them, and only 160 got eaten. A "trade the wall break" setup spends most of its time waiting for something that barely happens.
Myth 4: the wall vanished, it was a spoof, trade against it
OK, so walls get pulled a lot. Can you make money off that? We took the 3,653 pulled walls and traded in the direction the wall had supposedly been holding back.
| wall pulled when price was | n | after 15 min | 95% CI |
|---|---|---|---|
| closer than 10 bp | 189 | -3.1 bp | -8.5 to +2.0 |
| 10 to 30 bp away | 349 | +1.1 bp | -0.8 to +3.0 |
| more than 30 bp away | 3,115 | -0.3 bp | -1.2 to +0.7 |
All within a few basis points of zero, and that's before 11 bp of fees. Real spoofing happens in milliseconds. A one-minute snapshot can't see it, and a normal server couldn't race it anyway, since the other side is HFT firms sitting right next to the exchange. If someone's selling you a method for catching spoofers by hand, ask what their ping is.
Myth 5: order flow and CVD show direction
This is where we had the most data: 375 days across 7 coins of per-minute taker buys and sells. We pre-registered three ideas, each tested long and short on two horizons, so 12 primary tests:
- Capitulation fade. A 4-sigma drop on 5x normal volume, mostly sells. Wait 5 minutes, buy. Mirror for shorts.
- Absorption. Heavy net selling but price doesn't drop, so go long. Mirror for shorts.
- Flow momentum. A 5-minute burst of one-sided market orders, follow it.
Each event was compared with random minutes of the same coin within 3.5 days either side. Costs were 16 bp.
0 of 12 primary tests passed. We also ran a grid of 96 variants around the best idea, and 0 of those passed. The best primary cell was the capitulation fade, short side, 240 minutes: +9 bp over random minutes, CI -18 to +38. The more extreme versions flipped sign between the two halves of the year (-55 bp in one half, +15 bp in the other). That's a regime change, not an edge. It's what "the strategy worked and then the market changed" looks like up close.
Myth 6: fade the liquidation cascade (too early to call)
We only have 37 days of liquidation data so far. Here's what fading the top 0.5% of 5-minute liquidation bursts looks like:
| n | before costs | after costs | median drawdown, first hour | |
|---|---|---|---|---|
| long after long liquidations | 134 | +14 bp | -2 bp | -54 bp |
| short after short liquidations | 165 | +19 bp | +3 bp | -36 bp |
Zero after costs, and not enough independent cascades for a proper test. Also look at the last column: you sit through a half-percent drawdown to make nothing. We'll re-run it when we have 6 months of data and post whatever comes out.
Myth 7: put your entry at the liquidation shelf
We tested this on 1,301 signals from our own strategies. Instead of entering at market, you rest a limit at the estimated liquidation cluster against the trade, which was a median 2% from price.
- Limit at the shelf: +0.26% per signal compared with a market entry. Looks like a find.
- A plain limit 2% back with no liquidation map at all: +0.24%.
- Price didn't touch the shelves any more often than the same distance without one.
- Using real Bybit book walls as the entry level did worse than a random level at the same distance.
So the money came from buying a 2% pullback, not from knowing where liquidations sit. If we hadn't run the "same limit, no map" control, we'd probably be marketing a "liquidation-shelf entry" right now.
A real example: ETH on 23 October
Between 22:05 and 22:55 UTC, ETH dropped 1.7% (2.1% to the low of the wick). 73% of all market-order volume in that window was selling, and it came in two waves: about $38M in the 22:30-22:35 five-minute bar (81% sells) and about $116M in the 22:50-22:55 bar (79% sells).
Look at the bottom panel. Price drops in the minutes with the red bars and goes flat when they stop. Once the selling dried up, so did the fall, and within the next hour price had won back 72% of the move.
Nothing in the book flagged this in advance. The tape showed it while it was happening, and that's pretty much the point of this whole post.
Part 2. Five more ideas that "worked"
The order book isn't the only thing traders believe in, so here's what else we put through the same process. Any of these could be a full post. Let me know in the comments which one you'd want first.
1. One big model that looks at everything
Someone asked us for "one strategy that takes everything into account", so we built one. Gradient boosting on 46 features: price and indicators, open interest, funding, long/short ratio, premium, Binance taker flow, how each coin ranks against the rest, BTC and ETH, time of day. 356 perps, a new forecast every 4 hours, walk-forward from March to October 2026. The model picks both the coin and the direction.
| trades | avg net per trade | 95% CI | months in profit | |
|---|---|---|---|---|
| top coin by forecast | 1,470 | -1.36% | -3.78 to +0.93 | 2 of 8 |
| market-neutral version, with funding | 1,470 | -0.27% | -1.38 to +0.77 | 3 of 8 |
| baseline: always long a random coin | -0.25% |
What it actually learned was more interesting than the result. 92% of its trades were shorts on the most stretched small caps. The median trade made +3.8% and 59% of trades were winners, but the average was -1.4%. The reason is squeezes: on 31% of trades price went 20% or more against the position within a day, which is a liquidation at 5x. And because it was shorting exactly the coins with deeply negative funding, it paid about 1.9% per trade just to hold the position.
That's how a lot of "70% win rate" strategies work. Lots of small wins, then one ugly tail wipes them out.
We almost fell for something else here too. A quick test on 36 coins came back at +0.9% per trade. The 36 coins had been picked alphabetically, all starting with A. On the full list the result flipped. Results on a subset don't count.
2. The candle timestamp bug
We went looking for a filter to cut our bot's bad longs and tried about 4,000 rules and pairs of rules (BTC trend, USDT dominance, how the coin moved over 4h, 24h, 7d, and so on).
One looked great: "if the coin fell over the last 4 hours, skip the long". It made +$212 in the backtest. Then we found the problem. Exchanges timestamp a candle at its open. If you use the candle that contains your entry, you're looking up to 59 minutes into the future. With closed bars only, the rule disappeared.
On clean data, the number of rules that looked "robust" was the same as on shuffled data: 303 for longs, against a median of 290 and a max of 543 when the labels were shuffled. Walk-forward (pick rules on the past, trade them on the next period) gave anywhere from -$24 to +$29. None of the filters told us anything.
If you have a backtest, it's worth checking which candle you use at the moment of entry.
3. How we fooled ourselves (and who caught it)
This one is embarrassing, which is why I think it's the most useful. We found a filter showing that longs on coins far above their weekly low, or very volatile, lagged the market 12 months out of 12. We'd already suggested turning it on.
An independent reviewer went through the code and found the mistake. We'd measured everything in log returns, and log returns penalize volatility on their own. The flagged coins had 13.4% daily volatility against 5.1% for the rest, so the filter hadn't found bad trades, it had found volatile coins. In simple returns, which is how a linear perp's PnL actually works, the effect was -0.02% with a CI of -0.21 to +0.19. Basically zero. Losing months went from 12 of 12 to 5 of 12.
Lesson learned: count money in simple returns. Logs are handy for statistics and misleading when the question is "does this make money". We dropped the filter.
4. Don't trade on bad news
We tagged 26 days of headlines (Fed, inflation, tariffs, ETF outflows, war tension, stock sell-offs) and tested "after bad news, don't open new longs" on 1,746 real longs.
- That kind of headline showed up 20.5 times a week, so the rule blocked 47% of all longs.
- The longs it blocked did 0.17 points better than the ones it let through.
- A placebo version, the same rule shifted 24 hours away from the news, "helped" more than the news itself did.
And the trap: look only at the last week before the test and the rule looks amazing. Blocked longs -1.22%, allowed longs -0.37%. That's exactly the week that ends up as a screenshot in a Telegram channel. Over the full month there was nothing there. In a falling market, any filter that blocks half the longs looks like it saved you.
5. Strategies from YouTube
People send us videos all the time with "here's a strategy, test it", so we do. I'm not naming anyone, because what we tested was our written-down version of their rules, not them personally.
- A "1% a day" scalper (daily trend, entry near yesterday's low or high, take profit at +1%). 286 perps, July to November 2026, ambiguous candles resolved on 1-minute data. Result: -0.13% per trade (6,526 trades, CI -0.20 to -0.06). The trend filter made no difference: -0.130% with the trend, -0.135% for all trades, -0.151% against the trend.
- A Fibonacci pullback on gold (4h trend, pullback, then a break of structure on the 15-minute). 19 months of data: -0.30R per trade (CI -0.63 to +0.04), 45 trades, and none of the 72 nearby parameter settings came out positive.
To be fair to them, if these traders have a real edge it might be in the parts you can't write down, like reading the tape live or plain discretion. We can't test that. What we can say is that the part you can turn into rules and show in a video doesn't hold up.
So why do we run a heatmap at all?
Fair question. We built a heatmap and then spent a month showing it can't predict price.
A tool doesn't have to predict anything to be useful, though. We use it for the stuff it's actually good at:
- Execution. Seeing where size can get filled and how thin the book is right now. That saves real money on slippage.
- Context. Who's trading right now. Market orders and big prints show you what's driving a move while it's happening, like the ETH example above.
- Where leverage is probably sitting. Our liquidation estimate puts 31-37% of the following month's actual liquidation volume into its top 20% of price levels, where chance would be 20%. That's the only thing in this whole post that beat a coin flip. It only beats a week-old version of the same map by a few points, though, so treat it as a picture and not a forecast.
What you won't find on it: magnets, "strong support" labels, arrows pointing where price is supposedly going. We could add them, and they'd probably sell well. The data just doesn't back them up.
Where we could be wrong
- The snapshots are one minute apart. A wall pulled in the last few seconds before the touch gets counted as "stayed".
- It's one exchange (Bybit) and only levels near price. On BTC the visible book only reaches about ±0.25% from price.
- The book tests cover roughly a month, which is one market regime. Not finding something isn't the same as it not existing.
- Our latency is retail latency. HFT firms see things we can't.
- The YouTube strategies are our reading of them. If the authors think we got them wrong, that's fair. Send the rules and we'll run it again.
Prove us wrong
This is the first post in a series. We're not saying there's no edge in the order book. We're saying we didn't find one, and here's exactly how we looked.
If you've got a liquidity, order-book or order-flow idea you actually trust, put it in the comments as a rule we can test:
- Definition: what exactly counts as the signal.
- Horizon: when we measure the result.
- Success: what result would convince you it works.
We'll post the rule publicly before we run it, test it on our data with the same controls, and publish what comes out, including if it proves us wrong.
The heatmap, with a year of candles and the recorded book, is free at enliko.com/orderbook (BTC, ETH, SOL, XRP, SUI, DOGE, HYPE). Go find your favorite "wall" and see what happened to it.
P.S. Why would a trading platform publish a post that mostly says "this doesn't work"? Because the other option is selling people liquidity magnets and waiting for them to figure it out on their own. I'd rather we figure it out now, in public.



Top comments (0)