add data to get_data request

If I made the below get data request the output returns the expected index values but is missing the dates at which these index values are calculated.

 get_data( instruments = ["REL.AS","ABNd.AS","ADYEN.AS","AEGN.AS","AD.AS","AKZO.AS","MT.AS","ASMI.AS","ASML.AS","ASRNL.AS","DSMN.AS","GLPG.AS","HEIN.AS","IMCD.AS","INGA.AS","TKWY.AS","KPN.AS","NN.AS","PHG.AS","PRX.AS","RAND.AS","RDSa.AS","URW.AS","UNA.AS","WLSNc.AS"]    , fields = ["GRWAVG(TR.CompanyMarketCap,TR.PriceClose,universe=univ,Curn=EUR,Sdate="2020-09-01",edate="2020-09-30",frq=WD)"]    , debug = False, raw_output = True    )

Any idea how to change this request so that I get also the resulting dates for this request.




Best Answer

  • Hello @laurens,

    Do you mean the dates that you see on tab "Universe" of template (Excel -> Thomson Reuters tab --> templates button (left top) --> CUSTOM PRICE INDEX).?

    image

    =TR($C$6:$C$558,"TR.CompanyName;TR.PriceClose.date;TR.HeadquartersCountry","CH=Fd NULL=BLANK",D5)

    These are the same TR.PriceClose.date, i.e. date of TR.PriceClose, not when the index was calculated.

    ---

    Perhaps this will be helpful:

    If you would like to calculate GRWAVG by means of python pandas rather then EDAPI, you can do something like this:

    groupby-weighted-average-and-sum-in-pandas-dataframe

    i.e.

    df7,err = ek.get_data( instruments = ["REL.AS","ABNd.AS",
           "ADYEN.AS","AEGN.AS","AD.AS","AKZO.AS","MT.AS","ASMI.AS",
           "ASML.AS","ASRNL.AS","DSMN.AS","GLPG.AS","HEIN.AS","IMCD.AS",
           "INGA.AS","TKWY.AS","KPN.AS","NN.AS","PHG.AS","PRX.AS","RAND.AS",
           "RDSa.AS","URW.AS","UNA.AS","WLSNc.AS"]    , 
           fields = ["TR.CompanyMarketCap,TR.PriceClose, TR.PriceClose.Date"],
           parameters = { 
                    'universe': 'univ', 'Curn' : 'EUR', 'Sdate':'2020-09-01', 'Edate' :'2020-09-30', 'frq':'WD'}
                              )
    df7

    and

    def weightedaverage(df,data_col,weight_col,by_col):
        df['_data_times_weight'] = df[data_col]*df[weight_col]
        df['_weight_where_notnull'] = df[weight_col]*pd.notnull(df[data_col])
        g = df.groupby(by_col)
        result = g['_data_times_weight'].sum() / g['_weight_where_notnull'].sum()
        del df['_data_times_weight'], df['_weight_where_notnull']
        return result
    df = weightedaverage(df7,'Price Close','Company Market Cap','Instrument')
    df

    Hope this helps


Answers

  • Hello @laurens,

    I suspect the issue may not be with dates, but with GRWAVG function.

    This request works for me

    ek.get_data( 
    instruments = ["REL.AS","ABNd.AS",
            "ADYEN.AS","AEGN.AS","AD.AS","AKZO.AS","MT.AS","ASMI.AS",
            "ASML.AS","ASRNL.AS","DSMN.AS","GLPG.AS","HEIN.AS","IMCD.AS",
            "INGA.AS","TKWY.AS","KPN.AS","NN.AS","PHG.AS","PRX.AS","RAND.AS",
            "RDSa.AS","URW.AS","UNA.AS","WLSNc.AS"]    , 
                fields = ["TR.CompanyMarketCap,TR.PriceClose, TR.PriceClose.Date"],
                parameters = { 
                    'universe': 'univ', 'Curn' : 'EUR', 'Sdate':'2020-09-01', 'Edate' :'2020-09-30', 'frq':'WD'}
                              )

    returns dates:

    image

    Does this help?

  • Dear @""zoya.farberov,

    Thanks a lot for your fast response. The formula that I am using is similar to the Refinitiv excel template (Excel -> Thomson Reuters tab --> templates button (left top) --> CUSTOM PRICE INDEX). In this excel sheet also the date is displayed at which the index is calculated. I was therefore hoping I could use this formula to get indexvalue and indexdate

    In your proposed change I now know the value of the induvidual stocks at the different dates but I still don't know the exact date at which an index value is calculated. Especially when data is missing e.g. not returned it is quite important to be able to check dates before you start calculating stuff on index values like e.g. returns.