Book Management Mechanics - Multiple-Depth Book

This section applies to CQG products that have a multiple-depth book. Client systems must determine the book-depth for an instrument from tag 264-MarketDepth in the Security Definition (tag 35-MsgType=d) message.

The examples in this section illustrate the mechanics of a 5-deep book. All books that are not top-of-book will use the same mechanics. For example, a 3-deep book will use the same mechanics as described in this section. For top-of-book only, refer to “Book Management Mechanics -Top-of-Book”.

CQG provides a multiple-depth book for several products. Client systems must determine the book-depth for an instrument from tag 264-MarketDepth in the Security Definition (tag 35-MsgType=d) Message. The aggregate book reports summarized order quantities and order counts at a given price level. The depth represents the number of price levels that are supported in the feed, which may have the following values:

      unlimited

      size=1

The view can be visualized as a number of rows in a table for each of the bid and ask sides. On each side, there are a number of rows showing the quantity available at a number of price levels. An aggregate depth book is sequenced by price, descending for bid and ascending for ask.

CQG provides the best bid and ask in the market for each contract. Trade details and instrument status are provided in separate data blocks. The following table illustrates the types of information that can be displayed:

Top of Book - Best Bid/Ask

Bid

Ask

Quantity

Price

Price

Quantity

100

9427.50

9428.00

40

500

9427.00

9428.50

600

750

9426.50

9429.00

850

400

9426.00

9429.50

350

300

9425.50

9430.00

150

 

CQG maintains the Aggregate Depth view with the following data blocks:

      Add - to create/insert a new price at a specified price level (tag 279 MDUpdateAction=0)

      Change - change quantity for a price at a specified price level (tag 279 MDUpdateAction=1)

      Delete - remove a price at a specified price level (tag 279 MDUpdateAction=2)

An Aggregate book is built from a series of data blocks which indicate whether an entry is to be inserted (Add), changed (Change), or removed (Delete). All data blocks are issued for a specified entry type (tag 269), price (tag 270), and price level (tag 1023). The incremental instruction approach assumes the use of the Market Data Incremental Refresh (tag 35-MsgType =X) message. The Bid and Ask sides are updated independently with separate data blocks. The practice of sending separate data blocks provides efficiencies by allowing only the bid or ask to be sent, based on which side has changed, rather than both sides.

CQG sends an add data block if there is a new price level. Client systems should then shift price levels down. CQG will send explicit deletes when needed.

CQG sends a delete data block to remove a price level in the book. Client systems should shift prices below the data block up to the price level vacated by the deleted price level. If available, an add data block will be sent to fill in the last price level.

The change data block is sent to update characteristics of a price level without changing the price itself, or impacting any other prices on the book. The change data block is sent to update the order count and / or quantity for a price level. The change data block is not sent when the price changes at a given price level.

In general, if a trade occurs, CQG will send a delete or change data block to update the book. The trade data block itself is not used to update the order book.

Basic Book Update Data Block

A FIX message sent to update the top of book will update one side only. The tags normally sent for a book update data block are:

      tag 279-MDUpdateAction

      tag 269-MDEntryType

      tag 83-RptSeq

      tag 1023-MDPriceLevel

      tag 273-MDEntryTime

      tag 271-MDEntrySize

      tag 270-MDEntryPx

      tag 48-SecurityID

Empty Book

The 269-MDEntryType=J is called ‘Empty Book’.

This entry type instructs the user to clear all entries from both bids and asks for the particular instrument (SecurityID). The following tags are provided in ‘empty book’ data block:

      tag 269-MDEntryType

      tag 273-MDEntryTime

      tag 83-RptSeq

      tag 22-SecurityIDSource

      tag 48-SecurityID

This data block is sent only for ‘unlimited’ book on incremental channel. Implied and top-of-book books do not receive it.

No other MDEntryTypes are sent in the same message for the same instrument when MDEntryType=J is present.