Imported from previous forum
To provide support for the following market data information for an equity market:
-best bid price and aggregated quantity
-best offer price and aggregated quantity
-last trade price and quantity
we thought of using MDEntryType = Bid, Offer and Trade with AggregatedBook = Y, MarketDepth = Top of Book. For example, an initial snapshot aggregated best bid could be: price = 100, size = 20000 and MDEntryID = 1.
If the aggregated best bid changes to price = 110, size = 10000, we would send an Incremental Refresh message with MDUpdateAction = Change, MDEntryID = 1, price = 110, size = 10000.
That is, the MDEntryID is interpreted as resenting the tier of the book and MDUpdateAction = Change is used to handle all situations after the inital snapshot. This would work OK for a book of one tier but as the number of tiers increases this would generate too many updates. If the MDEntryID is interpreted as representing a specific price then the same logic has to be implemented to maintain a book of one tier as one for many tiers.
Best bid, offer and last trade are ‘summary’ information for a security like opening price, closing price etc. and is better handled in the same way using a simple MDUpdateAction = Change approach instead dealing with tiers in a book. A better alternative would be to add the following MDEntryTypes:
Best Bid
Best Offer
Last Trade
Clients that only require this information do not have to handle books and servers that do not want to provide aggregated book support can still provide this information.
[ original email was from Ryan Pierce - rpierce@taltrade.com ]
> Best bid, offer and last trade are ‘summary’ information for a security like opening price, closing price etc. and is better handled in the same way using a simple MDUpdateAction = Change approach instead dealing with tiers in a book. A better alternative would be to add the following MDEntryTypes:
>
> Best Bid
> Best Offer
> Last Trade
>
> Clients that only require this information do not have to handle books and servers that do not want to provide aggregated book support can still provide this information.
You can already do pretty much what you’re asking. At SIAC’s request, MDEntryID was made optional. You can just send new Bids, Offers, and Trades to your heart’s content without specifying any IDs, and they are interpreted as being the aggregated best bid, best offer, and last trade.
The following paragraph is taken from the FIX 4.2 spec for MsgType=X. Note that it just refers to quotes. I see no reason why trades cannot be represented the same way, however identifying trades with unique IDs makes it possible to bust or correct a trade other than the last one reported.
Alternately, in the case of displaying the best quotes of Market Makers or Exchanges, and not orders in an order book, MDEntryID can be omitted for simplification. In this case, a New Market Data Entry will replace the previous best quote for that side and symbol for the specified Market Maker or Exchange. Deletion of a Market Data Entry would not specify an MDEntryID or MDRefID, and would remove the most recent Market Data Entry for the specified symbol, side, and Market Maker or Exchange. A Change of a Market Data Entry would not specify an MDEntryID or MDRefID, and would replace the most recent Market Data Entry for the specified symbol, side, and Market Maker or Exchange.
In the near future we would like to support a MarketDepth greater than 1 for aggregated bids and offers and also for trades. In this case MDEntryID’s are required (even for the top level bid and offer) and the appropriate transactions New, Change and Delete would have to be supported to maintain the correct book picture in the client application. Using the new MDEntryTypes suggested below would avoid dealing with the top tier in different ways. A client application would be able to request only top level summary information or any combination of top level information and aggregated bids and offers and trades and the type of processing required would all be the same.
> > Best bid, offer and last trade are ‘summary’ information for a security like opening price, closing price etc. and is better handled in the same way using a simple MDUpdateAction = Change approach instead dealing with tiers in a book. A better alternative would be to add the following MDEntryTypes:
> >
> > Best Bid
> > Best Offer
> > Last Trade
> >
> > Clients that only require this information do not have to handle books and servers that do not want to provide aggregated book support can still provide this information.
>
> You can already do pretty much what you’re asking. At SIAC’s request, MDEntryID was made optional. You can just send new Bids, Offers, and Trades to your heart’s content without specifying any IDs, and they are interpreted as being the aggregated best bid, best offer, and last trade.
>
> The following paragraph is taken from the FIX 4.2 spec for MsgType=X. Note that it just refers to quotes. I see no reason why trades cannot be represented the same way, however identifying trades with unique IDs makes it possible to bust or correct a trade other than the last one reported.
>
> Alternately, in the case of displaying the best quotes of Market Makers or Exchanges, and not orders in an order book, MDEntryID can be omitted for simplification. In this case, a New Market Data Entry will replace the previous best quote for that side and symbol for the specified Market Maker or Exchange. Deletion of a Market Data Entry would not specify an MDEntryID or MDRefID, and would remove the most recent Market Data Entry for the specified symbol, side, and Market Maker or Exchange. A Change of a Market Data Entry would not specify an MDEntryID or MDRefID, and would replace the most recent Market Data Entry for the specified symbol, side, and Market Maker or Exchange.
>
>
>