Historical daily market caps for constituents of ETF

Using Refinitiv Data API with Python:


Exploring if it is possible, especially without looping any requests, to get the daily historical market cap for any given ETF? By that I do not mean the market cap for the ETF but the sum of market caps for the constituents. Is this data that is available?

Welcome!

It looks like you're new here. Sign in or register to get started.

Best Answer

  • aramyan.h
    aramyan.h admin
    Answer ✓

    Hi @jn02 ,


    You can do that in two steps. First, you would need to get ETF constituents as of a date:

    import refinitiv.data as rd
    rd.open_session()
    df = rd.get_data('XIU.TO', fields = ['TR.ETPConstituentRIC','TR.ETPConstituentName', 'TR.ETPConstituentRIC.calcdate', 'TR.ETPConstituentWeightPercent',], parameters = {'SDate': '2024-05-01'})
    df

    screenshot-2024-05-10-at-131422.png

    Unfortunetly, you can't get this historically in a straightforward way. I have a presented a more streamlined way of doing that for index constituents which you may want to adapt for ETFs. Check the article here- Building historical index constituents | Devportal (lseg.com).

    Next, once you have the constituents, you can request the historical market cap of those instruments:

    rics = df['Constituent RIC'].to_list()
    rd.get_history(universe = rics, fields = "TR.CompanyMarketCap", start = '2020-01-01', end = '2024-05-01')


    screenshot-2024-05-10-at-131653.png

    Hope this helps.


    Best regards,

    Haykaz

Answers

Welcome!

It looks like you're new here. Sign in or register to get started.

Welcome!

It looks like you're new here. Sign in or register to get started.