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
66 2 5 11

Option Adjusted Spread Calculation

I've been doing some quant bond work and have found numerous inconsistencies with OAS data provided by Eikon. This is true both within the platform and in comparison to Bloomberg data as well. Would it be possible to get an explanation regarding the methodology used as well as some direction regarding which of the numerous methods are most inline with industry standard :

oas-4.png

Please note: Bloomberg had 21.09 for the OAS Bid

Additionally, the quote has something entirely different...
1667854859371.png some clarity and direction would be greatly appreciated

My code for both:
fields = ['TR.OASAnalytics', 'TR.FiOptionAdjustedSpread']
oas = ek.get_data('002824BE9', fields=fields)[0]

fields_2 = ['TR.OPTIONADJUSTEDSPREADBID', 'OAS_BID']
oas_bid = ek.get_data('002824BE9=1M', fields=fields_2)[0]
oas_bid


eikonpython#product#contentbondsspread
1667854859371.png (59.1 KiB)
oas-4.png (38.4 KiB)
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 @jgarden,

We would like to fully understand the issue reported and strive to help.

Let us first verify that the same instrument values are compared to the same instrument values, and which instrument to look into?

Please confirm which of the instruments: 002824BE9, 002824BE9= or 002824BE9=1M was compared and is suspected of having the discrepancy?

At present time, via desktop:

002824BE9= OAS_BID = -39.7

002824BE9=1M OAS_BID = 0

The two OAS_BID values are for different instruments and are expected to be different.

002824BE9 is not coming up as valid RIC and is mapped.

In code we see 002824BE9 and 002824BE9=1M , in Eikon 002824BE9=

Next, we are looking to verify on our side the same as you observe.

Thanks

These are ALL THE SAME SECURITY the only difference is that =1M Calls up Marketaxis specifically furthermore the point is moot since if you look at the code, the ek.get_data request for each uses a singe identifier to call two variants of the same field - and they are different. In other words, even if they were different securites (and if you go into the desktop app and enter each you will see that they are the same) the data stored in the oas_bid variable is using the same identifier ('002824BE9=1M') for both fields requested ('TR.OPTIONADJUSTEDSPREADBID', 'OAS_BID' ) and the results are worlds apart. So the idea that its somehow me using different identifiers makes no sense.

Case 11838641 is closed with the following resolution:

The difference between the similar instruments:'002824BE9','002824BE9=1M','002824BE9=' '002824BE9','002824BE9=1M','002824BE9='. Different code may use different source/contributor 

Hi @jgarden ,

Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query?
If so please can you click the 'Accept' text on the left side of the appropriate reply? This will guide all community members who have a similar question.

Thanks,
AHS

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

Thanks,


AHS


its really not though...

1 Answer

· Write an Answer
Upvotes
Accepted
32.2k 40 11 20

Hello @jgarden ,

Sorry for the belated response- I did not see your comment.

From the examples that you have provided, when I run them on my side, the three instruments do differ:

fields = ['TR.OASAnalytics', 'TR.FiOptionAdjustedSpread']
ek.get_data(['002824BE9','002824BE9=1M','002824BE9='], fields=fields)

Results in:

(     Instrument  Option Adjusted Spread  Option Adjusted Spread
 0     002824BE9              -27.195224               24.663915
 1  002824BE9=1M              -73.969221               24.663915
 2    002824BE9=              -27.195224               24.663915,
 None)

And request:

fields_2 = ['TR.OPTIONADJUSTEDSPREADBID', 'OAS_BID']

Results in:

(     Instrument  Option Adjusted Spread Bid  OAS_BID
 0     002824BE9                       -28.6     <NA>
 1  002824BE9=1M                       -42.3    -42.3
 2    002824BE9=                       -28.6    -29.0,
 [{'code': 251658243,
   'col': 2,
   'message': "'The record could not be found' for the instrument '002824BE9'",
   'row': 0}])

The results for instrument 002824BE9= (currently they are OAS_BID = -29.0) requested via API and via desktop, please observe on the screenshot from my testing are the same, we can verify the field used by the template by hovering over the field value:

oas-bid.gif

From what I see, the three mentioned instruments are different, and in my understanding you would like to find out the methodology for the calculation of the fields and the difference between the instruments.

This forum can be of most help with API usage, and our content experts can best help with insight into the content provided via API.

An Eikon support content ticket #11838641 has been opened on your behalf, please expect our content experts to reach out to you shortly via email.

Hope that this helps





oas-bid.gif (121.9 KiB)
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 @jgarden

I checked case 11838641. The case is closed with the following answer from the Content support team.


The difference between the similar instruments:'002824BE9','002824BE9=1M','002824BE9='   '002824BE9','002824BE9=1M','002824BE9='. Different code may use different source/contributor

for ex. RIC <002824BE9=1M'> is sourced from MARKETAXESS while 002824BE9= is the composite RIC which is mainly source from Eval Pricing

002824BE9 is the CUSIP.... since client is retrieving pricing data (not T&C data), it will retrieve it from the default/preferred RIC for this instrument which is typically the composite RIC

The methodology used in calculation of fields: 'TR.OASAnalytics', 'TR.FiOptionAdjustedSpread', 'TR.OPTIONADJUSTEDSPREADBID', 'OAS_BID' for these instruments.  OAS_BID is the real time field on Quote. this is FID 3712. refer to STR/OAS as this is on Quote, the calculation depends on the RIC used
TR.OPTIONADJUSTEDSPREADBID - this is a time series data item which practically stores the eod snap of OAS_BID
TR.FiOptionAdjustedSpread - this is the OAS calculated on the REPS Valuation tab - essentially uses RRPS price
TR.OASAnalytics - based from Adfin Function - typically gets the same value as bond calculator. depended on the contributed MID price. 

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.