Upgrade from Eikon -> Workspace. Learn about programming differences.

For a deeper look into our Eikon Data API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
1 0 0 0

Eikon API has inconsistent output for bond OAS

I am currently using Eikon to save bond OAS data regularly by first querying rdp / govsrch to get a list of bonds and then using eikon's get_data() to pull OAS for these bonds. I've noticed that the number of returns from this query varies greatly, sometimes I get 7k valid returns for the OAS data and sometimes I get 14k. Is there a reason for getting such varied amounts of valid results and is there any predictability to this?

My code is essentially a loop of

data, err = ek.get_data(universe,'TR.OPTIONADJUSTEDSPREADBID',{'SDate':OAS_date})

in which 'universe' is a list of bond RICs and the returned 'data' variable gets added to a dataframe. I pull this data 1000 at a time to avoid data limits so this shouldn't be an issue here.


Any help would be greatly appreciated.

refinitiv-dataplatform-eikon#technology#contentbonds
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Hi @alex.sullivan ,

Is the issue still persist? If so, could you please provide more information requested for further investigation?

Thanks,
AHS

@alex.sullivan

Hi,

Thank you for your participation in the forum.

Are any of the replies below satisfactory in resolving your query? If yes please click the 'Accept' text next to the most appropriate reply.

If you knew an answer, please share and then accept it. This will guide all community members who have a similar question.

Otherwise please post again offering further insight into your question.

Thanks,

AHS

@alex.sullivan

Hi,

Please be informed that a reply has been verified as correct in answering the question, and marked as such.

Thanks,

AHS

Upvotes
Accepted
14.2k 30 5 10

Hi @alex.sullivan ,

Thank you for your patience. I've tried with some date and rate but cannot reproduce the issue.

Could you please let me know if the issue is still persist?

If so, it'd be nice if you could provide the value of parameters date and rating that cause this issue for further investigation.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
10.2k 18 6 9

@alex.sullivan can you please paste the rdp search query - thanks very much

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Hello @jason.ramchandani01

Could you please check the clien code below?

Upvotes
1 0 0 0

@jason.ramchandani01 the rdp search query is listed below, however the rdp search query isn't the issue as it returns a consistent number of bonds. The issue is that given this list of bonds, the ek get_data query has inconsistent behavior.


rdp.search(
                                view = rdp.SearchViews.GovCorpInstruments,
                                top = 10000,
                                filter = "( (RCSCouponCurrencyLeaf xeq 'US Dollar' and RCSCurrencyLeaf eq 'US Dollar') and  ((InstrumentTypeDescription xeq 'Note' or \
                                            InstrumentTypeDescription xeq 'Bond' or InstrumentTypeDescription xeq 'Debenture')) and (SeniorityType in ('SR' 'UN')) and \
                                            (RCSCouponTypeGenealogy eq 'M:1EU\A:C1') and DbType eq 'CORP' and RCSAssetCategory eq 'A:J' and (RCSBondGradeLeaf eq \
                                            'Investment Grade' or RCSBondGradeLeaf eq 'High Yield') and DebtType ne 'SYKHYB' and DebtType ne 'SUK*' and IsConvertible\
                                            eq false and IssueDate le "+date+" and MaturityDate gt "+date+" and CouponFrequencyDescription xeq 'Semiannually' and \
                                            FaceOutstanding gt 0 and ((RatingsScope(RatingType eq 'MDY' and CurrentRatingRank ge "+rating+" and CurrentRatingRank le "+rating+"))))",

                                select = "DBSTicker, RCSAssetCategory,RIC, EJVAssetID, DTSubjectName, BusinessEntity,SeniorityTypeDescription, PI, CUSIP, ISIN, RCSCurrencyLeaf, RCSCountryLeaf, \
                                        CouponRate, MaturityDate, IssueDate, InstrumentTypeDescription,RCSCouponTypeGenealogy,FaceIssuedUSD,RCSBondGradeLeaf,CouponFrequencyDescription,\
                                        FaceOutstanding,RCSCouponCurrencyLeaf,RCSTRBC2012Leaf,RatingsScope(filter:((RatingType xeq 'MDY'))),RatingX1XRatingRank,IndustrySubSectorDescription"
                                )

note that in this code, 'date' and 'rating' are variables which are iterated through to avoid query limits.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.