Logo
Reference manual - version qle_version
LinearGaussMarkovModel Class Reference

Linear Gauss Morkov Model. More...

#include <qle/models/lgm.hpp>

Inheritance diagram for LinearGaussMarkovModel:

Public Types

enum class  Discretization { Euler , Exact }
Public Types inherited from IrModel
enum class  Measure { LGM , BA }

Public Member Functions

 LinearGaussMarkovModel (const QuantLib::ext::shared_ptr< IrLgm1fParametrization > &parametrization, const Measure measure=Measure::LGM, const Discretization=Discretization::Euler, const bool evaluateBankAccount=true, const QuantLib::ext::shared_ptr< Integrator > &integrator=QuantLib::ext::make_shared< SimpsonIntegral >(1.0E-8, 16))
Measure measure () const override
 IrModel interface.
const QuantLib::ext::shared_ptr< ParametrizationparametrizationBase () const override
Handle< YieldTermStructure > termStructure () const override
Size n () const override
Size m () const override
Size n_aux () const override
Size m_aux () const override
QuantLib::ext::shared_ptr< StochasticProcessstateProcess () const override
QuantLib::Real discountBond (const QuantLib::Time t, const QuantLib::Time T, const QuantLib::Array &x, const QuantLib::Handle< QuantLib::YieldTermStructure > &discountCurve=Handle< YieldTermStructure >()) const override
QuantLib::Real numeraire (const QuantLib::Time t, const QuantLib::Array &x, const QuantLib::Handle< QuantLib::YieldTermStructure > &discountCurve=Handle< YieldTermStructure >(), const QuantLib::Array &aux=Array()) const override
QuantLib::Real shortRate (const QuantLib::Time t, const QuantLib::Array &x, const QuantLib::Handle< QuantLib::YieldTermStructure > &discountCurve=Handle< YieldTermStructure >()) const override
const QuantLib::ext::shared_ptr< IrLgm1fParametrization > parametrization () const
 LGM specific methods.
Real numeraire (const Time t, const Real x, const Handle< YieldTermStructure > discountCurve=Handle< YieldTermStructure >()) const
Real bankAccountNumeraire (const Time t, const Real x, const Real y, const Handle< YieldTermStructure > discountCurve=Handle< YieldTermStructure >()) const
Real discountBond (const Time t, const Time T, const Real x, Handle< YieldTermStructure > discountCurve=Handle< YieldTermStructure >()) const
Real reducedDiscountBond (const Time t, const Time T, const Real x, const Handle< YieldTermStructure > discountCurve=Handle< YieldTermStructure >()) const
Real discountBondOption (Option::Type type, const Real K, const Time t, const Time S, const Time T, Handle< YieldTermStructure > discountCurve=Handle< YieldTermStructure >()) const
void calibrateVolatilitiesIterative (const std::vector< QuantLib::ext::shared_ptr< BlackCalibrationHelper > > &helpers, OptimizationMethod &method, const EndCriteria &endCriteria, const Constraint &constraint=Constraint(), const std::vector< Real > &weights=std::vector< Real >())
void calibrateReversionsIterative (const std::vector< QuantLib::ext::shared_ptr< BlackCalibrationHelper > > &helpers, OptimizationMethod &method, const EndCriteria &endCriteria, const Constraint &constraint=Constraint(), const std::vector< Real > &weights=std::vector< Real >())
void calibrateVolatilities (const std::vector< QuantLib::ext::shared_ptr< BlackCalibrationHelper > > &helpers, OptimizationMethod &method, const EndCriteria &endCriteria, const Constraint &constraint=Constraint(), const std::vector< Real > &weights=std::vector< Real >())
void calibrateReversions (const std::vector< QuantLib::ext::shared_ptr< BlackCalibrationHelper > > &helpers, OptimizationMethod &method, const EndCriteria &endCriteria, const Constraint &constraint=Constraint(), const std::vector< Real > &weights=std::vector< Real >())
void update () override
void generateArguments () override
std::vector< boolMoveVolatility (const Size i)
std::vector< boolMoveReversion (const Size i)
void setCalibrationInfo (const LgmCalibrationInfo &calibrationInfo)
const LgmCalibrationInfogetCalibrationInfo () const
Public Member Functions inherited from LinkableCalibratedModel
void update () override
virtual void calibrate (const std::vector< QuantLib::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).
virtual void calibrate (const std::vector< QuantLib::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 >())
 for backward compatibility
Real value (const Array &params, const std::vector< QuantLib::ext::shared_ptr< CalibrationHelper > > &)
Real value (const Array &params, const std::vector< QuantLib::ext::shared_ptr< BlackCalibrationHelper > > &)
 for backward compatibility
const QuantLib::ext::shared_ptr< Constraint > & constraint () const
EndCriteria::Type endCriteria () const
 Returns end criteria result.
const Array & problemValues () const
 Returns the problem values.
Array params () const
 Returns array of arguments on which calibration is done.
virtual void setParams (const Array &params)
virtual void setParam (Size idx, const Real value)

Additional Inherited Members

Protected Attributes inherited from LinkableCalibratedModel
std::vector< QuantLib::ext::shared_ptr< Parameter > > arguments_
QuantLib::ext::shared_ptr< Constraintconstraint_
EndCriteria::Type endCriteria_
Array problemValues_

