The first time I watched a bid soak up sell after sell without moving, I assumed the feed was lagging. Ten thousand shares hit it, then twenty more, and the price on that level just sat there like nothing was happening. What I was actually looking at was an iceberg. Most of the order was hidden, and the book was only ever showing me a thin slice of it. Once you understand the mechanism, you stop being surprised by walls that refuse to break, and you start using the same trick to hide your own size.
What an iceberg order actually is
An iceberg order is a limit order where you tell the exchange how much you want to trade in total, but you only let it display a small piece at any moment. The total is the real quantity. The displayed piece is usually called the display quantity, or the peak, or the tip depending on the venue. The book shows only that peak. When it fills, the exchange automatically posts the next slice at the same price, and it keeps doing that until the full quantity is done or you cancel.
So if you want to buy 100,000 of something but you only want the book to show 5,000 at a time, you set a display quantity of 5,000. Everyone watching the depth sees a 5,000 bid. They lift or hit it, it refills to 5,000, they hit it again, and it refills again. From the outside it looks like an endless supply of small orders. Underneath, it is one large resting order slowly feeding the tape.
The reason people do this is simple. Size scares the market. If you drop a visible 100,000 bid, everyone front-runs it, fades it, or steps in front of it, and you have basically told the whole room your intention. Hiding the size behind a small clip lets you rest real liquidity without broadcasting how much you have. The tradeoff is that you usually give up queue priority on the hidden portion, and on some venues you pay taker-style fees or lose maker rebates on the concealed size. Exchanges do not give you invisibility for free.
Where you can actually use them
This is where a lot of writeups get vague, so let me be concrete about the categories rather than pretend every venue works the same way. Iceberg support falls into a few buckets, and you should always check the exact behavior on your specific venue before you rely on it.
- Traditional equity and futures exchanges have supported native iceberg or reserve orders for a long time. The matching engine handles the replenishment for you, and the hidden portion sits inside the exchange itself.
- Major centralized crypto exchanges vary a lot. Some offer a native iceberg order type in the order form. Others do not, and what people call an iceberg there is really a synthetic version stitched together by their own bot or by the trading interface, which just posts a new small order each time the last one fills.
- Order and execution management systems, the kind institutions route through, often implement iceberg logic in the algo layer rather than at the exchange. The venue only ever sees the small clips. The parent order lives on the broker or vendor side.
The distinction between native and synthetic matters more than it sounds. A native iceberg refills instantly inside the matching engine, so the gap between one clip filling and the next appearing is effectively zero. A synthetic one has round-trip latency between the fill and the replacement order, which leaves a visible hole in the book for a beat. That hole is one of the things a sharp counterparty looks for.
Reading the tape for a hidden wall
Detecting an iceberg is really just noticing that far more volume is trading at a price than the displayed size can explain. Nobody can see the hidden quantity directly. What you can see is the aftermath, so you learn to read the aftermath.
The core tell is refill behavior. A level shows 5,000. You watch 5,000 print against it, and instead of the level thinning or disappearing, it pops right back to 5,000. Then it happens again. And again. A genuine 5,000 order gets consumed and the level moves. An iceberg keeps resetting to the same number at the same price. When you see a level that will not die no matter how much size hits it, and it keeps returning to a suspiciously round clip, you are probably looking at hidden size absorbing flow.
Here is a rough workflow I use when I suspect one:
- Watch the time and sales, not just the depth. Add up the volume actually executing at the level and compare it to the displayed size. If traded volume is many multiples of what was ever shown, the extra came from somewhere hidden.
- Watch how the level replenishes. Instant refill to the exact same clip points to a native iceberg. A short gap before the same clip reappears points to a synthetic one being managed by a bot.
- Watch price reaction. Real absorption holds the price. If a level eats repeated market orders and the mid barely moves, someone with size wants to be filled here and is willing to sit and take everything.
- Watch what happens when it stops. The moment the hidden quantity is exhausted, the wall vanishes and price usually snaps through the level fast, because the thing that was holding it is gone. That snap is often the highest-conviction signal, and it comes too late to trade the absorption itself, but it confirms your read for next time.
The failure mode to respect is that spoofing and layering can imitate a refill without any real size behind it, and a genuinely deep passive book can look like an iceberg when it is just a lot of separate participants. So do not bet size on a single refill. You want repeated absorption, traded volume that dwarfs the display, and a price that holds. When all three line up together, the read is a lot more trustworthy than any one of them alone.
Using display quantity without getting picked off
When you are the one hiding size, the mistake is making your clip too clever. A tiny display quantity relative to a huge parent order screams iceberg to anyone paying attention, especially if the clip is an oddly precise number that keeps returning. Sizing your display to look like ordinary retail flow at that price is the whole point. If normal orders at the level are in the low thousands, a 200-clip that refills forty times is a billboard.
A few habits that help. Randomize the display size within a band instead of posting the identical clip every time, if your venue or algo lets you. Vary the timing between replenishments so the pattern does not look mechanical. And accept that in genuinely thin books an iceberg does not really hide anything, because there is not enough natural flow to blend into, so your slow drip just becomes obvious over a longer window. Icebergs work best in liquid names where your size is a small fraction of what trades and your clips look like everyone else's.
On the detection side, this is exactly the kind of pattern that shows up when you watch order flow across venues rather than staring at one book, which is a lot of what we ended up building into Blockcircle. Correlating the printed volume against displayed depth is mechanical enough that you can flag likely absorption without eyeballing every level yourself.
None of this requires special data. The displayed size, the time and sales, and a little patience are enough to catch most icebergs, and the same understanding tells you how to hide your own size when you are on the other side of it. Watch for the level that will not break, then watch for the moment it finally does.