This is the unconflated, raw, view of the CLOB containing maximum market information. It is usually, but not always, ranked by price and then time.
Each MDEntry is a separate resting order in the Venue.
Orders which have MinQty (including FullAmount) or LotSize constraints will have a single NoOfSecSizes group populated for this MDEntry.
NoOfSecSizes | Number Of Orders | Qty | Bid | OrderDepth | Offer | Qty | Number Of Orders | NoOfSecSizes (MinQty) | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1.20011 | 1 | 1.20020 | 3 | 1 | 3 | ||||||||
| 2 | 1 | 2 | 1.20000 | 2 | 1.20020 | 1 | 1 | 1 | ||||||||
| 1 | 1 | 1 | 1.20000 | 3 | 1.20023 | 3 | 1 | 3 | ||||||||
| 2 | 1 | 2 | 1.19997 | 4 | 1.20029 | 1 | 1 | 1 | ||||||||
| 2 | 1 | 2 | 1.19997 | 5 | 1.20037 | 4 | 1 | 4 | ||||||||
| 5 | 1 | 5 | 1.19995 | 6 | 1.20042 | 1 | 1 | 1 | ||||||||
| 2 | 1 | 2 | 1.19987 | 7 | 1.20042 | 3 | 1 | 3 | ||||||||
| 1 | 1 | 1 | 1.19974 | 8 | 1.20042 | 1 | 1 | 1 | ||||||||
| 1 | 1 | 1 | 1.19961 | 9 | 1.20056 | 1 | 1 | 1 | ||||||||
| 5 | 1 | 5 | 1.19961 | 10 | 1.20063 | 1 | 1 | 1 | ||||||||
| 7 | 1 | 7 | 1.19910 | 11 |
|
| ||||||||||
|
| 12 |
|
| ||||||||||||
|
| 13 |
|
| ||||||||||||
|
| 14 |
|
| ||||||||||||
|
| 15 |
|
| ||||||||||||
NOTE: All the following CLOB examples are based off the above book data. Quantities in red denote FullAmount constraints.
An Order Depth book, where multiple orders at a given price/side are aggregated together. Depending on the Venue, NumberOfOrders or a full NoOfSecSizes group may also be provided.
Each MDEntry is an aggregated view of the liquidity available at that price level in the Venue.
If populated, the NoOfSecSizes group have the following attributes:
NoOfSecSizes (MinQty) | Number Of Orders | Qty | Bid | PriceDepth | Offer | Qty | Number Of Orders | NoOfSecSizes (MinQty) | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 1.20011 | 1 | 1.20020 | 4 | 2 | 3 | 1 | |||||||
| 1 | 2 | 2 | 3 | 1.20000 | 2 | 1.20023 | 3 | 1 | 3 | |||||||
| 2 | 2 | 2 | 4 | 1.19997 | 3 | 1.20029 | 1 | 1 | 1 | |||||||
| 5 | 1 | 5 | 1.19995 | 4 | 1.20037 | 4 | 1 | 4 | ||||||||
| 2 | 1 | 2 | 1.19987 | 5 | 1.20042 | 5 | 3 | 1 | 3 | 1 | ||||||
| 1 | 1 | 1 | 1.19974 | 6 | 1.20056 | 1 | 1 | 1 | ||||||||
| 5 | 1 | 2 | 6 | 1.19961 | 7 | 1.20063 | 1 | 1 | 1 | |||||||
| 7 | 1 | 7 | 1.19910 | 8 | ||||||||||||
| 9 | ||||||||||||||||
| 10 | ||||||||||||||||
For both book types, each NoOfSecSizes group, if available/relevant to the venue, will contain:
MDSecSize == order size (this will match the parent MDEntrySize for OrderDepth books)MinQty - indicates that that order is restricted to only match in amounts above a certain minimum quantity (for FullAmount, the order quantity), i.e. 0 (partial fills allowed) .. MDEntrySize (i.e. FullAmount).In either case, when clients attempt to sweep the book for a given quantity, they must ignore any NoOfSecSizes entries for greater MinQty amounts (not just FullAmount).
This also applies when calculating the limit price for VWAP orders. I.e. orders for lesser amounts will trade through this level.
Client trades may aggress (Taking) resting orders published in the orderbook. These orders should not be directly visible in the MarketData feed, but the resultant fills may be observed via the TradeTicker (if available). Depending on the venue, the client may achieve this by:
TimeInForce=FOK to indicate that the client wishes to place a FullAmount order.MinQty order - depending on other order parameters (Price, DiscretionPips, etc), this may be filled immediately by the venue without entering the book (like a FOK).Conversely, the client may use resting order (Making), again they may specify a MinQty for their order, up to the full order quantity for FullAmount; in the event of no immediate match, the order will be published in the market data feed.
This is not Bid/Offer spread, but the liquidity available at a pre-defined price offset from top of book. Usually issued in snapshot form, since the entire view changes with each change of top of book price in the base OrderDepth book.
NoOfSecSizes (MinQty) | Number Of Orders | Qty | Bid | Spread | Offer | Qty | Number Of Orders | NoOfSecSizes (MinQty) | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 1.20011 | 0.0000 | 1.20020 | 4 | 2 | ||||||||||
| 1 | 1 | 1.20001 | 0.0001 | 1.20030 | 8 | 4 | ||||||||||
| 6 | 13 | 1.19991 | 0.0002 | 1.20040 | 12 | 5 | ||||||||||
| 7 | 15 | 1.19981 | 0.0003 | 1.20050 | 17 | 8 | ||||||||||
| 10 | 22 | 1.19961 | 0.0005 | 1.20070 | 19 | 10 | ||||||||||
| 10 | 22 | 1.19911 | 0.0010 | |||||||||||||
| 11 | 29 | 1.19811 | 0.0020 | |||||||||||||
Presents VWAP prices for pre-defined volume rungs. Because the view aggregates multiple resting orders, a single aggressing order may well result in multiple partial fills, since you are effectively trading through the base Order Depth book.
NoOfSecSizes (MinQty) | Number Of Orders | Qty | Bid | Amount | Offer | Qty | Number Of Orders | NoOfSecSizes (MinQty) | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1.20011 | 1 | 1.20020 | 1 | ||||||||||||
| 2 | 1.20006 | 2 | 1.20020 | 2 | ||||||||||||
| 5 | 1.20002 | 5 | 1.20021 | 5 | ||||||||||||
| 10 | 1.19999 | 10 | 1.20025 | 10 | ||||||||||||
| 20 | 1.19988 | 20 | ||||||||||||||
| 50 | ||||||||||||||||
The prices at which pre-defined volumes may be filled in a single execution.
NoOfSecSizes (MinQty) | Number Of Orders | Qty | Bid | FullAmount | Offer | Qty | Number Of Orders | NoOfSecSizes (MinQty) | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 1.20011 | 1 | 1.20020 | 1 | 1 | 1 | ||||||||
| 2 | 1 | 2 | 1.20000 | 2 | 1.20020 | 2 | 1 | 2 | ||||||||
| 5 | 1 | 5 | 1.19995 | 5 | ||||||||||||
| 10 | ||||||||||||||||
| 20 | ||||||||||||||||
| 50 | ||||||||||||||||
Whilst terminology varies greatly from venue to venue, direct LP/Bank trading is generally offered via two liquidity models:
The liquidity is offered on a quotation negotiation basis, with the LP typically exercising Last Look against the dealt Quote IDs.
Quotes may have time-to-live constraints and be marked as Indicative or Tradeable.
When submitting orders, the validity of the specified ID is assessed by the venue, not Whisperer.
| Qty | Bid | PriceDepth | Offer | Qty | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1.20009 | 1 | 1.20020 | 5 | ||||||||||||
| 2 | 1.20000 | 2 | 1.20023 | 3 | ||||||||||||
| 2 | 1.19997 | 3 | 1.20029 | 1 | ||||||||||||
| 5 | 1.19995 | 4 | 1.20037 | 4 | ||||||||||||
| 5 | 1.19987 | 5 | 1.20042 | 1 | ||||||||||||
| 5 | 1.19974 | 6 | 1.20056 | 1 | ||||||||||||
| 10 | 1.19961 | 7 | 1.20063 | 1 | ||||||||||||
| 10 | 1.19910 | 8 | ||||||||||||||
| 20 | 1.19900 | 9 | ||||||||||||||
| 10 | ||||||||||||||||
| 11 | ||||||||||||||||
| 12 | ||||||||||||||||
| 13 | ||||||||||||||||
| 14 | ||||||||||||||||
| 15 | ||||||||||||||||
Trading is expected to be an explicit sweep of the published quote, with successive individual orders at each rung, in sequence.
Each order is executed individually, when the client has utilised a rung, it cannot be re-used and subsequent trades need to utilise the liquidity from the remaining rungs.
Depending on the LP, Clients may also be able to submit a VWAP order in order to combine multiple individual clips into a single trade and reduce per-ticket trading costs.
The client is typically expected to provide their calculated VWAP rounded bank favour, but some LPs mandate different rounding rules. Rounding modes are as follows:
TODO
| Qty | Bid | FullAmount | Offer | Qty | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1.20009 | 1 | 1.20020 | 1 | ||||||||||||
| 2 | 1.20005 | 2 | 1.20020 | 2 | ||||||||||||
| 5 | 1.20001 | 5 | 1.20020 | 5 | ||||||||||||
| 10 | 1.19998 | 10 | 1.20024 | 10 | ||||||||||||
| 20 | 1.19989 | 20 | ||||||||||||||
| 50 | 1.19950 | 50 | ||||||||||||||
QuoteRequest.NoUnderlyings groupMassQuote is invalidated after a single trade (because of the VWAP), however in some cases, the LP will allow multiple trades against a single MassQuote rung so long as the aggregate total, across both sides, does not exceed the rung size.The form of the liquidity offered is bilaterally agreed between the Bank and the Client, who must interpret and use the MassQuote messages accordingly.
Minimal configuration is required in Whisperer, although clients may wish to apply a naming convention for their venues sessions.
Whisperer uses MassQuote messages for ESP pricing, and trade requests are submitted via the NewOrderMultileg message. OrdType=PreviouslyQuoted is always supported, other order types may also be available, depending on the LP.
The NewOrderMultileg.QuoteID field should be used as follows:
QuoteEntryID of the target rung must be specified.QuoteID of the overall MassQuote ladder must be used.ESP Market orders ares sometimes offered by an LP. As with a standard Market orders, the client provides their order quantity without a price, however a QuoteID must still be specified, so unlike a standard Market order, there is less risk of uncontrolled slippage on the the actual price achieved.
Instead, the LP will use the the provided quantity and QuoteID to compute the price (either VWAP or rung) on the Customer's behalf.
Support for VWAP and Market order types varies across Venue. |