Pricing

Subscription Management

SecurityStatus Messages

Security Status messages communicate static attributes of each instrument supported by the Venue and are delivered on successful connection to a CLOB Pricing session.

Should Whisperer be notified of changes for an Instrument, these messages will also be used to deliver intra-day updates. Typical scenarios are value/trade date rolls & changes in trading status (open/halted).

The usage of specific fields is elaborated below:

MarketData Messages

Incremental Processing

Whisperer delivers market data in the form of incremental updates, wherever possible. When a venue message is known to be a snapshot, this is reflected with MDFlags.IsSnapshot = TRUE and  NoMDEntries[*].MDUpdateAction = New

Standard incremental processing is expected, with clients making direct reference to NoMDEntries[*].MDUpdateAction and applying New/Change/Delete actions against each associated MDEntryID.

The population of the NoMDEntries group will vary with the MDUpdateAction as follows:

Book Management

Please refer to Liquidity Representation for an overview of CLOB market data structures.

OrderDepth books are characterised by there being the possibility of many orders at each Bid or Offer price point. In order to ensure that this book is maintained correctly the Client must order it first by Price (best to worst), and then by Age (oldest orders first) for each given price.

PriceDepth books are a simplification of this since we know that they are an aggregated view of the raw OrderDepth data, so there is only ever a single entry for any given Bid or Offer price point. The same applies for other aggregated views - Spread, VWAP etc.

The MDEntryID is always used as follows for the two book types:


In order to ensure a consistent processing model across both book types, the client may implement an efficient equivalent of the following:

  1. Collect the orders by price level (this is redundant for a PriceDepth book, which is already aggregated).
  2. Sort prices for each side of the book best to worst.
  3. For each price level sort MDEntryIDs smallest (oldest) > largest (newest).

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.

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


Order Submission and Modification

Order Cancellation