question

Upvotes
Accepted
1 0 0 1

Get time series data for each constituent in an equity index

I'm trying to make a stock universe with historical price data for each constituent of the Euro Stoxx 50 equity index.


However, as I am a new user, I can't seem to figure out the process.

This is what I have so far.



I thus end up with 50 small dataframes, one for each constituent in the Euro Stoxx 50. I would like to merge all these into 1 dataframe, which I could use as a stock universe.

Would be great if anyone could help!

Thanks.

pythondatastream-apidsws-apitime-seriesindexconstituents
1568386458794.png (146.6 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.

Hello @mathieu.debaets

Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query?


If so please can you click the 'Accept' text next to the appropriate reply. This will guide all community members who have a similar question.


Thanks,


AHS

Please be informed that a reply has been verified as correct in answering the question, and has been marked as such.

Thanks,


AHS


Upvote
Accepted
78.8k 250 52 74

@mathieu.debaets

From the "LDJES50I|L" request, you can get the list of items. Then, change the list of items to a comma-separated string which can be used in the second request.

The code looks like:

df = ds.get_data(tickers="LDJES50I|L", fields=["MNEM"], kind=0)
tickerList = df["Value"].tolist()
tickerString = ",".join(tickerList)
df1 = ds.get_data (tickers=tickerString, fields=['P'])
df1

The output is:



datastream.png (34.8 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.

Found this as well!

Thanks for the help.

Upvotes
1 2 2 2

Hi Mathieu.debaets,

From the syntax that you are using, I would say that you are not using the Eikon Data API. But a Datastream library, what I suppose do not support the functionality you are looking for. You need to make the adjustment of your python code to handle the edition of the dataframes.

You want an Eikon version it would be:

value='0#.STOXX50E'
lista, err = ek.get_data(value,'RData')
lista=list(lista.Instrument[~lista.Instrument.isnull()].values)

df = ek.get_timeseries(lista,'CLOSE',
                        start_date="2019-08-01",   
                        end_date="2019-09-11",interval="daily",normalize=True)
df.head()

        Date   Security  Field   Value
0 2019-08-01  DPWGn.DE   CLOSE  29.400
1 2019-08-02  DPWGn.DE   CLOSE  28.350
2 2019-08-05  DPWGn.DE   CLOSE  27.880
3 2019-08-06  DPWGn.DE   CLOSE  28.510
4 2019-08-07  DPWGn.DE   CLOSE  28.685

Regards,

Pedro Alexandre

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.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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