EMA - Query

Hi,

I am new here, trying to implement EMA to get market pricing data for a list of securities. This list will be updated daily. We will be using Solace topics to subscribe. Can we subscribe to a dynamic list of securities and not currency, if yes, how? Also, can we refresh this list dynamically or will we need to restart the process every morning with a new itemlist?

Best Answer

  • Hi @aastha.sharma

    EMA uses RICs for the symbology when consuming Refinitiv Real-Time data.

    From your post, can I assume you are consuming data from a Solace feed - via a Refinitiv RTDS system?

    Whilst all of our EMA examples specify the required RIC/RICs at startup - you are free to subscribe to instruments (available on your feed) - as and when required.

    You can also close all or individual instruments as and when required.

    You can subscribe to an instrument by calling registerClient for one or more instruments

    • using a Batch request for multiple instruments with a single registerClient call
    • or calling registerClient individually for each instrument

    For each valid instrument you subscribe to, a stream is created and each stream is assigned a unique handle.

    You will need to store the handle for each item:

    UInt64 handle = consumer.registerClient( ReqMsg().serviceName( "MY_FEED" ).name( "IBM.N" ), client ) 

    and then use the handle to unsubscribe each item you no longer require it. e.g.

    _pOmmConsumer->unregister(handle) 

    for Batch requests, the handle would have to be extracted from the on onRefreshMsg() callback for each subscribed instrument, as the handle returned for a batch request will be closed as soon as the batch request is accepted.

    EMA Consumer Example 300 demonstrates close for a subscribed item.

Answers