Top-Of-Book: Using MDUpdateAction(279) = Change(1) or New(0) instead of Overlay(5)

Imported from previous forum

Hi All
This is with regards to disseminating a Top-Of-Book service via FIX/FAST. As per the http://fixprotocol.org/documents/2518/MDOWG_Book_Mgt%20v20.doc document, the recommended practice is to publish the Top-Of-Book updates using MDUpdateAction(279) of Overlay(5) instructing the recipients to always repaint their books with the new picture. This is done (I believe) to avoid problems with publishing a top-of-book picture which might be in an intermediate state.

However in order to maintain a certain level of support for clients to migrate in to the new service, we are thinking of using MDUpdateAction(279) of New(0) and /or Change(1) to communicate the top-of-book update.

In short the propsed mechanism is as follows:
Option 1
Communicate the Top-Of-Book picture always with MDUpdateAction(279) of New(0). Clients are instructed to repaint their order book always with the new entry that is published if they are connected to the Top-Of-Book service.

Option 2
Communicate the Top-Of-Book picture with New(0), Change(1) and Delete(2). At start of day or when the book is empty and the first Top-Of-Book appears, it will be communicated as MDUpdateAction(279) = New(0). Any subsequent update to Top-Of-Book picture will be published as a ‘Change’ action. At any point if the book becomes completely empty, then it will be published as a MDUpdateAction(279) = Delete(2).

What do you think about this method? Does it look acceptable? Would you prefer Option 1 over Option 2 or vice-versa?

Thanks in advance

If you want to avoid 5=Overlay, you need to use 0=New, i.e. option 1 instead. Change is intended to leave the price unchanged which may or may not be the case. Hence you would need to send a 2=Delete followed by a 0=New in case the price is different. This increases the message volume unnecessarily. With option 1 the user can use the same semantics as with depths > 1 if he receives 0=New. He shifts all price levels > 1 one up (no action needed for TOB) and fills the gap with the new information.
Regards,
Hanno.

Hi All
This is with regards to disseminating a Top-Of-Book service via FIX/FAST. As per the http://fixprotocol.org/documents/2518/MDOWG_Book_Mgt%20v20.doc document, the recommended practice is to publish the Top-Of-Book updates using MDUpdateAction(279) of Overlay(5) instructing the recipients to always repaint their books with the new picture. This is done (I believe) to avoid problems with publishing a top-of-book picture which might be in an intermediate state.

However in order to maintain a certain level of support for clients to migrate in to the new service, we are thinking of using MDUpdateAction(279) of New(0) and /or Change(1) to communicate the top-of-book update.

In short the propsed mechanism is as follows:
Option 1
Communicate the Top-Of-Book picture always with MDUpdateAction(279) of New(0). Clients are instructed to repaint their order book always with the new entry that is published if they are connected to the Top-Of-Book service.

Option 2
Communicate the Top-Of-Book picture with New(0), Change(1) and Delete(2). At start of day or when the book is empty and the first Top-Of-Book appears, it will be communicated as MDUpdateAction(279) = New(0). Any subsequent update to Top-Of-Book picture will be published as a ‘Change’ action. At any point if the book becomes completely empty, then it will be published as a MDUpdateAction(279) = Delete(2).

What do you think about this method? Does it look acceptable? Would you prefer Option 1 over Option 2 or vice-versa?

Thanks in advance

There appears to be a slight contradiction in the Recommended Practices for Book Management (v2.00). On page 8 it seems that the recommended MDUpdateAction for Top of Book feeds is Overlay (5). However, in section 3.2 (page 20) it appears that an MDUpdateAction of New (0) is used for the Top of Book feed.

What is the recommendation for Top of Book feeds? Is it Overlay?

If you want to avoid 5=Overlay, you need to use 0=New, i.e. option 1 instead. Change is intended to leave the price unchanged which may or may not be the case. Hence you would need to send a 2=Delete followed by a 0=New in case the price is different. This increases the message volume unnecessarily. With option 1 the user can use the same semantics as with depths > 1 if he receives 0=New. He shifts all price levels > 1 one up (no action needed for TOB) and fills the gap with the new information.
Regards,
Hanno.

Hi All
This is with regards to disseminating a Top-Of-Book service via FIX/FAST. As per the http://fixprotocol.org/documents/2518/MDOWG_Book_Mgt%20v20.doc document, the recommended practice is to publish the Top-Of-Book updates using MDUpdateAction(279) of Overlay(5) instructing the recipients to always repaint their books with the new picture. This is done (I believe) to avoid problems with publishing a top-of-book picture which might be in an intermediate state.

However in order to maintain a certain level of support for clients to migrate in to the new service, we are thinking of using MDUpdateAction(279) of New(0) and /or Change(1) to communicate the top-of-book update.

In short the propsed mechanism is as follows:
Option 1
Communicate the Top-Of-Book picture always with MDUpdateAction(279) of New(0). Clients are instructed to repaint their order book always with the new entry that is published if they are connected to the Top-Of-Book service.

Option 2
Communicate the Top-Of-Book picture with New(0), Change(1) and Delete(2). At start of day or when the book is empty and the first Top-Of-Book appears, it will be communicated as MDUpdateAction(279) = New(0). Any subsequent update to Top-Of-Book picture will be published as a ‘Change’ action. At any point if the book becomes completely empty, then it will be published as a MDUpdateAction(279) = Delete(2).

What do you think about this method? Does it look acceptable? Would you prefer Option 1 over Option 2 or vice-versa?

Thanks in advance

Both can be used, I would recommend Overlay as it saves you from having to check whether Depth=1, in which case Overlay and New can be implemented the same way. It may have been an oversight that New was used in one place.

