Imported from previous forum
I am trying to figure out what to do in two separate cases:
- the FIX client has requested a subscription but there are no bids/offers at that time
- the FIX client has a Full Refresh subscription and has received updates in the past with bids and/or offers on an instrument, but now all the bids and offers on that instrument are gone.
In the first case:
- a FIX client sends a MarketDataRequest whose SubscriptionRequestType <263> = Snapshot (0) or Snapshot + Updates (Subscribe) (1) requesting MDEntryType <269> = Bid (0) and/or Offer (1)
- but there are no bids or offers in the marketplace at that exact moment
Is the correct thing to do to send nothing back? So in that case the FIX client will receive no acknowledgement to the subscription refresh until there are bids/offers available?
Now for the second case. What if the user has a full refresh subscription (MDUpdateType <265> = 0) and the last bid/offer on a instrument is removed? Should I send a Market Data - Snapshot/Full Refresh message for that instrument whose MDEntryPx <270> and MDEntrySize <271> are both zero?
Many thanks for anyone’s opinion on the matter.
You would send a MarketDataSnapshotFullRefresh message with one entry which has MDEntryType set to “Empty Book” in both cases.
Thanks for your quick reply, Florian. Unfortunately, I am using FIX 4.4, not FIX 5.0, and the 4.4 specs for MDEntryType <269> field don’t have an “Empty Book” (J) type.
What do you suggest in this case?
You would send a MarketDataSnapshotFullRefresh message with one entry
which has MDEntryType set to “Empty Book” in both cases.
[ original email was from N. D. - ndalal@tradeblade.com ]
> Thanks for your quick reply, Florian. Unfortunately, I am using FIX 4.4,
not FIX 5.0, and the 4.4 specs for MDEntryType <269> field don’t have an
“Empty Book” (J) type.What do you suggest in this case?
You would send a MarketDataSnapshotFullRefresh message with one entry
which has MDEntryType set to “Empty Book” in both cases.
My two cents:
-
A message must be sent even if the market is empty. Not sending a message may be misunderstood as an issue with the market infrastructure.
-
In the case of a subscription that you describe here - where there were bids/offers and then all of them were taken away, thus reaching an ‘empty market’ state - not sending a message may reflect incorrect market state.
-
What we have done in the past for a Snapshot (263=0) or a Full-refresh subscription (263=0|265=0) is to send out a message but with ‘0’ elements in the repeating group (that is 268=0 and with no tags in the repeating group). This unambiguously tells the receiver of the message that the market is ‘empty’.
Is this industry standard? Can anyone chime in here?
Thanks for your quick reply, Florian. Unfortunately, I am using FIX 4.4,
not FIX 5.0, and the 4.4 specs for MDEntryType <269> field don’t have an
“Empty Book” (J) type.What do you suggest in this case?
You would send a MarketDataSnapshotFullRefresh message with one entry
which has MDEntryType set to “Empty Book” in both cases.My two cents:
A message must be sent even if the market is empty. Not sending a message may be misunderstood as an issue with the market infrastructure.
In the case of a subscription that you describe here - where there were bids/offers and then all of them were taken away, thus reaching an ‘empty market’ state - not sending a message may reflect incorrect market state.
What we have done in the past for a Snapshot (263=0) or a Full-refresh subscription (263=0|265=0) is to send out a message but with ‘0’ elements in the repeating group (that is 268=0 and with no tags in the repeating group). This unambiguously tells the receiver of the message that the market is ‘empty’.