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

Cox-Ingersoll-Ross model class. More...

#include <coxingersollross.hpp>

+ Inheritance diagram for CoxIngersollRoss:
+ Collaboration diagram for CoxIngersollRoss:

Classes

class  Dynamics
 Dynamics of the short-rate under the Cox-Ingersoll-Ross model More...
 

Public Member Functions

 CoxIngersollRoss (Rate r0=0.05, Real theta=0.1, Real k=0.1, Real sigma=0.1, bool withFellerConstraint=true)
 
Real discountBondOption (Option::Type type, Real strike, Time maturity, Time bondMaturity) const override
 
ext::shared_ptr< ShortRateDynamicsdynamics () const override
 returns the short-rate dynamics More...
 
ext::shared_ptr< Latticetree (const TimeGrid &grid) const override
 Return by default a trinomial recombining tree. More...
 
- Public Member Functions inherited from OneFactorAffineModel
 OneFactorAffineModel (Size nArguments)
 
Real discountBond (Time now, Time maturity, Array factors) const override
 
Real discountBond (Time now, Time maturity, Rate rate) const
 
DiscountFactor discount (Time t) const override
 Implied discount curve. More...
 
- Public Member Functions inherited from OneFactorModel
 OneFactorModel (Size nArguments)
 
 ~OneFactorModel () override=default
 
virtual ext::shared_ptr< ShortRateDynamicsdynamics () const =0
 returns the short-rate dynamics More...
 
ext::shared_ptr< Latticetree (const TimeGrid &grid) const override
 Return by default a trinomial recombining tree. More...
 
- Public Member Functions inherited from ShortRateModel
 ShortRateModel (Size nArguments)
 
virtual ext::shared_ptr< Latticetree (const TimeGrid &) const =0
 
- Public Member Functions inherited from CalibratedModel
 CalibratedModel (Size nArguments)
 
void update () override
 
virtual void calibrate (const std::vector< ext::shared_ptr< CalibrationHelper > > &, OptimizationMethod &method, const EndCriteria &endCriteria, const Constraint &constraint=Constraint(), const std::vector< Real > &weights=std::vector< Real >(), const std::vector< bool > &fixParameters=std::vector< bool >())
 Calibrate to a set of market instruments (usually caps/swaptions) More...
 
Real value (const Array &params, const std::vector< ext::shared_ptr< CalibrationHelper > > &)
 
const ext::shared_ptr< Constraint > & constraint () const
 
EndCriteria::Type endCriteria () const
 Returns end criteria result. More...
 
const ArrayproblemValues () const
 Returns the problem values. More...
 
Array params () const
 Returns array of arguments on which calibration is done. More...
 
virtual void setParams (const Array &params)
 
Integer functionEvaluation () const
 
- Public Member Functions inherited from Observer
 Observer ()=default
 
 Observer (const Observer &)
 
Observeroperator= (const Observer &)
 
virtual ~Observer ()
 
std::pair< iterator, boolregisterWith (const ext::shared_ptr< Observable > &)
 
void registerWithObservables (const ext::shared_ptr< Observer > &)
 
Size unregisterWith (const ext::shared_ptr< Observable > &)
 
void unregisterWithAll ()
 
virtual void update ()=0
 
virtual void deepUpdate ()
 
- Public Member Functions inherited from Observable
 Observable ()
 
 Observable (const Observable &)
 
Observableoperator= (const Observable &)
 
 Observable (Observable &&)=delete
 
Observableoperator= (Observable &&)=delete
 
virtual ~Observable ()=default
 
void notifyObservers ()
 
- Public Member Functions inherited from AffineModel
virtual DiscountFactor discount (Time t) const =0
 Implied discount curve. More...
 
virtual Real discountBond (Time now, Time maturity, Array factors) const =0
 
virtual Real discountBondOption (Option::Type type, Real strike, Time maturity, Time bondMaturity) const =0
 
virtual Real discountBondOption (Option::Type type, Real strike, Time maturity, Time bondStart, Time bondMaturity) const
 

