Page History
...
EndMarker Messages
For CLOB Priucing Pricing sessions, EndMarkers are sent to the Client in two contexts:
...
SecurityStatus EndMarkers
An On session establishment, an EndMarker message is sent by Whisperer to mark the end of the initial set of SecurityStatus messages sent after the venue session is established. It . This serves as an indication to the Client that the status full list of all available instruments, and their status has been published.
| Note | ||
|---|---|---|
| ||
The The |
| Note | ||
|---|---|---|
| ||
EndMarker messages are not utilised for intra-day SecurityStatus updates, (e.g. for ValueDateRoll), clients are expected to respond to these as soon as they are published. |
MarketDataIncrementalRefresh EndMarkers
...
- On starting the subscription, the local book is regarded as empty. For the the first update the client receives, all MDEntries will specify
NoMDEntries[*].MDUpdateAction = New, so the value of andMDFlags.IsSnapshotis immaterial in this case and Whisperer may mark the first update as a snapshot, or not, depending on the venue=TRUE. - Snapshots may be delivered at any time in the life of the subscription. This is particularly important for connections to UDP multicast feeds where dropped packets must trigger book/session recovery.
...
All-MDEntryIDandMDUpdateActionare 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 | ||
|---|---|---|
| ||
For Change events, the following principles apply:
|
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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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.
...
- 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. theMDEntryIDis a secondary key for OrderDepth books, to sort multiple orders at a give price level.
| Info |
|---|
The presence of any entries outside the subscribed |
Book Integrity
...
- Whisperer ensures that books will never exceed any specific requested depth - when when implicit deletes are detected, the explicit Delete MDEntry is placed before the New that triggers it.
- Two MDEntries in a PriceDepth book may momentarily have the same price - this typically occurs when multiple MDEntries on one side of the book change their prices up or down, such that the first MDEntry moves to a price level occupied by a different MDEntry that has yet to have it's price modified.
...
As well as the EndMarker behaviour outlined above, the client needs to be aware of the following unique attributes of UDP Market Data feeds:
- Line Arbitrage - the
MDSubFeedTypespecifies the UDP market data source for venues which utilise A/B circuits. - Gap Detection - in the event that a UDP message gap occurs, this is reported to the Client User immediately it is detected for each affected subscription, via the publication of a EmptyBook
MarketDatIncrementalRefreshmessage withMDFlags.IsSnapshotandMDFlags.GapDetectedboth set to TRUE. - Gap Recovery - the gap will be resolved by the Gateway utilising the venue's standard Late-joiner logic, and the next message will be a fresh Snapshot (typically, but not always, representing the full book). Thereafter Incrementals will be published as normal.
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.
| Info | ||
|---|---|---|
| ||
| It's worth remembering that while all inbound messages will adhere to the same state transition model, there will necessarily be Venue-specific variation in whether and how outbound ExecutionAck messages are handled. |
Order State Transition Diagram
| Gliffy Diagram | ||||
|---|---|---|---|---|
|
...
Order Submission and Modification
...