Is there a way in Codebook to download all active Bonds with ISINs only and eliminate those that has

Is there a way in Codebook to download all active Bonds with ISINs only and eliminate those that has NULL values?
Tagged:

Best Answer

  • raksina.samasiri
    Answer ✓

    hi @cheryl.eje

    RDP search function can be used for this, please see an example below

    • filter: put the filter to get only
      • Bond: SearchAllCategoryv3 eq 'Bonds'
      • active bond: IsActive eq true
      • ISIN is not null: ISIN ne null
    • select: ISIN
    • top: 10, to get the first 10 ISIN of the response, you may adjust the number to get more/less result
    import refinitiv.dataplatform as rdp
    rdp.open_desktop_session('DEFAULT_CODE_BOOK_APP_KEY')

    response = rdp.Search.search(
    view = rdp.SearchViews.SearchAll,
    filter = "IsActive eq true and ISIN ne null and SearchAllCategoryv3 eq 'Bonds'",
    select = "ISIN",
    top = 10
    )

    print(response.status) # to check response status
    response.data.raw # to see the response data

    To access each ISIN code, the code below can be used

    for _ in response.data.raw["Hits"]:
    print(_["ISIN"])

    1633712458444.pngThe screenshot above is the output from the code, in the output of response.data.raw, you will see that it has parameter Total with a value of about 2 million ISINs, which is a huge number. I'd recommend checking the article Building Search into your Application Workflow - Limits about the limit of the search function and how to handle it, according to this article mentioned,

    Search is intended as an interactive tool rather than a facility for bulk processing. To avoid abuse and excessive heavy usage, the service does have upper limits in terms of the data set returned. Heavy usage can be a result of users blasting requests in a very short period of time or if the overall service is experiencing excessive load. Please refer to the reference guide within the playground for more details.

    for more detail about the RDP search function, you may check this article Building Search into your Application Workflow

Answers

  • Hi @cheryl.eje

    To follow up on the above answer from @raksina.samasiri and the challenge of dealing with limits, as the article points out, you can reduce the hit count by providing additional filtering criteria. For example, you may choose to only look at active bonds, via the IsActive property. Alternatively, the service provides a more granular state flag, via AssetState property. Refer to the Properties/Metadata section.