Upgrade from Eikon -> Workspace. Learn about programming differences.

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

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
15 5 8 10

How to get historical holdings and allocation data for funds?

How to get monthly or quarterly changes in a fund holdings, sector and country allocations? With the below code I'm only able to get the recent holdings and not the historical holdings.


Python

column_fields = [
    "TR.FundHoldingRIC",
    "TR.FundHoldingName",
    "TR.FundPercentageOfFundAssets",
]
refinitiv_data, err = ek.get_data(["SPY"], column_fields, date_paremters)
refinitiv_data


How to get the same historical weights for the below allocations?

Asset allocation -> ["TR.FundAssetAllocation", "TR.FundAllocationName"]

Country allocation -> ["TR.FundCountryAllocation", "TR.FundAllocationName"]

Sector allocation -> ["TR.FundIndustrySectorAllocation", "TR.FundAllocationName"]

eikon-data-api#technologypython apifundseikonapp
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

· Write an Answer
Upvotes
Accepted
1.5k 3 2 3

Hi @BlackBird, I do not think the Eikon data API for Lipper (i.e. field name starts with "TR.Fund") can provide historical data currently. Because I do not see date parameters for these fields from Data Item Browser.

I know the RDP Funds API can can provide that.

However, if you only interested in ETFs, I am aware the constituent data is available from the Refinitiv's exchange data (not from Lipper I believe). Below is a sample code you can try. The sample is getting the data as of the month-end date 2 months ago. You can put in the exact date if you want, and I think they got daily data for most of ETFs. I am not sure if you can specify a date range. Also, I do not think the "allocations" data is available from Exchange data set, as allocations is likely only available from Lipper database.


df, err = ek.get_data(
    instruments = ['SPY'],
    fields = [
        'TR.ETPConstituentRIC',
        'TR.ETPConstituentName',
        'TR.ETPConstituentWeightPercent',
        'TR.ETPConstituentWeightPercent.Date'
    ],
    parameters = {'SDate': '-2M'}
)
df
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.