| Fixed-Income Toolbox™ | ![]() |
[MYield, BEMBSYield] = mbsoas2yield(ZeroCurve, OAS, Settle, Maturity, IssueDate, GrossRate, CouponRate, Delay, Interpolation, PrepaySpeed, PrepayMatrix)
| ZeroCurve | A matrix of three columns:
|
| OAS | Option-adjusted spreads in basis points. |
| Settle | Settlement date (scalar only). A serial date number or date string. Date when option-adjusted spread is calculated. |
| Maturity | Maturity date. Scalar or vector in serial date number or date string format. |
| IssueDate | Issue date. A serial date number or date string. |
| GrossRate | Gross coupon rate (including fees), in decimal. |
CouponRate | (Optional) Net coupon rate, in decimal. Default = GrossRate. |
| Delay | (Optional) Delay (in days) between payment from homeowner and receipt by bondholder. Default = 0 (no delay between payment and receipt). |
| Interpolation | Interpolation method. Computes the corresponding spot rates for the bond's cash flow. Available methods are (0) nearest, (1) linear, and (2) cubic spline. Default = 1. See interp1 for more information. |
| PrepaySpeed | (Optional) Relation of the conditional payment rate (CPR) to the benchmark model. Default = end of month's CPR. Set PrepaySpeed to [] if you input a customized prepayment matrix. |
| PrepayMatrix | (Optional) Customized prepayment matrix. A matrix of size max(TermRemaining)-by-NMBS. Missing values are padded with NaNs. Each column corresponds to a mortgage-backed security, and each row corresponds to each month after settlement. |
All inputs (except PrepayMatrix) are number of mortgage-backed securities (NMBS) by 1 vectors.
[MYield, BEMBSYield] = mbsoas2yield(ZeroCurve, OAS, Settle, Maturity, IssueDate, GrossRate, CouponRate, Delay, Interpolation, PrepaySpeed, PrepayMatrix) computes the mortgage and bond-equivalent yields of a passthrough security.
MYield is the yield to maturity of the mortgage-backed security (the mortgage yield). This yield is compounded monthly (12 times per year). For example:
0.075 (7.5%)
BEMBSYield is the corresponding bond equivalent yield of the mortgage-backed security. This yield is compounded semiannually (two times per year). For example:
0.0761 (7.61%)
Given an option-adjusted spread, a spot curve, and a prepayment assumption, compute the theoretical yield to maturity of a mortgage pool.
Create the bonds matrix.
Bonds = [datenum('11/21/2002') 0 100 0 2 1;
datenum('02/20/2003') 0 100 0 2 1;
datenum('07/31/2004') 0.03 100 2 3 1;
datenum('08/15/2007') 0.035 100 2 3 1;
datenum('08/15/2012') 0.04875 100 2 3 1;
datenum('02/15/2031') 0.05375 100 2 3 1];
Choose a settlement date.
Settle = datenum('08/20/2002');
Assume these clean prices for the bonds.
Prices = [ 98.97467;
98.58044;
100.10534;
98.18054;
101.38136;
99.25411];
Use this formula to compute spot compounding for the bonds.
SpotCompounding = 2*ones(size(Prices));
Compute the zero curve.
[ZeroRatesP, CurveDatesP] = zbtprice(Bonds, Prices, Settle); ZeroCurve = [CurveDatesP, ZeroRatesP, SpotCompounding];
Assign parameters.
OAS = [26.0502; 28.6348; 31.2222];
Maturity = datenum('02-Jan-2030');
IssueDate = datenum('02-Jan-2000');
GrossRate = 0.08125;
CouponRate = 0.075;
Delay = 14;
Interpolation = 1;
PrepaySpeed = [0 50 100];
Compute the mortgage yield and bond equivalent mortgage yield.
[MYield BEMBSYield] = mbsoas2yield(ZeroCurve, OAS, Settle, ...
Maturity, IssueDate, GrossRate, CouponRate, Delay, ...
Interpolation, PrepaySpeed)
MYield =
0.0802
0.0814
0.0828
BEMBSYield =
0.0816
0.0828
0.0842
mbsprice2oas, mbsyield2oas, mbsoas2price
![]() | mbsoas2price | mbspassthrough | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |