question

Upvotes
Accepted
20 0 2 5

MP domain market data update

When user code receives an rfa::common::Event event and if it's a rfa::data::FieldListEnum data, can user assume that a FieldList data any time should only contain either BID or ASK side data? Not both?

rfadata-model
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvote
Accepted
15.8k 28 8 12

Hello @ming.cheng

Please be informed that I am not a Market data expert, so I might not fully understand your ask side or bid side term.

Subscribing to the market data services is usually the best way to view what the actual Market Price FieldList data look like. I strongly suggest you try the RFA C++ StartConsumer example (in the API package) or the RFA C++ Tutorial application to connect to your Refinitiv Real-Time Market Data system and see the real data feed. It is a better way than just reading the specification.

In the Refinitiv Real-Time system, the Market Price data domain's FieldList does not contain duplicate fields (whatever the field/FID is). If data is available, it always presents in the FieldList only 1 time (1 BID, 1 ASK, 1 DSPLY_NAME, 1 ACVOL_1, etc).

mp-fid-1.png

mp-fid-2.png



I hope this help.


mp-fid-1.png (43.0 KiB)
mp-fid-2.png (59.3 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

let's close it. thanks for your patience。

Upvote
15.8k 28 8 12

Hello @ming.cheng

It is the expected behavior of Refinitiv Real-Time that sends any fields that are updated to the API in the Update Message. The application cannot expect that some FIDs are always available in the Update.


I recommend that the client programmatically check incoming FIDs/Fields data from the incoming FieldList payload. The client can find more detail from the RFA C++ Tutorial 7 - MarketPrice Refinitiv Data Model (RDM), Part 2 tutorial page.

I hope this helps.


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Sorry, definitely not relevant I have to say. My question is the any FieldList data is either about BID or ASK if it's about a MP data update. Not possible that a FieldList could have BIS and ASK both at the same time.

Hello @ming.cheng

If you subscribe to Refinitiv Real-Time for BID and ASK fields as a streaming request message, the API cannot guarantee that BID and ASK prices are always present in the same Update message. It is based on the incoming data from Refinitiv Real-Time.


Alternatively, you can subscribe to Refinitiv Real-Time for BID and ASK fields as a snapshot request message, the BID and ASK prices are always present in the same Refresh message.

Sounds possible that ONE FieldList could contain both BID and ASK data?

Upvote
15.8k 28 8 12

Hello @ming.cheng

Yes, it is possible. If the backend (RTDS/OMM Provider)/Refinitiv Real-Time sends BID and ASK data to the API in the same Update message.

The example is as follows:

BatchViewItemManager.processEvent: Received Item Event...
MESSAGE
    Msg Type: MsgType.UPDATE_RESP
    Msg Model Type: MARKET_PRICE
    Indication Flags: 
    Hint Flags: HAS_RESP_TYPE_NUM | HAS_SEQ_NUM
    SeqNum: 35264
    RespTypeNum: 1 (QUOTE)
    Payload: 19 bytes
        FIELD_LIST
            FIELD_ENTRY 22/BID: 36.75
            FIELD_ENTRY 25/ASK: 37.00

However, it is possible that the backend (RTDS/OMM Provider)/Refinitiv Real-Time sends only BID or ASK field in the Update message like in the following examples too:

BatchViewItemManager.processEvent: Received Item Event...
MESSAGE
    Msg Type: MsgType.UPDATE_RESP
    Msg Model Type: MARKET_PRICE
    Indication Flags: 
    Hint Flags: HAS_RESP_TYPE_NUM | HAS_SEQ_NUM
    SeqNum: 35168
    RespTypeNum: 1 (QUOTE)
    Payload: 13 bytes
        FIELD_LIST
            FIELD_ENTRY 25/ASK: 37.00
....
BatchViewItemManager.processEvent: Received Item Event...
MESSAGE
    Msg Type: MsgType.UPDATE_RESP
    Msg Model Type: MARKET_PRICE
    Indication Flags: 
    Hint Flags: HAS_RESP_TYPE_NUM | HAS_SEQ_NUM
    SeqNum: 35184
    RespTypeNum: 1 (QUOTE)
    Payload: 13 bytes
        FIELD_LIST
            FIELD_ENTRY 22/BID: 36.75

Note:

  • I tested with the RFA API Java edition (the API behavior is the same as the C++ edition)
  • subscribe to PTT.BK RIC streaming data for BID and ASK fields only
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

So inside a fieldlist, there will be at most one Bid and one Ask; or can be m Bid and n Ask? Whatever situation, can I say there should be one effective update timestamp like FID 1025 or 14265? Or put this way, that one pair of 1025/14265.

Hello @ming.cheng

Please be informed that the exact list of FIDs you receive for a real-time instrument (regardless of which API you use) will depend on a variety of factors such as originating exchange/vendor/source, asset class, etc. The API just receives incoming data from Refinitiv Real-Time and passes it to the application "as it is".

I am sorry that I am not a Real-Time content expert, so I highly recommend you contact the Content Support team. The Content support team can help you with Real-Time field behavior in more detail. You can contact the team directly via the https://my.refinitiv.com/content/mytr/en/helpandsupport.html website.

content-questions-3.png

Note: It would be nice if you provide the list of your RICs to them.

Hope this helps.

Hi Wasin,


Thanks and now I got some idea. However I'd like to confirm further the following points:

  1. So user code can receive an update of FieldList containing BID and ASK data. May I say at most 1 BID and 1 ASK? Is it possible that a FieldList could containing m BID and n ASK?
  2. within a FieldList, there is a update timestamp (for example either FID 1025 or FID 14265; or both conceptually one bcos user should use only one of them)? And this timestamp is applicable to all BID/ASK data within the same FieldList
  3. This n possible BID/ASK entries within a FieldList has nothing to do with subscription method/options used

If not sure about FID content, please leave item 2 and focus on 1 and 3. In fact even item 2 is more on concept than actual FID usage.

Upvote
15.8k 28 8 12

Hello @ming.cheng

Please see the answers below:

Question 1: So user code can receive an update of FieldList containing BID and ASK data. May I say at most 1 BID and 1 ASK? Is it possible that a FieldList could contain m BID and n ASK?

Answer: Do you mean "Is it possible that a FieldList could contain multiple BID and ASK?"?

Please be informed that the FieldList doe not contain duplicate FIDs. Each FID presents in a FieldList only 1 time as follows:

fieldlist.png

If the application subscribes a Market Price item for BID and ASK fields to Refinitiv Real-Time, 1 incoming FieldList data can be the following scenarios (depending on how the exchange/feed/server sends data to the API):

  • 1 BID
  • 1 ASK
  • 1 BID and 1 ASK

Example with subscription PTT.BK and SCB.BK Market Price with View feature (BID and ASK):

BatchViewItemManager.processEvent: Received Item Event...
MESSAGE
    Msg Type: MsgType.UPDATE_RESP
    Msg Model Type: MARKET_PRICE
    Indication Flags: 
    Hint Flags: HAS_ATTRIB_INFO | HAS_RESP_TYPE_NUM | HAS_SEQ_NUM
    SeqNum: 35776
    RespTypeNum: 1 (QUOTE)
    AttribInfo
        ServiceName: API_ELEKTRON_EDGE_TOKYO
        ServiceId: 4591
        Name: PTT.BK
        NameType: 1 (RIC)
    Payload: 13 bytes
        FIELD_LIST
            FIELD_ENTRY 25/ASK: 37.25
BatchViewItemManager.processEvent: Received Item Event...
MESSAGE
    Msg Type: MsgType.UPDATE_RESP
    Msg Model Type: MARKET_PRICE
    Indication Flags: 
    Hint Flags: HAS_ATTRIB_INFO | HAS_RESP_TYPE_NUM | HAS_SEQ_NUM
    SeqNum: 10928
    RespTypeNum: 1 (QUOTE)
    AttribInfo
        ServiceName: API_ELEKTRON_EDGE_TOKYO
        ServiceId: 4591
        Name: SCB.BK
        NameType: 1 (RIC)
    Payload: 19 bytes
        FIELD_LIST
            FIELD_ENTRY 22/BID: 107.50
            FIELD_ENTRY 25/ASK: 108.00
...
BatchViewItemManager.processEvent: Received Item Event...
MESSAGE
    Msg Type: MsgType.UPDATE_RESP
    Msg Model Type: MARKET_PRICE
    Indication Flags: 
    Hint Flags: HAS_ATTRIB_INFO | HAS_RESP_TYPE_NUM | HAS_SEQ_NUM
    SeqNum: 35840
    RespTypeNum: 1 (QUOTE)
    AttribInfo
        ServiceName: API_ELEKTRON_EDGE_TOKYO
        ServiceId: 4591
        Name: PTT.BK
        NameType: 1 (RIC)
    Payload: 13 bytes
        FIELD_LIST
            FIELD_ENTRY 22/BID: 37.00

I highly recommend you find more detail from Section "9 – Fields are described by dictionaries" of the 10 important things you need to know before you write a Refinitiv Real-Time application article.

The RFA API C++ StartConsumer_BatchView example application is also a good example that you can test and experiment with various options of items and fields subscription.

Question 2: Within a FieldList, there is an update timestamp (for example either FID 1025 or FID 14265; or both conceptually one bcos user should use only one of them)? And this timestamp is applicable to all BID/ASK data within the same FieldList

Answer: I am sorry that I am not a Real-Time content expert, so I highly recommend you contact the Content Support team. The Content support team can help you with Real-Time field behavior in more detail. You can contact the team directly via the https://my.refinitiv.com/content/mytr/en/helpandsupport.html website (choose "I need help understanding content within the product" and product "Refinitiv Real-Time").

Question 3: This n possible BID/ASK entries within a FieldList has nothing to do with the subscription method/options used

Answer: I do not understand what the question is. Can you clarify this question?

If you mean duplicate FIDs/Fields, the API should not send duplicate FIDs/Fields in a single FieldList to the application.



fieldlist.png (59.3 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Hi Wasin,


Since a FieldList can at most contain a BID and a ASK, the item 3 is irrelevant. And we can ignore item 2 also as you said no duplicated FID in any FieldList. Then ans to item 2 should be clear also.


Thanks a lot!

Hello @ming.cheng

Please be informed that if you encounter a duplicate FID in a FieldList, it might be a bug or data issue.

Upvotes
20 0 2 5

Hi Wasin , @wasin.w


I'd like to touch this topic again. I should have made it clear that what I meant by BID/ASK is not Refinitiv' BID/ASK FIDs. Instead they are bid side or ask side market data include price and size.

So come to my original concern again that would a FIELDLIST object possibly contain multiple bid and/or ask groups of data? Hope at most 1 bid side and 1 ask side data in a FieldList object.

Keen to have your clarification.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.