Bond Ratings using Python API

Hello Team, I need to get the same thing shown in this link:


https://community.developers.refinitiv.com/questions/55603/bond-ratings-1.html?childToView=101545


This is my script that needs help to make it work. Thank you.


from refinitiv.data.content import search

import refinitiv.data as rd

import pandas as pd

from datetime import date, timedelta, datetime

import numpy as np


rd.open_session()


response = search.Definition(view=search.Views.FIXED_INCOME_INSTRUMENTS, \

filter = f"MaturityRedemDate ge {datetime.today().strftime('%Y-%m-%d')} and IsActive eq true and (InstrumentTypeDescription eq 'Bond' or InstrumentTypeDescription eq 'Note') "\

"and PrincipalCurrency eq 'GBP' "\

"and InflationProtected eq 'N' "\

"and IndustrySectorDescription ne 'Other Financial' and IndustrySectorDescription ne 'Sovereign' and IndustrySectorDescription ne 'Official and Muni' and IndustrySectorDescription ne 'Supranational' "\

"and IndustrySectorDescription ne 'Banks' and IndustrySectorDescription ne 'Agency' and IndustrySectorDescription ne 'Official and Muni'", \

navigators = "SectorDescription", \

select="IssuerLegalName, RIC, ISIN, IsActive, IssueDate, MaturityRedemDate, MaturityYearsToRedem, IssuerCountry, "\

"PrincipalCurrency, InflationProtected, SearchAllCategoryv3, InstrumentTypeDescription, DebtTypeDescription, AssetType, AssetCategory, AssetTypeDescription, AssetSubTypeDescription, AssetStateName," \

"MoodysRating, MoodysRatingDate, SPBondRatingLatest, SPRating, SPRatingDate, "\

"MaturityDate, RCSOrganisationTypeName, IndustrySectorDescription, DbSubTypeDescription, Sector, SectorDescription,"\

"DocumentTitle, Description", \

top = 10000).get_data()


df = response.data.df


df1 = rd.get_data(

universe=[df["RIC"][1-10000]],

#fields=['TR.GR.Rating(BondRatingSrc=FTC:S&P:MDY).RatingSourceDescription','TR.GR.Rating(BondRatingSrc=FTC:S&P:MDY)','TR.GR.Rating(BondRatingSrc=FTC:S&P:MDY).date']

fields=['TR.GR.Rating.RatingSourceDescription','TR.GR.Rating','TR.GR.Rating.date']

)


display(df1)


the goal is to have, per each entry retrieved by the search, the Zspread and the last ratings information (from Moodys and Fitch, with timestamp) also, do you have any guide that I can use regarding retrieving Fixed Income instruments using the Python API? I often struggle to know which info are available and what's the code (for "filter" or "select") to be used

Best Answer

  • Jirapongse
    Jirapongse ✭✭✭✭✭
    Answer ✓

    @dianne.palmario

    Please use universe=df["RIC"][0:10000] instead. The code looks like this:

    df1 = rd.get_data(
        universe=df["RIC"][0:10000],
        fields=['TR.GR.Rating.RatingSourceDescription','TR.GR.Rating','TR.GR.Rating.date']
    )


    display(df1)

    The output is:

    1674614249638.png

    For more information regarding array slicing, please refer to this page.

Answers