Order Flow Foundations
10 min read
Introduction to DOM, tape, and footprint charts without the overwhelm -- the essential building blocks of order flow reading.
10 min read
Introduction to DOM, tape, and footprint charts without the overwhelm -- the essential building blocks of order flow reading.
Order flow is the only data layer that shows intent in real time — and the most over-mythologized tool in retail trading. This lesson cuts both ways.
Trading Mastery taught you structure, bias, and the order book at the conceptual level. Execution Precision is where structure meets the tape. The first module — Order Flow — gives you the four data layers (DOM, tape, footprint, CVD) you'll layer over every setup from here on. If you want a refresher on how price actually moves through resting liquidity, read order flow and DOM before you continue.
Order flow is the real-time stream of executed trades, resting limit orders, and aggressor side — the four data layers (DOM, tape, footprint, CVD) that show who moved price and how hard. Candles tell you the result. Order flow tells you the process. This lesson gets you fluent in all four.
Three tools, three different views of the same flow: DOM shows what's waiting, tape shows what just happened, footprint shows what's happening at each price within a bar. A fourth — CVD — aggregates tape across bars. Learn all four; you only need two at a time.
Where to see this: Bookmap (heatmap DOM), ATAS / Sierra Chart (footprint), Quantower (tape), Trading Glass (cluster + CVD + DOM heatmap, web-native). All four show the same data — different lenses.
| Tool | What it shows | Time scale | Primary signal | Primary failure mode |
|---|---|---|---|---|
| DOM | Resting limit orders by price | Now (live) | Stacking, pulling | Spoofing, hidden/iceberg orders |
| Tape | Executed trades + aggressor side | Sub-second | Absorption, speed bursts | Algo VWAP slicing, retail aggregation |
| Footprint | Volume by price within a bar | Per-bar | Imbalance, delta divergence | Low-volume regimes, thin bars |
| CVD | Running sum of taker delta across bars | Multi-bar | Divergence vs price | Reset bias, session anchoring |
The live limit order book — resting bids below current price, resting asks above. DOM tells you what size is waiting to be filled at each level.
What to look for:
Your DOM is delayed. Even on a sub-100ms feed, HFTs see and react to depth changes microseconds before you render them. Don't try to front-run the book — read its shape.
In crypto, DOM is fragmented. Binance perp typically shows the deepest book, but Bybit, OKX, and Coinbase each carry different depth. Aggregation level (per-tick vs grouped), hidden/iceberg orders, and exchange-specific liquidity mean the visible book is partial truth, not full liquidity. And on most crypto venues spoofing is unregulated — most depth-print noise is market-maker quote refresh, not deliberate manipulation.
Every executed trade with timestamp, price, size, and aggressor side — whether the taker hit the bid (sell-aggressive) or lifted the ask (buy-aggressive). Without aggressor side, you're reading volume, not flow.
What to watch:
The tape shows what traders are actually doing, not what they're posting on the book.
A candlestick that shows volume at price inside the bar, not just open/high/low/close. Each cell represents trades executed at that price during that bar.
Common formats:
What to read:
Running sum of (taker buys − taker sells) across bars. CVD is a bar-level metric, not a footprint cell. It diverges from price during absorption: price keeps making higher highs while CVD rolls over → buyers are exhausting against resting supply.
CVD resets on session boundaries or when you reload data, so absolute values across sessions aren't comparable — read shape and slope, not magnitude.
BTC taps a 4H order block at $94,200. 1m BOS shows early reversal. DOM, tape, footprint, and CVD all align with the structural setup before entry.
Order flow confirmation, measured across the four tools at the OB tap.
Resting at $94,180 to $94,220, did not pull on the wick.
Buy-aggressor share goes from 45 percent to 70 percent over 30 seconds.
1m bar at the OB low prints +180 BTC delta after a string of minus 40 to minus 90 delta bars.
1m CVD slope flips positive while price holds the OB low — bullish divergence resolves.
You're not guessing — you're confirming the structural setup with measured aggressor behavior. Without those numbers, "buyer prints increase, sell flow slows" is just vibes.
If three of the four agree with your structural plan, take it. If two disagree, it's a no-trade — your structure may be wrong, or you're early.
Order flow data is dense (10,000+ events per second on BTC perps), latency-sensitive (HFT sees the book microseconds before you do), and ambiguous (a 500 BTC bid could be real intent, an iceberg, or a spoof). Retail can't compete on raw OF speed — colocation, sub-millisecond feeds, and institutional aggregation cost more than most retail accounts.
The retail edge is layering OF over a structural setup you'd take anyway. You're not racing the book; you're using it to filter false setups before they trigger and to size up when alignment is clean.
Honest framing: most retail traders who add order flow do not see better PnL in the first six months — they see worse, because OF gives more reasons to override valid structural plans. The skill is filtering, not seeing more. If a setup needs OF to be valid, it probably wasn't a setup.
Order flow is the real-time stream of executed trades, resting limit orders, and aggressor side. It's expressed through four data layers — DOM (resting orders), tape (executed trades with aggressor), footprint (volume by price within a bar), and CVD (running sum of taker delta across bars) — that together show who moved price and how hard.
DOM shows resting limit orders waiting at each price — what could happen if traders cross the spread. Tape shows executed trades with timestamp, size, and aggressor side — what did happen. DOM is the liquidity landscape; tape is the live record of who took it.
A footprint chart is a candlestick that displays volume at each price level within the bar — not just open/high/low/close. Common formats include bid x ask volume per cell and delta (buy volume minus sell volume), letting you see exactly where in a bar the aggression hit.
Delta is the per-bar net of buy volume minus sell volume. CVD is the cumulative running sum of delta across bars, anchored to session start or chart reload. Delta tells you what happened in one bar; CVD tells you the multi-bar trend of aggressor pressure.
Yes, but as confirmation over a structural setup, not as a primary signal. Retail can't compete with HFT on speed or feed quality, and OF data is dense and ambiguous. The edge is using OF to filter false setups and size up when DOM, tape, footprint, and CVD all align with your structural plan.
Stacking is large resting size clustered at a price — it can act as support or resistance if it holds. Pulling is when those orders cancel just before price reaches them, revealing them as fake liquidity. Spoofing is when large size is posted to lure flow in one direction, then vanishes before getting hit. On most crypto venues spoofing is unregulated, but most depth churn is benign market-maker quote refresh, not manipulation.
Candles show what happened. Order flow shows who made it happen — and who's likely to do it again.
You don't need to be a scalper. The point isn't speed; it's knowing when your structural setup is being respected, faded, or absorbed — before the candle tells you.
Next: Understanding Depth of Market — we go deep on DOM mechanics: how to read aggregation, spot iceberg orders, and tell market-maker quoting from real intent.