| Contents | Index |
Spread = bndspread(SpotInfo, Price, Coupon, Settle,
Maturity)
Spread = bndspread(SpotInfo, Price, Coupon, Settle,
Maturity
Period, Basis, EndMonthRule, IssueDate,
FirstCouponDate
LastCouponDate, StartDate, Face)
Spread = bndspread(SpotInfo, Price, Coupon, Settle,
Maturity,
'ParameterName', 'ParameterValue ...)
Spread = bndspread(SpotInfo, Price, Coupon, Settle, Maturity) computes the static spread (Z-spread) to benchmark in basis points.
Spread = bndspread(SpotInfo, Price, Coupon, Settle, MaturityPeriod, Basis, EndMonthRule, IssueDate, FirstCouponDateLastCouponDate, StartDate, Face) computes the static spread (Z-spread) to benchmark in basis points including optional inputs.
Spread = bndspread(SpotInfo, Price, Coupon, Settle, Maturity,'ParameterName', 'ParameterValue ...) accepts optional inputs as one or more comma-separated parameter/value pairs. 'ParameterName' is the name of the parameter inside single quotes. ParameterValue is the value corresponding to 'ParameterName'. Specify parameter/value pairs in any order. Names are case-insensitive.
Enter the following inputs using an ordered syntax or as parameter/value pairs. You cannot mix ordered syntax with parameter/value pairs.
Period |
Coupons per year of the bond. A vector of integers. Values are 0, 1, 2, 3, 4, 6, and 12. Default: 2 |
Basis |
Day-count basis of the instrument. A vector of integers.
For more information, see basis. Default: 0 |
EndMonthRule |
End-of-month rule. A vector. This rule applies only when Maturity is an end-of-month date for a month having 30 or fewer days. 0 = ignore rule, meaning that a bond coupon payment date is always the same numerical day of the month. 1 = set rule on, meaning that a bond coupon payment date is always the last actual day of the month. Default: 1 |
IssueDate |
Issue date for a bond. |
FirstCouponDate |
Date when a bond makes its first coupon payment; used when bond has an irregular first coupon period. When FirstCouponDate and LastCouponDate are both specified, FirstCouponDate takes precedence in determining the coupon payment structure. Default: If you do not specify a FirstCouponDate, the cash flow payment dates are determined from other inputs. |
LastCouponDate |
Last coupon date of a bond before the maturity date; used when bond has an irregular last coupon period. In the absence of a specified FirstCouponDate, a specified LastCouponDate determines the coupon structure of the bond. The coupon structure of a bond is truncated at the LastCouponDate, regardless of where it falls, and is followed only by the bond's maturity cash flow date. Default: If you do not specify a LastCouponDate, the cash flow payment dates are determined from other inputs. |
StartDate |
Date when a bond actually starts (the date from which a bond cash flow is considered). To make an instrument forward-starting, specify this date as a future date. If you do not specify StartDate, the effective start date is the Settle date. |
Face |
Face or par value. Default: 100 |
Enter the following inputs only as parameter/value pairs.
Spread |
Static spread to benchmark, in basis points. |
Compute a Federal National Mortgage Association (FNMA) 4 3/8 spread over a Treasury spot curve:
RefMaturity = [datenum('02/27/2003');
datenum('05/29/2003');
datenum('10/31/2004');
datenum('11/15/2007');
datenum('11/15/2012');
datenum('02/15/2031')];
RefCpn = [0;
0;
2.125;
3;
4;
5.375] / 100;
RefPrices = [99.6964;
99.3572;
100.3662;
99.4511;
99.4299;
106.5756];
RefBonds = [RefPrices, RefMaturity, RefCpn];
Settle = datenum('26-Nov-2002');
[ZeroRates, CurveDates] = zbtprice(RefBonds(:, 2:end), ...
RefPrices, Settle)
% FNMA 4 3/8 maturing 10/06 at 4.30 pm Tuesday
Price = 105.484;
Coupon = 0.04375;
Maturity = datenum('15-Oct-2006');
% All optional inputs are supposed to be accounted by default,
% except the accrued interest under 30/360 (SIA), so:
Period = 2;
Basis = 1;
SpotInfo = [CurveDates, ZeroRates];
% Compute static spread over treasury curve, taking into account
% the shape of curve as derived by bootstrapping method embedded
% within bndspread.
SpreadInBP = bndspread(SpotInfo, Price, Coupon, Settle, ...
Maturity, Period, Basis)This returns:
ZeroRates =
0.0121
0.0127
0.0194
0.0317
0.0423
0.0550
CurveDates =
731639
731730
732251
733361
735188
741854
SpreadInBP =
18.7582Plot the results:
plot(CurveDates, ZeroRates*100, 'b', CurveDates, ...
ZeroRates*100+SpreadInBP/100, 'r--')
legend({'Treasury'; 'FNMA 4 3/8'})
xlabel('Curve Dates')
ylabel('Spot Rate [%]')
grid;

Krgin, Dragomir, Handbook of Global Fixed Income Calculations, John Wiley & Sons, 2002.
Mayle, Jan, "Standard Securities Calculations Methods: Fixed Income Securities Formulas for Analytic Measures", SIA, Vol 2, Jan 1994.
Stigum, Marcia, and Franklin Robinson, Money Market and Bond Calculations, McGraw-Hill, 1996.
View demos and recorded presentations led by industry experts.
Now On Demand
Network with industry peers and learn the latest applications of the leading software product for computational finance.
| © 1984-2012- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |