The Lab

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from this space and version 1.5.11

...

  1. Process the individual updates contained within the market data message.
  2. Collect the orders by price level. This is redundant for a PriceDepth book, which is already aggregated.
  3. 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).
  4. 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.
Info

The presence of any entries outside the subscribed MDBookDepth is unintended behaviour.

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 MDSubFeedType specifies 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 MarketDatIncrementalRefresh message with MDFlags.IsSnapshot and MDFlags.GapDetected both 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

...

Info
titleExecutionAck
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
displayName4.0 Schema_ESP_OrderState.3
name4.0 Schema_ESP_OrderState.3

...

Order Submission and Modification

...