Descrepancy total return using EIKON API and Excel

Hello,

I am trying to pull quarterly returns for a list of stocks (the ISIN below is just and example) using the EIKON API. This is the code I am using:

for i in range(1995, 2020):     
for z in range(1, 5):        
ek_d, err=ek.get_data("DK0010302488",["TR.TotalReturn","TR.TotalReturn.date","TR.TotalReturn3Mo"],{"SDate": str(z)+"QCY"+str(i), "CURN": "DKK"})

I am running intwo to issues:

1) the results are very different than if I run the following formula in Excel: =TR("DK0010302488","TR.TotalReturn;TR.TotalReturn3Mo;TR.TotalReturn.date","Frq=CQ SDate=2014-01-01 EDate=2015-12-31 Curn=DKK CH=Fd RH=IN",G4)


2) Values "TR.TotalReturn" and "TR.TotalReturn3Mo" are very different for the same quarter when I use the API, while they are always the same when I use Excel.

I would be very grateful if you could help me figure out what is wrong


Best,

David

Best Answer

  • chavalit-jintamalit
    Answer ✓

    Hi @dpi.eco

    You can directly transform Eixon Excel formula to Eikon Data API call:

    fields = ["TR.TotalReturn","TR.TotalReturn3Mo","TR.TotalReturn.date"]
    parameters = {"SDate": "2014-01-01", "EDate":"2015-12-31", "Frq":"CQ", "CURN": "DKK"}

    ek_d, err=ek.get_data("DK0010302488", fields, parameters)
    ek_d

    This should give you the same result:

    image

Answers

  • To add to the response by @chavalit.jintamalit, when you only specify the value of SDate parameter, TR.TotalReturn returns 1 day total return as of the date corresponding to the value of SDate. This is why the values of TR.TotalReturn and TR.TotalReturn3Mo retrieved in your example using Eikon Data API library are different. When you specify both SDate and EDate, the value of TR.TotalReturn represents total return between these dates. When you retrieve timeseries of TR.TotalReturn by specifying SDate, EDate and Frq, the interval between SDate and EDate is broken into periods according to the value of Frq, and the value of TR.TotalReturn retrieved for each period represents total return between the start and end date of the period. This is why with Frq=CQ the values returned for TR.TotalReturn and TR.TotalReturn3Mo are the same.

  • @chavalit.jintamalit @Alex Putkov. thank you very much. Your answers perfectly explain my confusion.


    Best,

    David