Inhouse service with StramingPrices

Hi,

I am trying to get a streaming feed from an inhouse source with the eikon.StreamingPrices function but it doesn't seem to work.

When I specify service = 'MYSOURCE' I don't get any update or data on the feed. The only service I manage to get data from is 'IDN_RDF'.

When I use RtGet in Excel I manage to get the feed from 'MYSOURCE' and the feed is updated.

Is there any limitation that I didn't understand with eikon.StreamingPrices ?

#Works fine

streaming_prices = ek.StreamingPrices(

instruments = ['EURCAD='],

fields = ['BID', 'ASK'],

service = "IDN_RDF",

on_update = lambda streaming_price, instrument_name, fields :

print("Update received for {}: {}".format(instrument_name, fields))

)

#Don't get any update while being updated when I check with RtGet in Excel

streaming_prices = ek.StreamingPrices(

instruments = ['MyRic'],

fields = ['MyField'],

service = "MYSOURCE",

on_update = lambda streaming_price, instrument_name, fields :

print("Update received for {}: {}".format(instrument_name, fields))

)

Thanks for your help,

Best,

Florent

Best Answer

  • Jirapongse
    Jirapongse ✭✭✭✭✭
    Answer ✓

    @Florent.E

    I have verified the problem by enabling Eikon Data API Python logging.

    import logging
    logger = logging.getLogger('pyeikon')
    logger.setLevel(5)

    When subscribing to the Inhouse service, it shows the following error ('Cannot send request to ADS'):

    2020-09-25 15:46:05,563 P[14860] [MainThread 2816] Open asynchronously StreamingSinglePrice 15 to CNY=
    2020-09-25 15:46:05,563 P[14860] [MainThread 2816] Open asynchronously ItemStream 15 to CNY=
    2020-09-25 15:46:05,564 P[14860] [MainThread 2816] Open asynchronously Stream 15
    2020-09-25 15:46:05,564 P[14860] [MainThread 2816] Subscribe to DIRET_FEED:CNY= on ['BID']
    2020-09-25 15:46:05,731 P[14860] [WebSocket 0 20812] Receive message from Web Socket
    2020-09-25 15:46:05,732 P[14860] [WebSocket 0 20812] Receive message for stream 15: {'ID': 15, 'State': {'Code': 'ConnectionError', 'Data': 'Suspect', 'Stream': 'Closed', 'Text': 'Cannot send request to ADS'}, 'Type': 'Status'}
    2020-09-25 15:46:05,732 P[14860] [WebSocket 0 20812] Received status message:
       {'Code': 'ConnectionError', 'Data': 'Suspect', 'Stream': 'Closed', 'Text': 'Cannot send request to ADS'}

    When using "IDN_RDF" service, the active item in ADS is still not the same. Therefore, I assume that Eikon Data API streaming doesn't connect to the local ADS to consume real-time data.

    However, I assume you have configured Eikon to connect to the local ADS in order to consume the inhouse service. In this case, if the local ADS supports WebSocket connection, you can use the WebSocket API to consume real-time data from the local ADS.