| Fixed-Income Toolbox™ | ![]() |
CurveObj = IRFunctionCurve.fitSvensson(Type, Settle, Instruments) CurveObj = IRFunctionCurve.fitSvensson(Type, Settle, Instruments, Parameter1', Value1, 'Parameter2', Value2, ...)
| Type | Type of interest-rate curve for a bond: zero or forward. |
| Settle | Scalar or column vector of settlement dates. |
| Instruments | N-by-4 data matrix for Instruments where the first column is Settle date, the second column is Maturity, the third column is dirty price, and the fourth column is a CouponRate for the bond. |
| Compounding | (Optional) Compounding value for an IRFunctionCurve object:
|
| Basis | (Optional) Day-count basis of the interest-rate curve. A vector of integers.
|
| IRFitOptionsObj | (Optional) Object constructed from IRFitOptions. |
For each bond Instrument, you can specify the following additional instrument parameters as parameter/value pairs by prepending the word Instrument to the parameter field. For example, prepending InstrumentBasis distinguishes a bond instrument's Basis value from the curve's Basis value.
CouponRate | (Optional) Decimal number indicating the annual percentage rate used to determine the coupons payable on a bond. |
Period | (Optional) Coupons per year of the bond. A vector of integers. Allowed values are 0, 1, 2 (default), 3, 4, 6, and 12. |
Basis | (Optional) Day-count basis of the bond. A vector of integers.
|
EndMonthRule | (Optional) 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's coupon payment date is always the same numerical day of the month. 1 = set rule on (default), meaning that a bond's coupon payment date is always the last actual day of the month. |
IssueDate | (Optional) Date when an instrument was issued. |
FirstCouponDate | (Optional) Date when a bond makes its first coupon payment. When FirstCouponDate and LastCouponDate are both specified, FirstCouponDate takes precedence in determining the coupon payment structure. |
LastCouponDate | (Optional) Last coupon date of a bond before the maturity date. 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 will be followed only by the bond's maturity cash flow date. |
Face | (Optional) Face or par value. Default = 100. |
Note When using Instrument parameter/value pairs, you can specify simple interest for a bond by specifying the InstrumentPeriod value as 0. If InstrumentBasis and InstrumentPeriod are not specified for a bond, the following default values are used: Basis is 0 (act/act) and Period is 2. |
CurveObj = IRFunctionCurve.fitSvensson(Type, Settle, Instruments, Parameter1', Value1, 'Parameter2', Value2, ...) fits the Svensson function to bond market data. You must enter the optional arguments for Basis, Compounding, and IRFitOptionsObj as parameter/value pairs.
Settle = repmat(datenum('30-Apr-2008'),[6 1]);
Maturity = [datenum('07-Mar-2009');datenum('07-Mar-2011');...
datenum('07-Mar-2013');datenum('07-Sep-2016');...
datenum('07-Mar-2025');datenum('07-Mar-2036')];
DirtyPrice = [100.1;100.1;100.8;96.6;103.3;96.3];
CouponRate = [0.0400;0.0425;0.0450;0.0400;0.0500;0.0425];
Instruments = [Settle Maturity DirtyPrice CouponRate];
PlottingPoints = datenum('07-Mar-2009'):180:datenum('07-Mar-2036');
Yield = bndyield(DirtyPrice,CouponRate,Settle,Maturity);
SvenssonModel = IRFunctionCurve.fitSvensson('Zero',datenum('30-Apr-2008'),Instruments);
Optimization terminated: relative function value
changing by less than OPTIONS.TolFun.
To create a plot:
plot(PlottingPoints,SvenssonModel.getParYields(PlottingPoints),'g') hold on scatter(Maturity,Yield,'black')

@IRFitOptions, @IRFunctionCurve
![]() | fitSmoothingSpline | getDiscountFactors | ![]() |
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |