question

Upvotes
Accepted
5 1 0 1

How to retrieve time series data from list series in DSWS

I'm trying to download price time series for all constituents of s&p500 stocks using below:

import DatastreamDSWS as dsws

ds = dsws.Datastream(username='******',password='******')

df = ds.get_data(tickers="LS&PCOMP|L",fields =["P"], start ='2020-01-01',end = '-5D',kind=1)

print(df)

However I am receiving error msg. Pls advise. Thank you

datastream-apidsws-api
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.

@bob.kim, these are public forums. Please do not post your credentials in the posts. I have removed them now.

1 Answer

Upvotes
Accepted
13k 32 12 18

I don't think you can expand the list and get the timeseries data in a single API call. It will have to be a two stage process - first get all constituents and then get the timeseries for them.

# get constituent list
df1 = ds.get_data(tickers='LS&PCOMP|L', fields=['P'], kind=0)
# get a subset of first 50 instruments
slist = ','.join(df1['Instrument'].tolist()[0:50])
# get timeseries data for it
df2 = ds.get_data(tickers=slist, fields=['P'], start='2020-01-01', end='2020-01-05', kind=1)

Result:

Instrument   891399 916328 545101  777953  906187 936365    749382  ...  878574 905159    904818 923649 329709 325824 87
9628
Field             P      P      P       P       P      P         P  ...       P      P         P      P      P      P
   P
Dates                                                               ...

2020-01-01  1847.84  86.86  19.90  170.59  134.04  45.86  329.8101  ...  100.73  48.60  325.7600  63.15  43.38  45.22  7
8.20
2020-01-02  1898.01  86.95  20.03  168.81  135.42  49.10  334.4299  ...  102.17  47.53  333.3201  63.75  43.95  45.33  7
7.83
2020-01-03  1874.97  85.89  19.80  166.82  134.34  48.60  331.8101  ...  101.85  47.46  332.7600  63.31  42.36  44.98  7
7.74

[3 rows x 50 columns]


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