Page History
...
Standard incremental processing is expected, with clients making direct reference to NoMDEntries[*].MDUpdateAction and applying New/Change/Delete actions against each associated MDEntryID. It is important that the NoMDEntries repeating groups are processed in the exact order given.
The population of the NoMDEntries group will vary with the MDUpdateAction as follows:
- All:
MDEntryIDandMDUpdateActionare always provided. - New: all other available fields will always be provided.
- Change: typically those fields that are changed will be provided. For performance reasons, Whisperer does not currently reference cached fields to replicate the coverage of the New.
- Delete: by definition the entry is no longer valid, so there is no need to redeliver the state of the outdated entry.
Book Depth
Where clients subscribe for custom book depths against a given Venue, it is important to understand that entries that are pushed below the requested depth by more competitive orders will not necessarily result in an explicit Delete for the client to process. I.e. such movements may be treated as an implicit delete by the Venue with the expectation that such entries are identified and deleted by the client as part of their book management workflow.
Book Management
Please refer to Liquidity Representation for an overview of CLOB market data structures.
...
In order to ensure a consistent processing model across both book types, the client may implement an efficient equivalent of the following:
- Process the individual updates contained within the market data message.
- Collect the orders by price level. This is redundant for a PriceDepth book, which is already aggregated.
- Sort prices for each side of the book best to worst. I.e. The Client always sorts the book by price for each side (not MDEntryID).
- For each price level at or above the subscribed MDBookDepth, sort MDEntryIDs smallest (oldest) > largest (newest). Again, this is redundant for a PriceDepth book, which is already aggregated. I.e.
...
- the MDEntryID is a secondary key for OrderDepth books, to sort multiple orders at a give price level
...
- .
- Delete any entries that have moved below the subscribed MDBookDepth.
Orders
The Orders workflow is always normalised and consistently implements the state transition model as outlined in the diagram below. Where Venue events are absent, synthetic equivalents are generated by Whisperer in their place. These messages are easily discernible by reference to the TradingFlags.IsSynthetic field.
...