Skip to content
All library documents

Limits of Inferring Market and Iceberg Orders from Market Data

Article Quant Q&A · Author: morleyc

Summary

The exchange explains what trade, quote, and order book feeds reveal about order types. Public feeds generally do not label market orders or iceberg orders. Matching trades with identical timestamps may help approximate market order activity, but it can confuse marketable orders with limit orders placed deep in the book. Iceberg detection is especially difficult because hidden quantity is intentionally concealed and venues do not generally publish its flag or reserve size.

It distinguishes Level 1 trade and best bid/ask data from full depth-of-book feeds, which expose resting orders and require book reconstruction, and Level 2 data, which aggregates volume by price level. The answers describe iceberg identification using order-level logs and patterns in traded size and order timing, but those clues do not guarantee reliable classification. Data availability, feed coverage, consolidation, and cost vary; the discussion is a general account rather than a provider comparison or a validated detection method.

Key ideas

  • Level 1 feeds typically show trades and the best bid and ask, rather than the full book.
  • Depth-of-book data exposes resting orders and can support detailed book analysis after reconstruction.
  • Level 2 feeds aggregate displayed volume across price levels.
  • Trade timestamps can support rough market-order inference, but deep-book limit orders may look similar.
  • Iceberg orders are difficult to label because venues conceal their reserve quantity and definitions vary.

Tags

Full text
# Determine market and ice-berg order types from live trade and quote data


# Determine market and ice-berg order types from live trade and quote data












I have tick and quote live data from Polygon and Interactive Brokers.

Looking at the conditions I can't see info on market or iceberg orders:

- https://polygon.io/docs/get_v1_meta_conditions__ticktype__anchor

- https://www.interactivebrokers.com/en/index.php?f=7235

Per this related question Market, Limit and Cancellation orders it defines order types within time frames.

Are market and iceberg order conditions transmitted to the exchange and relayed by providers, if so which ones please?

Or is it up to us to determine by the trades and order book at the time of trade?

Update

I understand ice bergs are kept private, as this is their selling point and premium charged. Well noted.

I have the quotes from https://polygon.io/docs/websockets/ws_stocks_Q_anchor this is different from the "depth of book data" mentioned? Do data providers offer this?

## Answer by deftfyodor (score 3, accepted)

https://quant.stackexchange.com/a/64363

In general you cannot determine this information from the public data feeds- the purpose of Iceberg orders in particular is to be hidden and difficult to detect. Also, there isn't really a standardized definition of an Iceberg, so there would be no consistent way of performing this labeling. If you could reliably identify them though, there is good money in that :). You could get an approximation of market order identification by combining trades in a given symbol that have identical timestamps- however that will treat both market orders and deep-book limit orders the same way.

Update

In regard to the updated question- depth of book data is much more extensive than what is provided at the data vendors you mentioned. The most common type of available market data is so-called TAQ (trade and quote) or NBBO.

Generally, providers of this so-called Level 1 or L1 data will offer all trades, as well as the best available bid and ask price, along with the volume available at that price. In the case of Polygon, the data comes from the consolidated feed which means that it includes trades from all public exchanges, as well as the best bid and ask from all exchanges.

Depth of book data, on the other hand, would individually show every order which is currently resting on the order book for each exchange. Generally to work with depth of book data, you would need to reconstruct the order book yourself and "emulate" the matching engine to figure out what the current best bid or ask are. Depth of book data tends to be harder to work with and is much bigger, but on the other hand it opens up new kinds of analysis that you can't do with L1 data, such as analyzing the structure of the order book and the composition of individual orders in it.

There are compromise products, so-called Level 2 or L2 data, which will already have the order book creation done, and will give you the aggregate volume at each level of the book. You can see this, for example, in the crypto feed at polygon.io, or the L2 proprietary feeds offered by most exchanges.

Currently, there is no standard consolidated feed for either L2 or DOB data, and generally users who want it will need to get the data themselves and perform the consolidation suitable to their own purposes. Right now there is a proposal that is working it's way through the SEC to make L2 data more easily available, but the state of affairs now is that it's still quite expensive for an individual to work with.

## Answer by Sergei Rodionov (score 1)

https://quant.stackexchange.com/a/64371

- Iceberg order detection requires access to the full order log. Last trade and Level 1 (top of book) is not sufficient.

- Trading venues never translate iceberg order flag or non-displayed size in real-time feeds. This information is often obfuscated even in archive products.

- Generally, there are two criteria to detect icebergs from the order feed: a) traded quantity vs order quantity and b) new order timestamp vs preceding order timestamp.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.