Retrieve historical bond yields for various maturities and governments

Hello, I am trying to retrieve the bond yields for various maturities per country (Germany, Switzerland, Netherlands). I am using the Eikon API in Python, Windows.

Essentially, I want to derive the monthly Yield-to-maturity (YTM) for various maturities (1 month, 3 month, 6 month, 1 year, 2 year, 10 year, and 30 year) from 2010-01-01 to 2020-01-01. I have tried the following for Germany but without success;

df1 = ek.get_timeseries('0#DEBMK=
start_date='2010-01-01
end_date='2020-01-01
interval='monthly'
)

I also tried the Refinitiv api but it didn't work:

rics = ['0#DEBMK=']

for a_ric in rics:
df = rdp.get_historical_price_summaries(
universe = a_ric,
start = '2020-12-10',
end = '2020-12-26',
fields = ['MID_YLD_1']
)
print(df)


Best Answer

  • aramyan.h
    aramyan.h admin
    Answer ✓

    Hi @Lund.student3 ,


    I would suggest using Chain and het_ghistory functions from Data Libraries for Python:

    1. Expand the bond chain to get constituents:

    import refinitiv.data as rd
    from refinitiv.data.discovery import Chain
    rd.open_session()
    bonds = Chain(name="0#DEBMK=")
    print(bonds.constituents)
    ['DE1MT=RR', 'DE3MT=RR', 'DE6MT=RR', 'DE9MT=RR', 'DE1YT=RR', 'DE2YT=RR', 'DE3YT=RR', 'DE4YT=RR', 'DE5YT=RR', 'DE6YT=RR', 'DE7YT=RR', 'DE8YT=RR', 'DE9YT=RR', 'DE10YT=RR', 'DE15YT=RR', 'DE20YT=RR', 'DE25YT=RR', 'DE30YT=RR']

    2. request historical pricing data including yields:

    rd.get_history(bonds.constituents) 

    screenshot-2024-04-29-at-115415.png

    This will return all available fields. You can also provide additional fields, start and end parameters for a specific request:

    rd.get_history(universe = bonds.constituents, fields =["HIGH_YLD", "LOW_YLD", "A_YLD_1", "ISMA_A_YLD"], start='2024-01-01', end = '2024-04-28')


    Hope this helps.


    Best regards,

    Haykaz

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.