TR.FundRollingPerformance for Calendar Year Returns

I can use the field TR.FundRollingPerformance to get fund returns since inception, by year etc.

However, if I used the parameters: TR.FundRollingPerformance(RollTimeFrame=10Y Interval=Y)

The result I get are 1-year periods, ending at month-end of the previous month.

(I.e. if I pull the data in June, I get a series of yearly values, for years ending May 31st.


I am trying to get the annual results for calendar years. Are there any parameters that can be used with this field in order to get this?

Given how the data will ultimately be used, the idea solution would be single formula returning a single value (for a year). Something like:

TR.FundRollingPerformance(RollTimeFrame=2018 Interval=Y)


Is there any way to do this? The only working solution I have seen is to pull a table of the monthly returns, then sum all of them for a specific year. That approach won't work in this case.

Best Answer

  • @peter.vonbredow0 So I would get the monthly data going back as far as possible then use the pandas groupby year and sum function:

    df, err = ek.get_data('VOT',['TR.FundRollingPerformance(RollTimeFrame=SI,Interval=M).date','TR.FundRollingPerformance(RollTimeFrame=SI,Interval=M)'])
    df['Date'] = pd.to_datetime(df['Date'])
    df1 = df.groupby(df.Date.dt.year).sum()
    df1

    image

    I hope this can help.

Answers

  • @peter.vonbredow0 and @jason.ramchandani, I would like to point out that aggregating monthly returns to year returns is NOT adding (sum) the performances 12 months' return figures. The correct term we should use is "annualise" the monthly returns. It should be the product of the monthly returns in factor form. e.g. if all the 12 months' monthly return is 1%, the yearly return is about 12.6825% not 12.0%

    BTW, I do not find a way to directly get the calendar year returns in the Eikon API.