· HEATMAPS

Why heatmap depth stops at ten levels on some feeds

A heatmap can only draw the price levels its feed sends, and some futures feeds stop at ten. One ES example shows what that hides and how to check your feed.

SHORT ANSWER

A heatmap colours only the price levels its data feed sends. CME publishes its market by price book ten levels deep for most futures, and some vendors pass on only those ten. Orders resting further out still exist, but the chart has no data for them until price moves close enough. A full depth feed reports every price that holds orders.

Heatmap depth stops at ten levels on some feeds because the chart can only colour prices that the data feed reports. A liquidity heatmap is a chart that colours each price by the size resting there over time. If the feed sends ten bid levels and ten offer levels, the eleventh bid stays blank, whatever rests there. This note works through one ES example and shows what that gap looks like on the chart. The note on level 1 and level 2 data in plain terms covers the difference between top of book and depth.

Where the ten level limit comes from

CME Group publishes futures data on its MDP 3.0 feed in two book formats. The market by price book, or MBP, adds up the resting orders at each price and sends one total per price. For most futures, CME sends that book ten levels deep on each side. The market by order book, or MBO, sends each order on its own and covers every price that holds orders.

A level is a price that holds resting orders. It is not the same as a tick. If a price near the inside has no orders, the feed skips it, and the ten levels reach further from the inside.

A data vendor reads the exchange feed and passes it on to your platform. Some vendors send the ten MBP levels. Others build full depth from the order-level data. Some sell only the best bid and offer. The heatmap draws whatever the vendor delivers.

Ten levels in ES

Here is an invented book in the E-mini S&P 500 future, ES, where the tick size is 0.25 points. In this example every tick on the bid side holds orders, so ten levels equal ten ticks. All numbers are an example.

At 10:00 the best bid is 5,050.00. The feed reports bids at ten prices, from 5,050.00 down to 5,047.75. A trader rests a 400-lot bid at 5,046.00, which is 17 ticks below the best bid. It is the eighteenth bid level.

TimeBest bidTenth bid level400-lot at 5,046.00 on a ten-level feed
10:005,050.005,047.75Not shown
10:045,048.505,046.25Not shown
10:065,048.255,046.00Shown
10:095,049.755,047.50Not shown

On a ten-level heatmap, the band at 5,046.00 starts at 10:06 and ends before 10:09. Nobody placed or cancelled the order at those times. The order rested for the whole nine minutes. The band started when the best bid fell to 5,048.25, which made 5,046.00 the tenth level. It ended when the best bid rose again and pushed 5,046.00 out of range.

On a full depth feed, the same 400-lot draws one band from 10:00 to 10:09. Its start and end then match the times the order joined and left the book.

Why the edge of the chart misleads

A band that starts at the outer edge of the depth looks like a new order. In the example it was an old order that came into range. The reverse also happens. A band that ends at the edge looks like a cancel, but the order may still rest one level beyond what the feed reports.

The width of the ten levels also changes during the day. In a deep ES book, ten levels cover 2.25 points from the best bid. In a thinner contract with empty prices between orders, the same ten levels can cover twice that distance. So the coloured part of the heatmap changes height as the book changes, and the chart does not mark where the data ends.

The note on orders on a heatmap that never trade covers large bands far from price. On a ten-level feed, the chart draws none of those bands until price comes within ten levels of them.

What full depth adds

A full depth feed reports every price that holds resting orders. Order-level data goes further and reports each order with its own ID. The note on what market by order data adds to a heatmap covers that second step.

Full depth also means more messages. Every size change at every price is one book update. A full depth stream in ES also reports each change beyond the tenth level, so it carries more updates than a ten-level stream.

What platforms list

MotiveWave lists an Order Heatmap that uses market depth. Its connection table says CQG generally sends 10 levels, while dxFeed and Rithmic send full depth. ATAS notes that its US$19 dxFeed option is not heatmap depth, and it lists nonprofessional CME depth at US$39 a month per exchange. GoCharting lists a CME bundle with top-of-book data and marks its full depth CME bundle as Coming Soon. Quantower says market depth depends on your data entitlement. The costs page sets out depth fees for each platform.

A check you can run

Open your DOM ladder during a quiet minute and count the bid prices that show a size. If the count stops at ten, your feed sends ten levels. Then watch the lowest bid row as price falls one tick. If a large size appears in that row the moment price ticks down, the order may have rested there before, outside the range your feed reports.

Questions

Why does my heatmap only show ten price levels?

Your data feed probably sends ten levels on each side. CME publishes its market by price book ten levels deep for most futures, and a heatmap cannot colour a price the feed never reports.

Are ten levels the same as ten ticks?

No. A level is a price that holds resting orders. If some prices near the inside have no orders, ten levels reach further than ten ticks.

Why do large orders appear at the edge of a heatmap?

On a ten-level feed, an order further out has no data until price moves close enough for its price to become one of the ten levels. The band then starts on the chart even though the order rested there earlier.

Which feeds send full depth?

MotiveWave's connection table lists full depth for dxFeed and Rithmic and generally 10 levels for CQG. Depth also depends on the data subscription you pay for, so check both.

Educational content about market data and charting software. It is not trading or investment advice. Trading involves risk.

MORE NOTES