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

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
40 1 3 2

Volumes options with get_data function python API

Hello,


I am having a hard time getting the right volumes for the options:

As an example below, im getting the 52 lots of volume for the date of the 7th of July but this actually is the volume for the 6th of July. i dont know if it is something I can solve or if it is something about your data quality, but it happens very often and it is difficult to deal with.


1625675385883.png

eikoneikon-data-apiworkspaceworkspace-data-apirefinitiv-dataplatform-eikonapi
1625675385883.png (41.1 KiB)
icon clock
10 |1500

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

Upvotes
Accepted
39.2k 75 11 27

@emmanuel.chaslin

When retrieving timeseries for multiple fields using get_data method of Eikon Data APIs, the rows in the dataframe returned do not always align on the same date, especially when there are null values in the dataset. If you add TR.AccumulatedVolume.date to the list of fields, you'll see that indeed the value of 52 for TR.AccumulatedVolume for 1SB1925H1 corresponds to July 6th, yet it is returned on the same row as the value of July 7th for TR.SettlementPrice.date. The same issue can be reproduced in Excel using =TR("1SB1925H1","TR.SettlementPrice.date;TR.SettlementPrice;TR.AccumulatedVolume;TR.AccumulatedVolume.date","SDate=20210701 EDate=20210706") function. However, in Excel you can align all fields on the same date by adding date as a row header with RH:Date parameter. Unfortunately, Eikon Data APIs currently do not provide such capability, although it is in the works. In the meantime, the only workaround is to request the date for each field, and then use pandas to reindex the dataframe on a superset of date values for each field.
Here's as example of how this could be implemented for a single instrument.

def get_history(instrument, fields, params=None):
    instrument: str
    fields: list
    params: dict
    fields = [x.upper() for x in fields]
    fld_dt = fields + [x.upper() + ".DATE" for x in fields]
    df, err = ek.get_data(instrument, fld_dt, params, field_name=True)
    tmp_df = df[[fields[0]+".DATE",fields[0]]].replace('',np.nan)
    tmp_df.dropna(subset=[fields[0]+".DATE"], inplace=True)
    tmp_df.set_index(fields[0]+".DATE", inplace=True)
    for x in fields[1:]:
        tmp_df1 = df[[x+".DATE",x]].replace('',np.nan)
        tmp_df1.dropna(subset=[x+".DATE"], inplace=True)
        tmp_df1.set_index(x+".DATE", inplace=True)
        tmp_df = tmp_df.merge(tmp_df1, how='outer', 
                              left_index=True, right_index=True)
    return tmp_df


get_history("1SB1925H1", ["TR.SettlementPrice","TR.AccumulatedVolume"],
            {'SDate':'2021-07-01', 'EDate':'2021-07-06'})
icon clock
10 |1500

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

Clear and correct, I adjusted indeed as suggested.
Upvotes
18k 21 12 20

Hi @emmanuel.chaslin

I converted and tested your formula in Eikon Excel.

I got the same result(This confirms that the coding is valid):

ahs1.png

If I only retrieve TR.AccumulatedVolume, this is the result:

ahs2.png

This seems to be a question as to whether the content is valid?

For an authoritative answer to any content questions, the best resource is the Refinitiv Content Helpdesk.

The moderators here do not have deep expertise in every type of content available through Eikon.
The Refinitiv Content Helpdesk can be reached using Contact Us capability in your Eikon application.
Or by calling the Helpdesk number in your country.
Or at https://my.refinitiv.com/


On this question, I submitted it to helpdesk on your behalf.

The case no. is 10068374

A support will contact you shortly.


ahs1.png (107.6 KiB)
ahs2.png (31.4 KiB)
icon clock
10 |1500

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

Click below to post an Idea Post Idea