1 / 9

3 general classes of fixed income security pricing methods: “ Discount ” “ Coupon bearing ”

We will have to support a mix of instrument types to support aggregate measures E.g., risk on a book of bonds. 3 general classes of fixed income security pricing methods: “ Discount ” “ Coupon bearing ” “ Pay at maturity ” (pretty rare) We will implement two distinct types: Coupon bearing

caraballoj
Download Presentation

3 general classes of fixed income security pricing methods: “ Discount ” “ Coupon bearing ”

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. We will have to support a mix of instrument types to support aggregate measuresE.g., risk on a book of bonds 3 general classes of fixed income security pricing methods: • “Discount” • “Coupon bearing” • “Pay at maturity” (pretty rare) We will implement two distinct types: • Coupon bearing • Zero coupon (sub-type of Discount)

  2. Zero Coupon bonds • Zero coupon bond is a “discount” type of instrument • Why do these products exist? • No re-investment risk • Tax treatment • Ease of cash-flow matching • Banks used to make them (“animals” or “felines”) • Fun with backronyms: • Lehman “LIONS” – Lehman Investment Opportunity Notes • Merrill “TIGRS” – Treasury Income Growth Receipts • Solomon “CATS” – Certificates of Accrual on Treasury Securities • Now the government does it • Most of the cats have died off... • “STRIPS” – Separately Traded Registered Interest and Principal

  3. Indirection, Polymorphism, Data Abstraction • How to handle a heterogeneous collection? • Coupon-bearing • Zero Coupon • Etc. • Need a pricing “signature” to enforce common behavior • Pricing function signature as an interface class • Data-file parameters will allow us to switch at run-time • Is-a, Has-a, Uses… • The envelope/letter idiom • Collection requirements: • Searching • Summing • Partitioning • Sub-totaling • Refer to code_example.cc

  4. YTM - Pricing a Zero Coupon

  5. Enhancements to Input File • “Ticker” which is a string identifying the bond issuer • a “Rate Type” field which we will need later. For now it specifies the input type as “YIELD” only • Quality code which is the rating an independent agency grades the issuers credit risk – e.g., “AAA” • Amount in 000’s • Note: the coupon field can be 0 which identifies the bond as a zero coupon bond • Hack at the SBB_io* classes to support these changes • Refer to .txt file

  6. Deliverables • Build in support for a “Zero Coupon” Bond • Build a Trading Book collection class to handle a heterogeneous mix of types – must use inheritance • Possible “collectable” abstractions: • Instrument • Calculator • Bond • A good criteria for class design: separately testable • Best way to use the SBB_io class data? • Inherit? • Contain? • Use? • (“is-a”, “has-a”, “uses”…) • Load in the new data file to test an expanded portfolio of products

  7. Deliverables continued… - Download new version of data input file • New data items which will have to added in SBB_io class: • Ticker (unique ID that identifies the issuer of that bond) • Amount (this is the total position for that bond, in thousands) • Quality code (the credit rating for that issuer - we will use this later) • You will have to add a convenience mf() for our industry standard identifier: “Ticker Coupon MaturityDate” (just a concatenation of existing fields) • Using trading book collection class to calculate: • Total Position of the trading book • Positive amounts are “long”, negative amounts “short” • If you have two positions in a trading book (1 long position of 1MM and 1 short position of 1MM), then you would be “flat” on a notional or “face amount” basis. However if the dv01’s are different, then your risk would not be equal. • New measure per bond: “Risk” = dv01 * Amount • Two set of outputs • Per bond: Amount and Risk per line in the tradingbook file, to stdout • Example line: 5000 3.12 • Per book: total position (sum of amounts) and total risk (sum of risks)

  8. Spreadsheet Living Spec • “ytm_sheet.xlsx” is a simpler version of our prior sheet • Highlights the interest rates sensitivity calc (dv01) • Highlights the zero coupon calculation • Using sensitivities vs. full re-valuation • What do you assume away if you use dv01 to approximate a price change (given a yield change)? • Estimate vs. full re-price

  9. First Quiz next week on MMM! • Chapters 1-6 • October 5th

More Related