QuantLib: OneFactorAffineModel Class Reference

A free/open-source library for quantitative finance Reference manual - version 1.20

Public Member Functions | Protected Member Functions | List of all members
OneFactorAffineModel Class Referenceabstract
Short-rate modelling framework

Single-factor affine base class. More...

`#include <ql/models/shortrate/onefactormodel.hpp>`

Inheritance diagram for OneFactorAffineModel:
[legend]

## Public Member Functions
| OneFactorAffineModel (Size nArguments)
virtual Real | discountBond (Time now, Time maturity, Array factors) const
Real | discountBond (Time now, Time maturity, Rate rate) const
DiscountFactor | discount (Time t) const
| Implied discount curve.
Public Member Functions inherited from OneFactorModel
| OneFactorModel (Size nArguments)
virtual ext::shared_ptr< ShortRateDynamics > | dynamics () const =0
| returns the short-rate dynamics
ext::shared_ptr< Lattice > | tree (const TimeGrid &grid) const
| Return by default a trinomial recombining tree.
Public Member Functions inherited from ShortRateModel
| ShortRateModel (Size nArguments)
Public Member Functions inherited from CalibratedModel
| CalibratedModel (Size nArguments)
void | update ()
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...
virtual QL_DEPRECATED void | calibrate (const std::vector< ext::shared_ptr< BlackCalibrationHelper > > &, 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 >())
Real | value (const Array &params, const std::vector< ext::shared_ptr< CalibrationHelper > > &)
QL_DEPRECATED Real | value (const Array &params, const std::vector< ext::shared_ptr< BlackCalibrationHelper > > &)
const ext::shared_ptr< Constraint > & | constraint () const
EndCriteria::Type | endCriteria () const
| Returns end criteria result.
const Array & | problemValues () const
| Returns the problem values.
Disposable< Array > | params () const
| Returns array of arguments on which calibration is done.
virtual void | setParams (const Array &params)
Integer | functionEvaluation () const
Public Member Functions inherited from Observer
| Observer (const Observer &)
Observer & | operator= (const Observer &)
std::pair< iterator, bool > | registerWith (const ext::shared_ptr< Observable > &)
void | registerWithObservables (const ext::shared_ptr< Observer > &)
Size | unregisterWith (const ext::shared_ptr< Observable > &)
void | unregisterWithAll ()
virtual void | deepUpdate ()
Public Member Functions inherited from Observable
| Observable (const Observable &)
Observable & | operator= (const Observable &)
void | notifyObservers ()
Public Member Functions inherited from AffineModel
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
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 ()

## Additional Inherited Members
Public Types inherited from Observer
typedef boost::unordered_set< ext::shared_ptr< Observable > > | set_type
typedef set_type::iterator | iterator
Protected Attributes inherited from CalibratedModel
std::vector< Parameter > | arguments_
ext::shared_ptr< Constraint > | constraint_
EndCriteria::Type | shortRateEndCriteria_
Array | problemValues_
Integer | functionEvaluation_

## Detailed Description

Single-factor affine base class.

Single-factor models with an analytical formula for discount bonds should inherit from this class. They must then implement the functions \( A(t,T) \) and \( B(t,T) \) such that

\[ P(t, T, r_t) = A(t,T)e^{ -B(t,T) r_t}. \]