Syntax Error

Hi,
I have received a formula for retrieving fund information, however, in order to apply the formula to multiple funds I am trying to translate it to python.

However, I am encountering a syntax error. Can I remove the limitation of 5000 firms or add a limitation of 1000 firms if the number of retrieved funds is becoming too large?

Formula I received from EIKON Support:
=@TR($C$2;"TR.FundHoldingRIC;TR.FundHoldingName;TR.FundLatestFilingDate;TR.FundPercentageOfFundAssets/100";"StartNum=1 EndNum=5000 CH=Fd NULL=BLANK")


Current Code Python:
constituents, err = ek.get_data(['US4642872265'],['TR.FundHoldingRIC','TR.FundHoldingName','TR.FundLatestFilingDate','TR.FundPercentageOfFundAssets'])
constituents


Error:

SyntaxError: invalid syntax

I appreciate the support!

Best,Gabriel

Best Answer

  • raksina.samasiri
    Answer ✓

    Hi @gabriel.matejka ,

    Could you please let me know which error are you facing, I can run the code properly.

    funds = ['US4642872000',
    'US0378331005',
    'IE00BFMNPS42',
    'LU0907928062',
    'LU2080995587',
    'LU1806494412',
    'US67066G1040',
    'LU0113258742',
    'LU0248041781',
    'US02079K3059',
    'LU1602092758',
    'NL0010273215',
    'US0378331005',
    'FR0000121972',
    'LU1681049018',
    'DK0060534915',
    'LU0355583906',
    'LU1951342788',
    'AT0000A1K9C8']

    df, err = ek.get_data(funds,
    fields=["TR.FundHoldingRIC",
    "TR.FundHoldingName",
    #"TR.HQCountryCode",
    "TR.FundLatestFilingDate",
    "TR.FundPercentageOfFundAssets/100"],
    parameters={'StartNum': '1', 'EndNum': '10'})
    df


Answers

  • Hi @gabriel.matejka

    Try the following:

    df, err = ek.get_data("US4642872265", 
    fields=["TR.FundHoldingRIC",
    "TR.FundHoldingName",
    "TR.FundLatestFilingDate",
    "TR.FundPercentageOfFundAssets/100"],
    parameters={'StartNum': '1', 'EndNum': '5000'})

    1707772741773.png

  • This works great! Sorry to bother again however if I add more RICs there is an Error again:

    Do I need to filter the RICs beforehand according to their categories?

    funds = ['US4642872000',
    'US0378331005',
    'IE00BFMNPS42',
    'LU0907928062',
    'LU2080995587',
    'LU1806494412',
    'US67066G1040',
    'LU0113258742',
    'LU0248041781',
    'US02079K3059',
    'LU1602092758',
    'NL0010273215',
    'US0378331005',
    'FR0000121972',
    'LU1681049018',
    'DK0060534915',
    'LU0355583906',
    'LU1951342788',
    'AT0000A1K9C8']

    df, err = ek.get_data(funds,
    fields=["TR.FundHoldingRIC",
    "TR.FundHoldingName",
    #"TR.HQCountryCode",
    "TR.FundLatestFilingDate",
    "TR.FundPercentageOfFundAssets/100"],
    parameters={'StartNum': '1', 'EndNum': '10'})

    df

    Thank you very much in advance!

  • Hi Raksina,


    it runs properly on my end now too.. I believe it was a time-out error the last time I tried it. I tried it with EndNum 500 but that also works properly now.
    Thank you in any case!

    Best
    Gabriel