Stacking, pulling and adding
Lesson 6 · about 10 min
A static snapshot of the DOM tells you little. The information is in how it changes. This lesson covers the three behaviours you will see constantly: stacking (size building up on one side), pulling (size being cancelled as price approaches) and adding (size appearing as price approaches). Each one changes the odds of price moving through a level.
Stacking
Stacked bids are several consecutive price levels below the inside with unusually large resting size. Stacked offers are the same above.
Bid | Price | Ask
-----+---------+------
| 5000.75 | 110
| 5000.50 | 95
| 5000.25 | 80
120 | 5000.00 |
480 | 4999.75 | <- stacked
520 | 4999.50 | <- stacked
610 | 4999.25 | <- stacked
140 | 4999.00 |
Naively this looks bullish: "look at all the buyers." The correct read is more cautious. Stacked bids mean displayed passive interest below. If it holds, price will struggle to fall through it. If it pulls, it was never there. What it does not mean is that price is about to go up: passive buyers cannot lift offers.
Two useful questions about any stack:
- Is it moving with price or fixed? Size that walks up as price rises and down as it falls is an algorithm keeping a constant distance from the market, and it will likely never be hit. Size that stays at fixed prices is a participant with an opinion about those prices.
- What happens when price gets there? This is where pulling and adding come in.
Pulling
Pulling is the cancellation of displayed size as price approaches it. Watch the 4999.75 bid as sellers hit down from 5000.00:
Time | Best bid | Size at 4999.75 | Event
----------+----------+-----------------+----------------------------
10:31:04 | 5000.00 | 480 |
10:31:06 | 5000.00 | 470 | 10 pulled
10:31:08 | 5000.00 | 390 | 80 pulled
10:31:09 | 5000.00 | 210 | 180 pulled; price still 5000.00
10:31:10 | 4999.75 | 85 | price arrives; 125 more pulled
10:31:11 | 4999.50 | 0 | remaining 85 hit; level gone
Between 10:31:04 and 10:31:10, 395 of the 480 contracts were cancelled before a single one was filled. When price finally arrived, only 85 stood, and they were consumed in one second. The stack that looked like support was 82% air.
Pulling is the single most reliable tell that a level will not hold. It is also the normal behaviour of market makers who do not want to be run over: as aggressive selling accelerates towards them, they step out of the way. Whichever it is, the effect is the same. Displayed liquidity that pulls creates a vacuum, and price accelerates into vacuums.
Adding
Adding is the opposite: size grows as price approaches.
Time | Best bid | Size at 4999.75 | Event
----------+----------+-----------------+----------------------------
10:44:20 | 5000.00 | 160 |
10:44:23 | 5000.00 | 240 | 80 added
10:44:25 | 4999.75 | 310 | price arrives; 70 more added
10:44:28 | 4999.75 | 350 | 120 hit; 160 added (net +40)
10:44:33 | 4999.75 | 330 | 210 hit; 190 added
10:44:40 | 5000.00 | 300 | sellers give up; price ticks back up
Here a buyer wanted to be filled at 4999.75 and kept refreshing as sellers hit them. Over twenty seconds, 330 contracts traded at 4999.75 and the displayed bid never fell below 300. That is absorption, which is the subject of the next lesson. The point for now: adding into an approaching move means someone wants the fill and is willing to take the other side of aggression. It raises the odds the level holds.
Key idea: Displayed size is a promise. Pulling breaks the promise before it is tested; adding keeps it under pressure. Watch the behaviour of size as price approaches, not the size itself.
A scoring habit
Traders who read the DOM well tend to keep a mental (or written) score of each level as price gets near it:
| Behaviour as price approaches | Odds level holds | What to do |
|---|---|---|
| Size pulls, little traded | Low | Do not fade into it; expect acceleration through |
| Size holds, volume trades, size stays | High | A fade or a join of the resting side is reasonable |
| Size adds, heavy volume, price stalls | High, short term | Absorption; look for a reversal trigger |
| Size holds, then is consumed exactly | Level is gone | It was real but finite; nothing to lean on now |
| Size grows but price never arrives | Unknown | Untested; treat as a hypothesis |
None of these are entries on their own. They are context that changes how much you trust a level you already cared about for another reason, such as a profile level (Module 4) or a structure level (Module 5).
Speed matters
On thin products these behaviours unfold over seconds and are readable by eye. On very liquid products the same thing happens in tens of milliseconds, driven by algorithms, and the human eye sees only flicker. Lesson 4 of this module addresses which products are worth watching a DOM on at all.
Try it: Watch a DOM for fifteen minutes and note every time price approaches a level that displays at least twice the average size. Record whether the size pulled, held or added, and what price did in the next ten seconds. Ten observations will teach you more about your product than any description can.
Recap
- Stacked size is passive interest; it can stop price but cannot move it.
- Pulling is cancellation as price approaches; it is the most reliable sign a level will fail.
- Adding is size growing as price approaches; it raises the odds a level holds and often marks absorption.
- Score each level by its behaviour under approach, not by its size at rest.
- On thick, fast products these behaviours are too quick for the eye; choose your product accordingly.