Order flow

How to Read the DOM (Depth of Market) in Futures Trading

The DOM shows the limit orders waiting above and below the market, price by price. Learning how to read the DOM means separating what is offered from what actually trades, and knowing what the ladder never shows.

Published · Updated · 8 min read

Key takeaways

  • The DOM (depth of market) is a price ladder of resting limit orders: bids below the market, offers above it, with the size waiting at each price.
  • Resting size is an intention that can be cancelled at any moment; executed volume, seen in Time & Sales or on a footprint, is what actually changed hands.
  • A shrinking size can mean a fill or a cancellation, so the useful question is always whether size left the book through trades or through pulling.
  • Large displayed orders far from the inside market are the least reliable part of the ladder: they can be pulled, and hidden quantity never appears at all.
  • The DOM describes liquidity at a level you already care about; it does not forecast direction and belongs inside a plan with a defined stop and position size.

How to read the DOM: the short answer

The DOM, or depth of market, is a vertical price ladder that shows the limit orders currently waiting to be filled. Buy orders (bids) sit below the market, sell orders (offers, or asks) sit above it, and each row tells you how many contracts are resting at that price. Knowing how to read the DOM comes down to three habits: watch the best bid and best offer first, compare every change in size with what actually trades, and treat everything away from the inside market as provisional.

The ladder is a picture of liquidity, not of commitment. Anyone who placed a limit order can cancel or move it before it is touched, and part of the liquidity in a futures book is never displayed. That is why the DOM is read together with the tape and a chart rather than on its own, and why it says more about the next few ticks than about the rest of the session.

Anatomy of the ladder: price, bid size, ask size and the spread

Most DOMs are built around a central price column with one row per tick, bid sizes on one side and ask sizes on the other; in the NinjaTrader SuperDOM, market depth appears in its Buy and Sell columns. The highest bid and the lowest offer form the inside market. The distance between them is the spread. In very liquid index futures it is usually a single tick during active hours, and it widens when liquidity thins out, for example overnight or in the seconds around a major economic release.

Each number is normally an aggregate: the sum of every order resting at that price, not the size of one order. A level showing a large size may be one participant or dozens of small ones, and a standard ladder cannot tell the difference. Depth is also limited to a number of levels on each side that depends on the exchange feed and on your data provider, so the outer rows are often empty simply because they are not transmitted.

Many ladders add columns: last traded price and size, volume traded at each price during the session, and your own working orders. Before reading anything, check what each column of your DOM actually counts, and since when it has been counting.

  • Bid column: resting buy limit orders; aggressive sellers trade against them.
  • Ask column: resting sell limit orders; aggressive buyers trade against them.
  • Inside market: the best bid and best offer, where every market order is filled first.
  • Spread: the gap between the two, a quick gauge of how thin liquidity is right now.

Resting limit orders versus executed volume

The most common mistake is to read the DOM as if it showed trades. It does not. A size at a price is an offer to trade there; until an aggressive order arrives, nothing has happened. Executed volume lives elsewhere: in Time & Sales, on a footprint chart, in the volume bars under your candles. The order flow guide explains how passive and aggressive orders meet; on the ladder you only see the passive side waiting.

This matters because size can leave a price for two very different reasons. It can be filled, which means an aggressive trader took it, or it can be cancelled, which means its owner changed their mind. On a standard ladder both look the same: the number shrinks. To tell them apart, compare the change with the trades printed at that price at the same moment. If the tape shows volume at the offer roughly matching the drop in ask size, the offer was consumed. If the size vanishes and nothing prints, it was pulled.

TEVO DOM, the free depth of market for NinjaTrader 8 published on this site, separates the two with its BID Δ and ASK Δ columns: they show orders added or pulled at each price over a short rolling window, and size taken by trades is not counted. A negative ASK Δ with no prints beside it is a cancellation, not an offer being absorbed by buyers.

Pulling and stacking: when the book changes without trades

Pulling describes size that disappears from a price before it is traded against, usually as the market approaches it. Stacking is the reverse: size that is added, often repeatedly, at or near the inside market. Both are visible only as changes in the ladder, which is why they are easy to misread on a fast screen.

Pulled offers above the market can mean that sellers no longer want to sell at those prices, which leaves less in the way of buyers. Stacked bids under the market can mean that buyers are willing to defend a price. Equally, they can mean that market makers are adjusting quotes to volatility, or that an algorithm is refreshing small orders many times per second. The change in the book is a fact; the reason behind it is a guess.

There is also a darker possibility. Entering bids or offers with the intent to cancel them before execution, known as spoofing, is a disruptive trading practice that the US Commodity Exchange Act explicitly prohibits, as the CFTC glossary notes. The rule exists because large displayed orders can mislead other traders. Prohibited does not mean absent, so treat big sizes several ticks away from the market as the least reliable information on the ladder.

  • Size pulled just before price touches it: the level was never tested, so do not count it as defended.
  • Size that returns after being partly traded: possible stacking, or a hidden order reloading.
  • Size that flickers in and out many times per second: usually automated quoting, rarely meaningful on its own.

