Determine Index constituents from Joiners & Leavers

Hi there,

I am currently trying to stitch together historical index constituents from joiners and leavers data. To get the data, I am using the command:

lj, err = ek.get_data(RIC, ['TR.IndexJLConstituentChangeDate(SDate={0},EDate={1},IC=B)'.format(start_date, end_date,'TR.IndexJLConstituentChangeDate(SDate={0},EDate={1},IC=B).change'.format(start_date, end_date,'TR.IndexJLConstituentName(SDate={0},EDate={1},IC=B)'.format(start_date, end_date, 'TR.IndexJLConstituentRIC(SDate={0},EDate={1},IC=B)'.format(start_date, end_date)])

To test this, I am using the HDAX as a test case '0#.GDAXHI'.

Now from this data, the goal is to find the current index constituents at any given time. I thought I can just refer to the RICs and filter the latest joiner RICs, which are not leavers yet. However, I am struggling a bit with the data that I am getting back. For instance, the company 'Salzgitter Werke', has joined the index early on, and the left twice, but based on a different RIC. (so it seems I cannot use RICs for this exercise, cause the RIC KLKG.F^A11 never left according to this)


1638806945050.png


In general I see many joiners and leavers at the same date, with changed tickers (example here)

1638807050611.png


So my question, based on this data: how do I back out the list of index constituents at any given date using only joiners and leavers data?


Many thanks.

Best,

Chris





Find more posts tagged with

Sort by:
1 - 1 of 11
    User: "Jirapongse"
    ✭✭✭✭✭
    Accepted Answer

    @auth

    I think the data from Eikon Data API is similar to the data from the Eikon Leavers and Joiners.

    1642064803063.png

    1642064897016.png

    This is why you need to contact the content team regarding how to process the data.

    Another API that can retrieve historical items in indices is Tick History REST API.

    Tick History REST API has the HistoricalChainResolution endpoint which can resolve current and past chain constituents.

    For example, the request looks like this:

    {
      "Request": {
        "ChainRics": [
          "0#.GDAXHI"
        ],
        "Range": {
          "Start": "2001-01-12T00:00:00.000Z",
          "End": "2001-01-13T00:00:00.000Z"
        }
      }
    }

    The response is:

                    },
                    {
                        "Identifier": "SRZG.DE",
                        "IdentifierType": "Ric",
                        "Source": "",
                        "Key": "VjF8MHgzMDAwMDAwMDAwMDAwMDAwfDB4MzAwMDAwMDAwMDAwMDAwMHx8fHx8fHxTUlpHLkRFfA",
                        "Description": "Historical Instrument",
                        "InstrumentType": "Unknown",
                        "Status": "Valid",
                        "DomainCode": "6"
                    },
                    {
                        "Identifier": "SZUG_p.DE",
                        "IdentifierType": "Ric",
                        "Source": "",
                        "Key": "VjF8MHgzMDAwMDAwMDAwMDAwMDAwfDB4MzAwMDAwMDAwMDAwMDAwMHx8fHx8fHxTWlVHX3AuREV8",
                        "Description": "Historical Instrument",
                        "InstrumentType": "Unknown",
                        "Status": "Valid",
                        "DomainCode": "6"
                    },
                    {
                        "Identifier": "TAGG.DE",
                        "IdentifierType": "Ric",
                        "Source": "",
                        "Key": "VjF8MHgzMDAwMDAwMDAwMDAwMDAwfDB4MzAwMDAwMDAwMDAwMDAwMHx8fHx8fHxUQUdHLkRFfA",
                        "Description": "Historical Instrument",
                        "InstrumentType": "Unknown",
                        "Status": "Valid",
                        "DomainCode": "6"
                    },
                    {