Detailed Description

Linear Gauss Morkov Model.

LGM 1f interest rate model Basically the same remarks as for CrossAssetModel hold

Member Function Documentation

◆ measure()

Measure measure ( ) const
overridevirtual

IrModel interface.

Implements IrModel.

◆ parametrizationBase()

const QuantLib::ext::shared_ptr< Parametrization > parametrizationBase ( ) const
overridevirtual

parametrization (as base class)

Implements IrModel.

◆ termStructure()

Handle< YieldTermStructure > termStructure ( ) const
overridevirtual

yield term structure to which the IrModel is (initially) calibrated

Implements IrModel.

◆ n()

Size n ( ) const
overridevirtual

dimension of model state, excluding auxilliary states

Implements IrModel.

◆ m()

Size m ( ) const
overridevirtual

number of Brownians to evolve the state

Implements IrModel.

◆ n_aux()

Size n_aux ( ) const
overridevirtual

(effective) dimension of auxilliary state, typically to evaluate the numeraire in the BA-measure

Implements IrModel.

◆ m_aux()

Size m_aux ( ) const
overridevirtual

(effective) number of Brownians required to evolve the auxilliary state, typcially for exact discretization schemes

Implements IrModel.

◆ stateProcess()

QuantLib::ext::shared_ptr< StochasticProcess > stateProcess ( ) const
overridevirtual

stochastic process, this has dimension n() + n_aux() and m() + m_aux() Brownian drivers

Implements IrModel.

◆ discountBond()

QuantLib::Real discountBond ( const QuantLib::Time t,
const QuantLib::Time T,
const QuantLib::Array & x,
const QuantLib::Handle< QuantLib::YieldTermStructure > & discountCurve = Handle< YieldTermStructure >() ) const
overridevirtual

discount bond depending on state (of dimension n())

Implements IrModel.

◆ numeraire()

QuantLib::Real numeraire ( const QuantLib::Time t,
const QuantLib::Array & x,
const QuantLib::Handle< QuantLib::YieldTermStructure > & discountCurve = Handle< YieldTermStructure >(),
const QuantLib::Array & aux = Array() ) const
overridevirtual

numeraire depending on state and aux state (of dimensions n(), n_aux()

Implements IrModel.

◆ shortRate()

QuantLib::Real shortRate ( const QuantLib::Time t,
const QuantLib::Array & x,
const QuantLib::Handle< QuantLib::YieldTermStructure > & discountCurve = Handle< YieldTermStructure >() ) const
overridevirtual

short rate at t

Implements IrModel.

◆ bankAccountNumeraire()

Real bankAccountNumeraire ( const Time t,
const Real x,
const Real y,
const Handle< YieldTermStructure > discountCurve = Handle< YieldTermStructure >() ) const

Bank account measure numeraire B(t) as a function of LGM state variable x (with drift) and auxiliary state variable y

◆ calibrateVolatilitiesIterative()

void calibrateVolatilitiesIterative ( const std::vector< QuantLib::ext::shared_ptr< BlackCalibrationHelper > > & helpers,
OptimizationMethod & method,
const EndCriteria & endCriteria,
const Constraint & constraint = Constraint(),
const std::vector< Real > & weights = std::vector<Real>() )

calibrate volatilities to a sequence of ir options with expiry times equal to step times in the parametrization

◆ calibrateReversionsIterative()

void calibrateReversionsIterative ( const std::vector< QuantLib::ext::shared_ptr< BlackCalibrationHelper > > & helpers,
OptimizationMethod & method,
const EndCriteria & endCriteria,
const Constraint & constraint = Constraint(),
const std::vector< Real > & weights = std::vector<Real>() )

calibrate reversion to a sequence of ir options with maturities equal to step times in the parametrization

◆ calibrateVolatilities()

void calibrateVolatilities ( const std::vector< QuantLib::ext::shared_ptr< BlackCalibrationHelper > > & helpers,
OptimizationMethod & method,
const EndCriteria & endCriteria,
const Constraint & constraint = Constraint(),
const std::vector< Real > & weights = std::vector<Real>() )

calibrate volatilities globally

◆ calibrateReversions()

void calibrateReversions ( const std::vector< QuantLib::ext::shared_ptr< BlackCalibrationHelper > > & helpers,
OptimizationMethod & method,
const EndCriteria & endCriteria,
const Constraint & constraint = Constraint(),
const std::vector< Real > & weights = std::vector<Real>() )

calibrate volatilities globally

◆ update()

void update ( )
override

observer and linked calibrated model interface

◆ generateArguments()

void generateArguments ( )
overridevirtual

Reimplemented from LinkableCalibratedModel.

◆ MoveVolatility()

std::vector< bool > MoveVolatility ( const Size i)

calibration constraints, these can be used directly, or through the customized calibrate methods above

◆ setCalibrationInfo()

void setCalibrationInfo ( const LgmCalibrationInfo & calibrationInfo)

set info on how the model was calibrated

◆ getCalibrationInfo()

const LgmCalibrationInfo & getCalibrationInfo ( ) const

get info on how the model was calibrated