What the DOM cannot tell you

The ladder has blind spots that no setting removes. The first is hidden quantity: exchanges accept orders that display only part of their size and refill as they are filled. The guide to iceberg orders and hidden liquidity explains what the tape can reveal about them; on the ladder alone they look like an ordinary small size.

The second is everything that is not yet in the book: stop orders waiting to be triggered, algorithms that only send orders when a condition is met, and traders who will decide in the next second. A thin offer can turn into a thick one instantly, and a thick bid can disappear the same way. The third is related markets. Index futures, their micro versions, ETFs and options are linked by arbitrage, so liquidity on your contract can change because of flows you do not see.

  • Intent: you see orders, not who placed them or why.
  • Hidden size: icebergs and other non-displayed quantity are not shown.
  • Future orders: stops and conditional orders appear only once they are triggered or sent.
  • Scale: a size that looks large on a micro contract may be ordinary on its E-mini, so compare like with like.
  • History: most DOMs only show the present; the book as it was a minute ago is gone unless something recorded it.

How to read the DOM: a practical routine

A routine keeps the ladder from becoming a distraction. The steps below assume that you have already decided, from your chart, which prices matter today. The DOM then answers one narrow question at those prices: is liquidity holding, being consumed, or stepping away?

  • Before the session, mark the levels that matter: prior day high and low, overnight range, value area edges from a volume profile, or levels from your own method.
  • Away from those levels, glance at the spread and the inside sizes only to judge whether the market is thinner or deeper than usual.
  • As price approaches a level, watch the size resting there: is it growing, holding, or being pulled as price gets closer?
  • When the level trades, check the tape: are aggressive orders being filled there while the price holds, or is the size disappearing and price moving through?
  • Decide in advance what would prove the reading wrong, such as a clean trade through the level, and size the position from that distance with a position size calculator rather than from the size on the ladder.
  • After the session, write down what you saw and what followed, so that impressions turn into evidence over time.

Limits and risks of trading from the DOM

Reading the book is a skill that improves with screen time, but some of its limits never go away.

  • Speed: in fast markets the ladder changes faster than anyone can read it, and decisions made from flicker tend to be impulsive.
  • Data quality: depth, update frequency and the number of levels depend on the exchange feed, the provider and the platform, so two screens can show slightly different books.
  • Order entry from the ladder: a click on the wrong row sends a real order. Practise on a simulation account first, and use confirmation features where your platform offers them.
  • No forecast: a heavy bid does not mean price goes up, and a thin offer does not mean it gets lifted.
  • Leverage: futures can lose more than a trader expects in seconds. Use a stop decided before entry and a size you can afford to lose.

Put it into practice

Frequently asked questions

What is the difference between the DOM and Level 2?

In futures trading the terms usually point to the same data: the depth of the order book beyond the best bid and offer. Level 1 is the inside market only; Level 2, or market depth, adds the size resting at several prices on each side. A DOM is the ladder display of that data, often combined with order entry.

Why does the size on the DOM change without any trades?

Because limit orders can be added, modified or cancelled at any time. A size change with no matching prints in Time & Sales is a change of intention, not a transaction. Tools that separate additions and cancellations from fills make this easier to see.

Can the DOM show iceberg orders?

Not directly. Only the displayed part of a hidden-quantity order appears on the ladder. Traders infer icebergs when more volume trades at a price than was ever displayed there, and that inference can be wrong.

Is a large bid on the DOM a support level?

Not by itself. A large bid can be cancelled before price reaches it, and spoofing exists even though it is prohibited. Size becomes informative once it is tested: if aggressive selling trades into it and the price holds, it was real at that moment.

Do I need a special data subscription to see market depth?

Usually, yes. Depth data depends on the exchange, your broker or data provider and your subscription; it may be billed separately or limited to a few levels. Check your provider’s terms for the contract you trade.

Sources

  1. SuperDOM (NinjaTrader 8) — NinjaTrader Help Guide
  2. Using SuperDOM Columns (NinjaTrader 8) — NinjaTrader Help Guide
  3. CFTC Glossary: limit order, market order, stop order, hidden quantity order, disruptive trading practice, cascade — U.S. Commodity Futures Trading Commission

Read next

All articles in this section : Order flow →

Written with the help of AI tools from official sources, then checked (figures, dates, sources) following our methodology. Methodology · Editorial policy · Report an error

Educational content. These indicators are not investment advice and guarantee no result. Futures trading involves a risk of loss that can exceed the initial investment. Terms of use · Disclaimers