QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | List of all members
NelsonSiegelFitting Class Reference

Nelson-Siegel fitting method. More...

#include <nonlinearfittingmethods.hpp>

+ Inheritance diagram for NelsonSiegelFitting:
+ Collaboration diagram for NelsonSiegelFitting:

Public Member Functions

 NelsonSiegelFitting (const Array &weights=Array(), const ext::shared_ptr< OptimizationMethod > &optimizationMethod=ext::shared_ptr< OptimizationMethod >(), const Array &l2=Array(), Real minCutoffTime=0.0, Real maxCutoffTime=QL_MAX_REAL)
 
 NelsonSiegelFitting (const Array &weights, const Array &l2, Real minCutoffTime=0.0, Real maxCutoffTime=QL_MAX_REAL)
 
std::unique_ptr< FittedBondDiscountCurve::FittingMethodclone () const override
 clone of the current object More...
 
- Public Member Functions inherited from FittedBondDiscountCurve::FittingMethod
virtual ~FittingMethod ()=default
 
virtual Size size () const =0
 total number of coefficients to fit/solve for More...
 
Array solution () const
 output array of results of optimization problem More...
 
Integer numberOfIterations () const
 final number of iterations used in the optimization problem More...
 
Real minimumCostValue () const
 final value of cost function after optimization More...
 
EndCriteria::Type errorCode () const
 error code of the optimization More...
 
virtual std::unique_ptr< FittingMethodclone () const =0
 clone of the current object More...
 
bool constrainAtZero () const
 return whether there is a constraint at zero More...
 
Array weights () const
 return weights being used More...
 
Array l2 () const
 return l2 penalties being used More...
 
ext::shared_ptr< OptimizationMethodoptimizationMethod () const
 return optimization method being used More...
 
DiscountFactor discount (const Array &x, Time t) const
 open discountFunction to public More...
 

Private Member Functions

Size size () const override
 total number of coefficients to fit/solve for More...
 
DiscountFactor discountFunction (const Array &x, Time t) const override
 discount function called by FittedBondDiscountCurve More...
 

Additional Inherited Members

- Protected Member Functions inherited from FittedBondDiscountCurve::FittingMethod
 FittingMethod (bool constrainAtZero=true, const Array &weights=Array(), ext::shared_ptr< OptimizationMethod > optimizationMethod=ext::shared_ptr< OptimizationMethod >(), Array l2=Array(), Real minCutoffTime=0.0, Real maxCutoffTime=QL_MAX_REAL)
 constructors More...
 
virtual void init ()
 rerun every time instruments/referenceDate changes More...
 
virtual DiscountFactor discountFunction (const Array &x, Time t) const =0
 discount function called by FittedBondDiscountCurve More...
 
- Protected Attributes inherited from FittedBondDiscountCurve::FittingMethod
bool constrainAtZero_
 constrains discount function to unity at \( T=0 \), if true More...
 
FittedBondDiscountCurvecurve_
 internal reference to the FittedBondDiscountCurve instance More...
 
Array solution_
 solution array found from optimization, set in calculate() More...
 
Array guessSolution_
 optional guess solution to be passed into constructor. More...
 
ext::shared_ptr< FittingCost > costFunction_
 base class sets this cost function used in the optimization routine More...
 

Detailed Description

Nelson-Siegel fitting method.

Fits a discount function to the form \( d(t) = \exp^{-r t}, \) where the zero rate \(r\) is defined as

\[ r \equiv c_0 + (c_1 + c_2)*(1 - exp^{-\kappa*t})/(\kappa t) - c_2 exp^{ - \kappa t}. \]

See: Nelson, C. and A. Siegel (1985): "Parsimonious modeling of yield curves for US Treasury bills." NBER Working Paper Series, no 1594.

Examples
FittedBondCurve.cpp.

Definition at line 93 of file nonlinearfittingmethods.hpp.

Constructor & Destructor Documentation

◆ NelsonSiegelFitting() [1/2]

NelsonSiegelFitting ( const Array weights = Array(),
const ext::shared_ptr< OptimizationMethod > &  optimizationMethod = ext::shared_ptr<OptimizationMethod>(),
const Array l2 = Array(),
Real  minCutoffTime = 0.0,
Real  maxCutoffTime = QL_MAX_REAL 
)

Definition at line 105 of file nonlinearfittingmethods.cpp.

◆ NelsonSiegelFitting() [2/2]

NelsonSiegelFitting ( const Array weights,
const Array l2,
Real  minCutoffTime = 0.0,
Real  maxCutoffTime = QL_MAX_REAL 
)

Definition at line 114 of file nonlinearfittingmethods.cpp.

Member Function Documentation

◆ clone()

std::unique_ptr< FittedBondDiscountCurve::FittingMethod > clone ( ) const
overridevirtual

clone of the current object

Implements FittedBondDiscountCurve::FittingMethod.

Definition at line 121 of file nonlinearfittingmethods.cpp.

◆ size()

Size size ( ) const
overrideprivatevirtual

total number of coefficients to fit/solve for

Implements FittedBondDiscountCurve::FittingMethod.

Definition at line 126 of file nonlinearfittingmethods.cpp.

+ Here is the caller graph for this function:

◆ discountFunction()

DiscountFactor discountFunction ( const Array x,
Time  t 
) const
overrideprivatevirtual

discount function called by FittedBondDiscountCurve

Implements FittedBondDiscountCurve::FittingMethod.

Definition at line 130 of file nonlinearfittingmethods.cpp.

+ Here is the call graph for this function: