| Products & Services | Solutions | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → Financial Toolbox |
| Contents | Index |
| Learn more about Financial Toolbox |
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.
SpotInfo |
Two-column matrix: [SpotDates ZeroRates]. Zero rates correspond to maturities on the spot dates, continuously compounded. Choose evenly spaced rates close together to obtain the best results. For example, using the 3-month deposit rates: SpotInfo = ...
[datenum('2-Jan-2004') , 0.03840;
datenum('2-Jan-2005') , 0.04512;
datenum('2-Jan-2006') , 0.05086];
|
Price |
Price for every $100 notional amount of bonds whose spreads are computed. |
Coupon |
Annual coupon rate of bonds whose spreads are computed. |
Settle |
Settlement date. A vector of serial date numbers or date strings. Settle must be earlier than or equal to Maturity. |
Maturity |
Maturity date. A vector of serial date numbers or date strings. |
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.
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 |
Irregular or normal first coupon date. |
LastCouponDate |
Irregular or normal last coupon date. |
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.
CompoundingFrequency |
Compounding frequency for yield calculation. By default, SIA bases (0-7) and BUS/252 use a semiannual compounding convention and ISMA bases (8-12) use an annual compounding convention. |
DiscountBasis |
Basis used to compute the discount factors for computing the yield. The default behavior is for SIA bases to use the actual/actual day count to compute discount factors. If you use ISMA day counts and BUS/252, the specified bases are used. |
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.
![]() | bndprice | bndyield | ![]() |
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-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |