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

Best Answer

  • Gurpreet
    Gurpreet admin
    Answer ✓

    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]


Answers

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

Welcome!

It looks like you're new here. Sign in or register to get started.

Welcome!

It looks like you're new here. Sign in or register to get started.