Linear Gauss Morkov Model. More...
#include <qle/models/lgm.hpp>
Inheritance diagram for LinearGaussMarkovModel:
Collaboration 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 > ¶metrization, 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, 100)) | |
| Measure | measure () const override |
| IrModel interface. More... | |
| const QuantLib::ext::shared_ptr< Parametrization > | parametrizationBase () 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< StochasticProcess > | stateProcess () 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. More... | |
| 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< bool > | MoveVolatility (const Size i) |
| std::vector< bool > | MoveReversion (const Size i) |
| void | setCalibrationInfo (const LgmCalibrationInfo &calibrationInfo) |
| const LgmCalibrationInfo & | getCalibrationInfo () const |
| virtual Measure | measure () const =0 |
| virtual const QuantLib::ext::shared_ptr< Parametrization > | parametrizationBase () const =0 |
| virtual Handle< YieldTermStructure > | termStructure () const =0 |
| virtual Size | n () const =0 |
| virtual Size | m () const =0 |
| virtual Size | n_aux () const =0 |
| virtual Size | m_aux () const =0 |
| virtual QuantLib::ext::shared_ptr< StochasticProcess > | stateProcess () const =0 |
| virtual QuantLib::Real | discountBond (const QuantLib::Time t, const QuantLib::Time T, const QuantLib::Array &x, const QuantLib::Handle< QuantLib::YieldTermStructure > &discountCurve=Handle< YieldTermStructure >()) const =0 |
| virtual 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 =0 |
| virtual QuantLib::Real | shortRate (const QuantLib::Time t, const QuantLib::Array &x, const QuantLib::Handle< QuantLib::YieldTermStructure > &discountCurve=Handle< YieldTermStructure >()) const =0 |
Public Member Functions inherited from LinkableCalibratedModel | |
| 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) More... | |
| 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 More... | |
| Real | value (const Array ¶ms, const std::vector< QuantLib::ext::shared_ptr< CalibrationHelper > > &) |
| Real | value (const Array ¶ms, const std::vector< QuantLib::ext::shared_ptr< BlackCalibrationHelper > > &) |
| for backward compatibility More... | |
| const QuantLib::ext::shared_ptr< Constraint > & | constraint () const |
| EndCriteria::Type | endCriteria () const |
| Returns end criteria result. More... | |
| const Array & | problemValues () const |
| Returns the problem values. More... | |
| Array | params () const |
| Returns array of arguments on which calibration is done. More... | |
| virtual void | setParams (const Array ¶ms) |
| virtual void | setParam (Size idx, const Real value) |
Private Attributes | |
| QuantLib::ext::shared_ptr< IrLgm1fParametrization > | parametrization_ |
| QuantLib::ext::shared_ptr< Integrator > | integrator_ |
| Measure | measure_ |
| Discretization | discretization_ |
| bool | evaluateBankAccount_ |
| QuantLib::ext::shared_ptr< StochasticProcess1D > | stateProcess_ |
| LgmCalibrationInfo | calibrationInfo_ |
Additional Inherited Members | |
| virtual void | generateArguments () |
Protected Attributes inherited from LinkableCalibratedModel | |
| std::vector< QuantLib::ext::shared_ptr< Parameter > > | arguments_ |
| QuantLib::ext::shared_ptr< Constraint > | constraint_ |
| EndCriteria::Type | endCriteria_ |
| Array | problemValues_ |
Linear Gauss Morkov Model.
LGM 1f interest rate model Basically the same remarks as for CrossAssetModel hold
|
strong |
| LinearGaussMarkovModel | ( | const QuantLib::ext::shared_ptr< IrLgm1fParametrization > & | parametrization, |
| const Measure | measure = Measure::LGM, |
||
| const Discretization | discretization = Discretization::Euler, |
||
| const bool | evaluateBankAccount = true, |
||
| const QuantLib::ext::shared_ptr< Integrator > & | integrator = QuantLib::ext::make_shared<SimpsonIntegral>(1.0E-8, 100) |
||
| ) |
Definition at line 26 of file lgm.cpp.
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
(effective) number of Brownians required to evolve the auxilliary state, typcially for exact discretization schemes
Implements IrModel.
Definition at line 61 of file lgm.cpp.
Here is the caller graph for this function:
|
overridevirtual |
|
overridevirtual |
discount bond depending on state (of dimension n())
Implements IrModel.
Definition at line 181 of file lgm.hpp.
Here is the call graph for this function:
Here is the caller graph for this function:
|
overridevirtual |
numeraire depending on state and aux state (of dimensions n(), n_aux()
Implements IrModel.
Definition at line 188 of file lgm.hpp.
Here is the call graph for this function:
Here is the caller graph for this function:
|
overridevirtual |
| 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 |
Definition at line 205 of file lgm.hpp.
| 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
Definition at line 47 of file lgm.cpp.
Here is the caller graph for this function:| Real discountBond | ( | const Time | t, |
| const Time | T, | ||
| const Real | x, | ||
| Handle< YieldTermStructure > | discountCurve = Handle<YieldTermStructure>() |
||
| ) | const |
Definition at line 213 of file lgm.hpp.
| Real reducedDiscountBond | ( | const Time | t, |
| const Time | T, | ||
| const Real | x, | ||
| const Handle< YieldTermStructure > | discountCurve = Handle<YieldTermStructure>() |
||
| ) | const |
Definition at line 232 of file lgm.hpp.
Here is the call graph for this function:| Real discountBondOption | ( | Option::Type | type, |
| const Real | K, | ||
| const Time | t, | ||
| const Time | S, | ||
| const Time | T, | ||
| Handle< YieldTermStructure > | discountCurve = Handle<YieldTermStructure>() |
||
| ) | const |
Definition at line 242 of file lgm.hpp.
| 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
Definition at line 259 of file lgm.hpp.
Here is the call graph for this function:| 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
Definition at line 269 of file lgm.hpp.
Here is the call graph for this function:| 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
Definition at line 280 of file lgm.hpp.
Here is the call graph for this function:| 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
Definition at line 291 of file lgm.hpp.
Here is the call graph for this function:
|
override |
|
overridevirtual |
Reimplemented from LinkableCalibratedModel.
Definition at line 173 of file lgm.hpp.
Here is the call graph for this function:| std::vector< bool > MoveVolatility | ( | const Size | i | ) |
calibration constraints, these can be used directly, or through the customized calibrate methods above
Definition at line 133 of file lgm.hpp.
Here is the caller graph for this function:| std::vector< bool > MoveReversion | ( | const Size | i | ) |
Definition at line 141 of file lgm.hpp.
Here is the caller graph for this function:| void setCalibrationInfo | ( | const LgmCalibrationInfo & | calibrationInfo | ) |
set info on how the model was calibrated
Definition at line 150 of file lgm.hpp.
| const LgmCalibrationInfo & getCalibrationInfo | ( | ) | const |
|
private |
|
private |
|
private |
|
private |