QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
Loading...
Searching...
No Matches
ExponentialSplinesFitting Class Reference

Exponential-splines fitting method. More...

#include <ql/termstructures/yield/nonlinearfittingmethods.hpp>

Inheritance diagram for ExponentialSplinesFitting:

Public Member Functions

 ExponentialSplinesFitting (bool constrainAtZero=true, const Array &weights=Array(), const ext::shared_ptr< OptimizationMethod > &optimizationMethod={}, const Array &l2=Array(), Real minCutoffTime=0.0, Real maxCutoffTime=QL_MAX_REAL, Size numCoeffs=9, Real fixedKappa=Null< Real >(), Constraint constraint=NoConstraint())
 ExponentialSplinesFitting (bool constrainAtZero, const Array &weights, const Array &l2, Real minCutoffTime=0.0, Real maxCutoffTime=QL_MAX_REAL, Size numCoeffs=9, Real fixedKappa=Null< Real >(), Constraint constraint=NoConstraint())
 ExponentialSplinesFitting (bool constrainAtZero, Size numCoeffs, Real fixedKappa, const Array &weights=Array(), Constraint constraint=NoConstraint())
std::unique_ptr< FittedBondDiscountCurve::FittingMethodclone () const override
 clone of the current object
Public Member Functions inherited from FittedBondDiscountCurve::FittingMethod
Array solution () const
 output array of results of optimization problem
Integer numberOfIterations () const
 final number of iterations used in the optimization problem
Real minimumCostValue () const
 final value of cost function after optimization
EndCriteria::Type errorCode () const
 error code of the optimization
bool constrainAtZero () const
 return whether there is a constraint at zero
Array weights () const
 return weights being used
Array l2 () const
 return l2 penalties being used
ext::shared_ptr< OptimizationMethodoptimizationMethod () const
 return optimization method being used
const Constraintconstraint () const
 return optimization contraint
DiscountFactor discount (const Array &x, Time t) const
 open discountFunction to public

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, Constraint constraint=NoConstraint())
 constructors
virtual void init ()
 rerun every time instruments/referenceDate changes
Protected Attributes inherited from FittedBondDiscountCurve::FittingMethod
bool constrainAtZero_
 constrains discount function to unity at \( T=0 \), if true
FittedBondDiscountCurvecurve_
 internal reference to the FittedBondDiscountCurve instance
Array solution_
 solution array found from optimization, set in calculate()
Array guessSolution_
 optional guess solution to be passed into constructor.
ext::shared_ptr< FittingCost > costFunction_
 base class sets this cost function used in the optimization routine

Detailed Description

Exponential-splines fitting method.

Fits a discount function to the exponential form

\[d(t) = \sum_{i=1}^9 c_i e^{-\kappa_i t} \]

where the constants \( c_i \) and \( \kappa \) are to be determined. See:Li, B., E. DeWetering, G. Lucas, R. Brenner and A. Shapiro (2001): "Merrill Lynch Exponential Spline Model." Merrill Lynch Working Paper

\( \kappa \) can be passed a fixed value, in which case it is excluded from optimization.

Warning
convergence may be slow
Examples
FittedBondCurve.cpp.

Member Function Documentation

◆ clone()

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

clone of the current object

Implements FittedBondDiscountCurve::FittingMethod.