RDP Inactive corporate Bonds
Hi,
Happy New Year!
I am trying to capture, using RDP query in Python, the inactive bonds for a given ParentOAPermID. Can you please confirm that the following (upper) snippet does what I am looking for.
A couple of more questions:
a. I see that there are quite few bonds without ISIN. Why is that?
b. I see that my query reached the 10000 limit, so I guess I will have to introduce additional filters to get all the bonds, right?
c. is it correct to say that bonds which are not any more active, do not have a RIC? If so, would a better approach be the 2nd one shown below, which is based on the RIC?
Many thanks
Kind regards
Grigorios
sBankID = '5043337560'
GroupSize = 10000
filterStrINACTIVE = " ParentOAPermID eq '{0}' " \
" and ( ( AssetStatus eq 'CLD') or ( AssetStatus eq 'MAT') ) ".format(sBankID)
srchfields = "RIC,ISIN, FullName, AssetStatus, ParentOAPermID, IssuerName, IssuerLegalName,IssuerOAPermID, Currency,IssueDate, MaturityDate, CouponRate"
dataINACT = rdp.search(view=rdp.SearchViews.GovCorpInstruments, filter=filterStrINACTIVE, top=GroupSize, select=srchfields)
dataINACTvalidISIN = dataINACT[ dataINACT["ISIN"].isnull()==False]
dataINACT.shape
# --> (10000, 10)
dataINACTvalidISIN.shape
# --> (9683, 10)
Approach based on RIC:
filterStrINACTIVEviaRIC = " ParentOAPermID eq '{0}' " \
" and RIC eq null ".format(sBankID)
srchfields = "RIC,ISIN, FullName, AssetStatus, ParentOAPermID, IssuerName, IssuerLegalName,IssuerOAPermID, Currency,IssueDate, MaturityDate, CouponRate"
dataINACTviaRIC = rdp.search(view=rdp.SearchViews.GovCorpInstruments, filter=filterStrINACTIVEviaRIC, top=GroupSize, select=srchfields)
Best Answer
-
The first thing I would suggest you do is to confirm exactly what you consider as "Inactive". For example, based on the bond you specified and looking at the status of the asset, I see this distribution:
From here, you can see some potential candidates that you may consider as 'inactive'. There is a specific status indicator 'Not Active' you can use with a total of 17 hits. However, if you also want to lump in those bonds that have matured (or any others), you can clearly see the total hits you would have to consider, i.e Matured has over 120,000. If you only want to look at the 'Not Active', you can clearly retrieve this. However, if you want to include others, such as those that have matured, you will need to figure out if you want to filter out some of them. Or, if you need to retrieve every 'matured' bond as well, then you would have to apply some techniques I outlined within Search - limits.
As for missing 'ISIN's, there may be a category of matured bonds or some condition that may explain why certain matured bonds don't have an ISIN - I would suggest you raise content questions within the Refinitiv Helpdesk.
As for the alternative approach to retrieve the bonds based on a RIC filter, this may be applicable if you understand why some bonds don't have RICs and if the reasons make sense for your use case - again, a content specialist would be your best source for this.
0
Answers
-
small addition to the filter I used above:
filterStrINACTIVE = " ParentOAPermID eq '{0}' and ((DerivedCategory eq 'BOND') or (DerivedCategory eq 'Note')) " \
" and ( ( AssetStatus eq 'CLD') or ( AssetStatus eq 'MAT') ) ".format(sBankID)0 -
One more question:
I see that:
set(dataINACTvalidISIN["MaturityDate"])
{'2022-12-15T00:00:00.000Z', '2003-02-27T00:00:00.000Z', ...}
How can I change the filter to only get Bonds with MaturityDate greater than a given date, or between two MaturityDate values?
Many thanks in advance
0 -
0
-
Can you provide a link to the related question?
0
Categories
- All Categories
- 6 AHS
- 37 Alpha
- 161 App Studio
- 4 Block Chain
- 4 Bot Platform
- 16 Connected Risk APIs
- 47 Data Fusion
- 30 Data Model Discovery
- 608 Datastream
- 1.3K DSS
- 577 Eikon COM
- 4.9K Eikon Data APIs
- 7 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- Trading API
- 2.7K Elektron
- 1.3K EMA
- 236 ETA
- 519 WebSocket API
- 33 FX Venues
- 10 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 20 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 59 Open Calais
- 264 Open PermID
- 39 Entity Search
- 2 Org ID
- PAM
- PAM - Logging
- 8.4K Private Comments
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 20 RDMS
- 1.4K Refinitiv Data Platform
- 367 Refinitiv Data Platform Libraries
- 3 Refinitiv Due Diligence
- LSEG Due Diligence Portal API
- 3 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.1K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 10 World-Check Customer Risk Screener
- 990 World-Check One
- 44 World-Check One Zero Footprint
- 45 Side by Side Integration API
- Test Space
- 3 Thomson One Smart
- 1.2K TR Internal
- Global Hackathon 2015
- 2 Specialists Who Code
- 10 TR Knowledge Graph
- 150 Transactions
- 142 REDI API
- 1.7K TREP APIs
- 4 CAT
- 21 DACS Station
- 117 Open DACS
- 1.1K RFA
- 103 UPA
- 172 TREP Infrastructure
- 224 TRKD
- 886 TRTH
- 5 Velocity Analytics
- 5 Wealth Management Web Services
- 59 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