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
    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