How to distinguish between RFS and RFQ in message 35=R

RFS vs RFQ. If message is 35=R in both cases, which tag shall I use to distinguish which one the requestor is asking for?
Thanks in advance

Where does this assumption come from? FIX MarketDataRequest(35=V) message is available to request a stream of quotes by using:

  • SubscriptionRequestType(263) = 1 (Snapshot + Updates (Subscribe))
  • (in repeating group MDReqGrp) MDEntryType(269) = 0 (Bid) and/or 1 (Offer)
  • (in repeating group InstrmtMDReqGrp) QuoteType(537) per instrument if needed or MDQuoteType(1070) on root level if single type applies to all instruments

The assumption is because in our case (swap market) we are receiving a RFS event (not a FIX message) when our counterpart is requesting a quote stream for a specific amount. We must then translate this event to a FIX message for our final user console.
I understood that the stream requested in this case is from one single dealer and is finalized at execution.
If you suggest to implement it as a 35=V then can the dealer send a stream of 35=S or is it forced to send a stream of 35=W?
Thanks again

When using MarketDataRequest(35=V) the responses should be either MarketDataIncrementalRefresh(35=X) or MarketDataSnapshotFullRefresh(35=W) messages. The incremental message gives you more flexibility as it has the instrument as part of the repeating group MDIncGrp, i.e. you can stream multiple quotes for multiple instruments in a single message.

Just one final question.
When a dealer is providing a stream of prices as you detailed, when the requester is intending to hit or lift, what messages are involved? Can this be modeled with an immediate 35=8? In this case how is the original quote ID managed?
Thanks for your patience

The ExecutionReport(35=8) can only be used to confirm an action, not to trigger that action, e.g. hitting a quote. Hit and lift requires a NewOrderSingle(35=D) with the following fields to reference the quote from the market data stream.

RefOrderID(1080) = [ID from the market data stream]
RefOrderIDSource(1081) = 2 (MDEntryID(278)) or 3 (QuoteEntryID(299))

The market data messages obviously need to provide MDEntryID(278) or QuoteEntryID(299).

I also found an old discussion on this topic, see difference between FIX "Market Data Request" & "Quote Request". It says that some do use RFQs for streaming but that the market data messages should be preferred for this.

Cristal clear, as usual, thanks

1 Like