Trying to convert Excel formula to Python API - getting government bonds historical data

I have been trying to convert the formulae below into an Python API query:

1671535773479.png

The "TR(INDIRECT(F$1)" refers to a list of government bond identifiers.

When I try to get any data using this query in Python I simply fail (see below)

1671535698624.png

Thank you!

Best Answer

  • raksina.samasiri
    Answer ✓

    Hi @pietrangelo.debiase ,

    The Python code you used seems to be for the DataStream Python library not the Eikon Data API. However, as the formula you use is the Eikon Excel one hence, I'm providing the code of Eikon Data API Python library.

    import refinitiv.data.eikon as ek
    ek.set_app_key('DEFAULT_CODE_BOOK_APP_KEY')

    df, err = ek.get_data(['AL0002NF7Y19'], [ 'TR.CA.AmtOutstanding.date','TR.CA.AmtOutstanding/10^6'], {'SDate':'1972-09-30', 'EDate':'2022-12-10'})
    df

    compared to the output in Eikon Excel

    1671539637695.png

    To learn more about the Eikon Data API, feel free to check Eikon Data API page in an API Catalog, which contains the API's overview, quickstart guide, documentation, related resources for download, and the tutorials

    Hope this helps and please let me know in case there're any further questions.

Answers

  • Dear @pietrangelo.debiase ,


    Thank you for your question. Is there a specific reason you are using the Datastream API to get the requested data?


    I have tried your request using one of our latest APIs - RD Libraries for Python - and had the following output.


    screenshot-2022-12-20-at-162913.png


    Here is the Python code I have used:

    parameters = {'Frq': 'D', 'Sdate': "1972-09-30", 'Edate': "2022-12-10"}
    df = rd.get_data(universe = 'ES0000012H41', fields = ['TR.CA.AmtOutstanding.Date','TR.CA.AmtOutstanding'], parameters = parameters)
    df


    I hope this is helpful, feel free to let me know if case you have any follow up questions.


    Best regards,

    Haykaz

  • Your answers were very helpful. I have been using Excel because it was what my predecessor used - so my goal is to convert many of these Excel formulas to API queries, so I can get the data more quickly and efficiently.


    Thank you very much and happy new year.

  • Dear developer colleagues

    Huge thanks for the continuous support. I've been wrestling with this challenge of refining our Refinitiv data gathering process, but I'm running into a few hitches.

    Recently, I revisited this code. Can't figure out why it's not fetching any info, even when using the same source code as you guys. I can safely say it's not an access issue, at least in one instance.

    When using refinitiv.data, my query yielded nothing using the exact same code as you (see below):

    When trying refinitiv.data.eikon, I get a possible access issue (see below). It's kind of weird considering I can usually use Refinitiv’s DatastreamPy and refinitiv.dataplatform without a problem.

    image

    Since I've been successful in getting data from refinitiv.dataplatform, I figured I'd use the get_data from this package instead. But it's been a wild ride—empty results or just plain weird ones. Take this bond "DE113492=" for example, it's returning nothing on the outstanding amount. But when I search for this bond directly in Refinitiv’s platform, it's showing an outstanding amount of around 13 billion Euros. On top of that, I'd like to track this outstanding amount over time.

    image

    I could really use some help to untangle this mess. My aim here is to effectively pull time series data on government bonds—especially yields, the amount outstanding, the amount issued, and bid-ask spreads.


    Thank you again for your support.

    Best wishes,

    Pietrangelo