For a deeper look into our Eikon Data API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
8 2 4 5

What does 'Cannot send request to ADS' mean?

fields =
    {'TR.EPSActValue': 
        {'params':{"Period":"FQ0", "Frq": "FQ"},'sort_dir':'asc'}
        },
    {'TR.EPSActValue.periodenddate': 
        {'params':{"Period":"FQ0", "Frq": "FQ"},'sort_dir':'asc'}
        },
    ]


I'm trying to request these fields, but I always get the following message as response:

Status received for FNOX.NGM {'status': <StreamState.Closed: 1>, 'code': 'ConnectionError', 'message': 'Cannot send request to ADS'}


NOTE: The method get_data returns the data normally with these fields, but with StramingPrices I get the error message. Any idea of the reason / solution?


Request with get_data:

df, err = ek.get_data(valid_rics, fields)


Request with StramingPrices:

def get_streaming(instruments, fields):
    return ek.StreamingPrices(
        instruments = instruments, 
        fields = fields,
        on_refresh = on_update,
        on_update = on_update,  
        on_status = on_status,      
        on_complete = on_complete,
    )

def on_update(stream, instrument_name, fields)
    print(f'Upate for {instrument_name}: {fields}'.)

def on_status(stream, instrument_name, status)
    print('Status received for {} {}'.format(instrument_name, status))

def on_complete(stream)
    print(stream.get_snapshot())

streaming = get_streaming(valid_rics, fields)
streaming.open()
asyncio.get_event_loop().run_until_complete(asyncio.sleep(600))


RICs:

valid_rics = [
    'CCHW.NLB',
    'FNOX.NGM',
    'MMED.NLB',
    'NTAR.NLB',
    'OLIS.DH',
    'SOSIL.NGM',
    'SYNTH.TE',
    ]


Thank you in advance.

eikoneikon-data-apipythonworkspaceworkspace-data-apirefinitiv-dataplatform-eikonstreaming-prices
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
39.3k 76 11 27

@diego37

StreamingPrices class is specifically created to retrieve streaming market data from Refinitiv Real-Time Network. You can see the full list of fields available for a RIC on Refinitiv Real-Time Network by displaying the RIC in a Quote app in Eikon application, right clicking within the app and selecting Templates - Display All Fields from the right-click menu. This will display the raw view of the streaming record as a vector of field name/value pairs. The list of fields available varies between the RICs, but only the fields returned in the Quote app can be retrieved using StreamingPrices.

The field TR.EPSActValue you used (and any other fields that start with "TR.") comprise fundamental and reference dataset, which is separate from streaming data on Refinitiv Real-Time Network, and which cannot be retrieved using StreamingPrices. To retrieve fundamental & reference data you need to use get_data method.

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
11.7k 57 39 60

Hi @diego37,

The 'Cannot send request to ADS' implies the data you request for cannot be processed by the backend streaming server (ADS - Advanced Distribution Server).

The streaming service requires a field name only, i.e. "CF_BID", "CF_ASK", etc. Refer to the description page for an example. You are requesting for historical values from the streaming service which only supports real-time data.

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.