Main Content

fitNelsonSiegel

Fit Nelson-Siegel model to bond market data

Description

example

outCurve= fitNelsonSiegel(Settle,Instruments,CleanPrice)fits a Nelson-Siegel model to bond data.

Examples

collapse all

Define the bond data and usefininstrumentto createFixedBondinstrument objects.

Settle = datetime(2017,9,15); Maturity = [datetime(2019,9,15);datetime(2021,9,15);...datetime(2023,9,15);datetime(2026,9,7);...datetime(2035,9,15);datetime(2047,9,15)]; CleanPrice = [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]; nInst = numel(CouponRate); Bonds(nInst,1) = fininstrument.FinInstrument;forii=1:nInst Bonds(ii) = fininstrument("FixedBond",'Maturity',Maturity(ii),...'CouponRate',CouponRate(ii));end

UsefitNelsonSiegelto create aparametercurveobject.

NSModel = fitNelsonSiegel(Settle,Bonds,CleanPrice)
Local minimum possible. lsqnonlin stopped because the final change in the sum of squares relative to its initial value is less than the value of the function tolerance.
NSModel = parametercurve with properties: Type: "zero" Settle: 15-Sep-2017 Compounding: -1 Basis: 0 FunctionHandle: @(t)fitF(Params,t) Parameters: [3.5087e-08 0.0363 0.0900 16.5823]

Input Arguments

collapse all

Settlement date, specified as a scalar datetime, serial date number, date character vector, or date string.

Data Types:double|char|string|datetime

Bond instrument objects, specified as an array of bond instruments objects.

Data Types:object

Observed market prices, specified as a vector.

Data Types:double

Output Arguments

collapse all

Fitted Nelson-Siegel model, returned as aparametercurveobject.

版本历史

Introduced in R2020a