File: WebAPI/market_data_2.proto
Describes separate orders at price levels.
Detailed DOM updates (snapshot or not) can come in several DetailedDOM messages. The first will have RealTimeMarketData.is_snapshot set, the rest will come as updates. The last will have DetailedDOM.is_detailed_dom_complete set. Updates must be applied in the order they listed in.
Update for a price level cannot be split into several messages. Updates for different price levels can come in separate messages. Order of updated price levels is not specified. This also implies that OPERATION_MOVE_FROM_PRICE and OPERATION_MOVE_TO_PRICE for an order can come in separate messages in arbitrary order.
CQG supports a limited number of prices for which it provides orders. This causes the following irregularities in Detailed DOM updates: 1. If an order moves out of supported price range or into it, only OPERATION_MOVE_FROM_PRICE or OPERATION_MOVE_TO_PRICE (correspondingly) is reported. 2. Price level which goes out of supported range is cleaned with a price level snapshot (DetailedDOMAtPrice message with is_snapshot set to true and empty orders). Price level which goes into supported range is reported as a price level snapshot.
Market Data may have losses. User is responsible for applying Detailed DOM updates in an error tolerant way.
Type: bool
Description: Note: True if this message is the last in the series of DetailedDOM updates (snapshot or not) for a contract.
Type: bool
Description: Note: True if the DOM is stale, i.e. has become obsolete and is not being updated at the moment. A new DetailedDOM message with is_stale = false will be sent when data is fixed.
Type: bool
Description: Note: If true, the data for this message should be entirely replaced with ‘price_levels’ contents.
Type: DetailedDOMAtPrice[]
Description: Price level updates.