There appears to be a slight contradiction in the Recommended Practices for Book Management (v2.00). On page 8 it seems that the recommended MDUpdateAction for Top of Book feeds is Overlay (5). However, in section 3.2 (page 20) it appears that an MDUpdateAction of New (0) is used for the Top of Book feed.

What is the recommendation for Top of Book feeds? Is it Overlay?

If you want to avoid 5=Overlay, you need to use 0=New, i.e. option 1 instead. Change is intended to leave the price unchanged which may or may not be the case. Hence you would need to send a 2=Delete followed by a 0=New in case the price is different. This increases the message volume unnecessarily. With option 1 the user can use the same semantics as with depths > 1 if he receives 0=New. He shifts all price levels > 1 one up (no action needed for TOB) and fills the gap with the new information.
Regards,
Hanno.

Hi All
This is with regards to disseminating a Top-Of-Book service via FIX/FAST. As per the http://fixprotocol.org/documents/2518/MDOWG_Book_Mgt%20v20.doc document, the recommended practice is to publish the Top-Of-Book updates using MDUpdateAction(279) of Overlay(5) instructing the recipients to always repaint their books with the new picture. This is done (I believe) to avoid problems with publishing a top-of-book picture which might be in an intermediate state.

However in order to maintain a certain level of support for clients to migrate in to the new service, we are thinking of using MDUpdateAction(279) of New(0) and /or Change(1) to communicate the top-of-book update.

In short the propsed mechanism is as follows:
Option 1
Communicate the Top-Of-Book picture always with MDUpdateAction(279) of New(0). Clients are instructed to repaint their order book always with the new entry that is published if they are connected to the Top-Of-Book service.

Option 2
Communicate the Top-Of-Book picture with New(0), Change(1) and Delete(2). At start of day or when the book is empty and the first Top-Of-Book appears, it will be communicated as MDUpdateAction(279) = New(0). Any subsequent update to Top-Of-Book picture will be published as a ‘Change’ action. At any point if the book becomes completely empty, then it will be published as a MDUpdateAction(279) = Delete(2).

What do you think about this method? Does it look acceptable? Would you prefer Option 1 over Option 2 or vice-versa?

Thanks in advance

Thanks Hanno.

Do you have a view on what market data vendors would find the easiest to code to? Given that New has been around for a while (Overlay is a relatively newer value), would vendors find it easier to code to New?

Both can be used, I would recommend Overlay as it saves you from having to check whether Depth=1, in which case Overlay and New can be implemented the same way. It may have been an oversight that New was used in one place.

There appears to be a slight contradiction in the Recommended Practices for Book Management (v2.00). On page 8 it seems that the recommended MDUpdateAction for Top of Book feeds is Overlay (5). However, in section 3.2 (page 20) it appears that an MDUpdateAction of New (0) is used for the Top of Book feed.

What is the recommendation for Top of Book feeds? Is it Overlay?

If you want to avoid 5=Overlay, you need to use 0=New, i.e. option 1 instead. Change is intended to leave the price unchanged which may or may not be the case. Hence you would need to send a 2=Delete followed by a 0=New in case the price is different. This increases the message volume unnecessarily. With option 1 the user can use the same semantics as with depths > 1 if he receives 0=New. He shifts all price levels > 1 one up (no action needed for TOB) and fills the gap with the new information.
Regards,
Hanno.

Hi All
This is with regards to disseminating a Top-Of-Book service via FIX/FAST. As per the http://fixprotocol.org/documents/2518/MDOWG_Book_Mgt%20v20.doc document, the recommended practice is to publish the Top-Of-Book updates using MDUpdateAction(279) of Overlay(5) instructing the recipients to always repaint their books with the new picture. This is done (I believe) to avoid problems with publishing a top-of-book picture which might be in an intermediate state.

However in order to maintain a certain level of support for clients to migrate in to the new service, we are thinking of using MDUpdateAction(279) of New(0) and /or Change(1) to communicate the top-of-book update.

In short the propsed mechanism is as follows:
Option 1
Communicate the Top-Of-Book picture always with MDUpdateAction(279) of New(0). Clients are instructed to repaint their order book always with the new entry that is published if they are connected to the Top-Of-Book service.

Option 2
Communicate the Top-Of-Book picture with New(0), Change(1) and Delete(2). At start of day or when the book is empty and the first Top-Of-Book appears, it will be communicated as MDUpdateAction(279) = New(0). Any subsequent update to Top-Of-Book picture will be published as a ‘Change’ action. At any point if the book becomes completely empty, then it will be published as a MDUpdateAction(279) = Delete(2).

What do you think about this method? Does it look acceptable? Would you prefer Option 1 over Option 2 or vice-versa?

Thanks in advance

No, I cannot speak for the vendors. Maybe some of them can post here to get a view. Overlay seems more straightforward as it unconditionally replaces previous information in that “slot” (price level, TOB, indicative auction price,…).

Thanks Hanno.

Do you have a view on what market data vendors would find the easiest to code to? Given that New has been around for a while (Overlay is a relatively newer value), would vendors find it easier to code to New?

Hi Hanno/Lalin
Thank you very much for the answers so far. I’ll wait to see if there are any updates from the vendors.

However one additional question which I have with regards to the usage of Overlay is the deletion of price points. If a price point is to be deleted and there are no other orders at any price point in that side of the order book, should it be communicated as a Delete action or an Overlay without size?

I was going through the implementation guide and could not find a clear answer for Top Of Book service. For a Price Depth, understandably, a delete action is published.

No, I cannot speak for the vendors. Maybe some of them can post here to get a view. Overlay seems more straightforward as it unconditionally replaces previous information in that “slot” (price level, TOB, indicative auction price,…).

Thanks Hanno.

Do you have a view on what market data vendors would find the easiest to code to? Given that New has been around for a while (Overlay is a relatively newer value), would vendors find it easier to code to New?