For a deeper look into our Eikon Data API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
3 0 0 3

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.

eikoneikon-data-apiworkspaceworkspace-data-apirefinitiv-dataplatform-eikonfunds
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.

@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.

1 Answer

Upvotes
Accepted
6.7k 8 6 7

@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

I hope this can help.


1623077414111.png (76.8 KiB)
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