Protected Member Functions

Real A (Time t, Time T) const override
 
Real B (Time t, Time T) const override
 
Real theta () const
 
Real k () const
 
Real sigma () const
 
Real x0 () const
 
virtual Real A (Time t, Time T) const =0
 
virtual Real B (Time t, Time T) const =0
 
- Protected Member Functions inherited from CalibratedModel
virtual void generateArguments ()
 

Private Attributes

Parametertheta_
 
Parameterk_
 
Parametersigma_
 
Parameterr0_
 

Additional Inherited Members

- Public Types inherited from Observer
typedef set_type::iterator iterator
 
- Protected Attributes inherited from CalibratedModel
std::vector< Parameterarguments_
 
ext::shared_ptr< Constraintconstraint_
 
EndCriteria::Type shortRateEndCriteria_ = EndCriteria::None
 
Array problemValues_
 
Integer functionEvaluation_
 

Detailed Description

Cox-Ingersoll-Ross model class.

This class implements the Cox-Ingersoll-Ross model defined by

\[ dr(t) = k(\theta - r(t))dt + \sigma \sqrt{r(t)} dW(t) \]

Bug:
this class was not tested enough to guarantee its functionality.

Definition at line 44 of file coxingersollross.hpp.

Constructor & Destructor Documentation

◆ CoxIngersollRoss()

CoxIngersollRoss ( Rate  r0 = 0.05,
Real  theta = 0.1,
Real  k = 0.1,
Real  sigma = 0.1,
bool  withFellerConstraint = true 
)

Definition at line 43 of file coxingersollross.cpp.

+ Here is the call graph for this function:

Member Function Documentation

◆ discountBondOption()

Real discountBondOption ( Option::Type  type,
Real  strike,
Time  maturity,
Time  bondMaturity 
) const
overridevirtual

Implements AffineModel.

Reimplemented in ExtendedCoxIngersollRoss.

Definition at line 83 of file coxingersollross.cpp.

+ Here is the call graph for this function:

◆ dynamics()

ext::shared_ptr< OneFactorModel::ShortRateDynamics > dynamics ( ) const
overridevirtual

returns the short-rate dynamics

Implements OneFactorModel.

Reimplemented in ExtendedCoxIngersollRoss.

Definition at line 59 of file coxingersollross.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tree()

ext::shared_ptr< Lattice > tree ( const TimeGrid grid) const
overridevirtual

Return by default a trinomial recombining tree.

Reimplemented from OneFactorModel.

Reimplemented in ExtendedCoxIngersollRoss.

Definition at line 126 of file coxingersollross.cpp.

+ Here is the call graph for this function:

◆ A()

Real A ( Time  t,
Time  T 
) const
overrideprotectedvirtual

Implements OneFactorAffineModel.

Reimplemented in ExtendedCoxIngersollRoss.

Definition at line 64 of file coxingersollross.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ B()

Real B ( Time  t,
Time  T 
) const
overrideprotectedvirtual

Implements OneFactorAffineModel.

Definition at line 74 of file coxingersollross.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ theta()

Real theta ( ) const
protected

Definition at line 67 of file coxingersollross.hpp.

+ Here is the caller graph for this function:

◆ k()

Real k ( ) const
protected

Definition at line 68 of file coxingersollross.hpp.

+ Here is the caller graph for this function:

◆ sigma()

Real sigma ( ) const
protected

Definition at line 69 of file coxingersollross.hpp.

+ Here is the caller graph for this function:

◆ x0()

Real x0 ( ) const
protected

Definition at line 70 of file coxingersollross.hpp.

+ Here is the caller graph for this function:

Member Data Documentation

◆ theta_

Parameter& theta_
private

Definition at line 75 of file coxingersollross.hpp.

◆ k_

Parameter& k_
private

Definition at line 76 of file coxingersollross.hpp.

◆ sigma_

Parameter& sigma_
private

Definition at line 77 of file coxingersollross.hpp.

◆ r0_

Parameter& r0_
private

Definition at line 78 of file coxingersollross.hpp.