...
All - MDEntryID and MDUpdateAction are always provided.Delete - by definition the entry is no longer valid, so there is no need to redeliver the state of the outdated entry.New - all other available fields will always be provided.Change - typically, only the fields that have changed will be provided.
| Info |
|---|
| title | Performance considerations |
|---|
|
For Change events, the following principles apply: - If the venue also delivers unchanged fields in addition to those that trigger the update, these will also be supplied.
- In the typical case where the venue only delivers the modified fields, Whisperer does not re-populate the previously published fields.
|
MDEntryTypes
The following MDEntryTypes are used to manage the state of the Book:
Bid, OfferImpliedBid, ImpliedOffer - e.g. for CME - FXSpot+ via ebs_market_mdp3_sbe, ebs_market_mdp3_sbe_udp and FXLink via cme_mdp3_sbe_udpEmptyBook
All other MDEntryTypes represent monotonic attributes of the market data feed, for example Trade Ticker events, statistical measures (High, Low, Close etc).
Empty Book Handling
An empty book may occur in one of two ways:
- Explicit publication of an EmptyBook snapshot
- The implicit result of the incremental deletion of the last remaining entry(ies).
When clearing the book, only entries that form the book should be cleared. All other MDEntryTypes should be left alone.
| Expand |
|---|
|
| First MarketDataIncrementalRefresh |
|---|
| Message | Processed view |
|---|
| IsSnapShot | True | | MDUpdateAction | MDEntryType | MDEntryID | Price |
|---|
| New | Bid | 1 | 1.12 | | New | TradingSessionHighPrice | MF:TSHP | 1.15 |
| The Book will contain one entry, and the TradingSessionHighPrice lives outside the book. | MDEntryType | MDEntryID | Price |
|---|
Book |
|---|
| Bid | 1 | 1.12 | | Statistical Entries |
|---|
| TradingSessionHighPrice | MF:TSHP | 1.15 |
|
| Second MarketDataIncrementalRefresh |
|---|
| Message | Processed view |
|---|
| IsSnapShot | True | | MDUpdateAction | MDEntryType | MDEntryID | Price |
|---|
| New | Bid | 1 | 1.12 | | New | Bid | 2 | 1.14 |
| The Book will contain two entries, and the TradingSessionHighPrice is still active as it lives outside the book. | MDEntryType | MDEntryID | Price |
|---|
Book |
|---|
| Bid | 1 | 1.12 | | Bid | 2 | 1.14 | | Statistical Entries |
|---|
| TradingSessionHighPrice | MF:TSHP | 1.15 |
|
| Third MarketDataIncrementalRefresh |
|---|
| Message | Processed view |
|---|
| IsSnapShot | False |
|
| | MDUpdateAction | MDEntryID | MDEntryID | Price |
|---|
| Delete | 1 | 1 | 1.12 | | Delete | 2 | 2 | 1.14 |
| As both entries from the Book are deleted, leaving an implicit empty book. | MDEntryType | MDEntryID | Price |
|---|
Book |
|---|
| - | - | - | | Statistical Entries |
|---|
| TradingSessionHighPrice | MF:TSHP | 1.15 |
|
| Fourth MarketDataIncrementalRefresh |
|---|
| Message | Processed view |
|---|
| IsSnapShot | True | | MDUpdateAction | MDEntryType | MDEntryID | Price |
|---|
| New | Bid | 3 | 1.14 | | Change | TradingSessionHighPrice | MF:TSHP | 1.16 |
| Note that the TradingSessionHighPrice has remained in place after processing each of the previous messages because it lives outside the Book. | MDEntryType | MDEntryID | Price |
|---|
Book |
|---|
| Bid | 3 | 1.14 | | Statistical Entries |
|---|
| TradingSessionHighPrice | MF:TSHP | 1.16 |
|
| Fifth MarketDataIncrementalRefresh |
|---|
| Message | Processed view |
|---|
| IsSnapShot | True |
| | MDUpdateAction | MDEntryType | MDEntryID | Price |
|---|
| New | EmptyBook | EMPTYBOOK | 1.12 | | New | Bid | 2 | 1.14 |
| The explicit EmptyBook entry clears the Book, but the TradingSessionHighPrice remains in place. | MDEntryType | MDEntryID | Price |
|---|
Book |
|---|
| - | - | - | | Statistical Entries |
|---|
| TradingSessionHighPrice | MF:TSHP | 1.16 |
|
| Sixth MarketDataIncrementalRefresh |
|---|
| Message | Processed view |
|---|
| IsSnapShot | False | | MDUpdateAction | MDEntryType | MDEntryID | Price |
|---|
| New | Offer | 1 | 1.14 |
| The New Offer entry implicitly deletes the EmptyBook entry. | MDEntryType | MDEntryID | Price |
|---|
Book |
|---|
| Offer | 1 | 1.14 | | Statistical Entries |
|---|
| TradingSessionHighPrice | MF:TSHP | 1.16 |
|
|
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 being delivered by the Venue for Whisperer to process.
...