Logo
Reference manual - version qle_version
CrossAssetModel Class Reference

Cross Asset Model. More...

#include <qle/models/crossassetmodel.hpp>

Inheritance diagram for CrossAssetModel:

Classes

struct  cache_key
struct  cache_hasher

Public Types

enum class  AssetType : Size {
  IR = 0 , FX = 1 , INF = 2 , CR = 3 ,
  EQ = 4 , COM = 5 , CrState = 6
}
enum class  ModelType {
  LGM1F , HW , BS , DK ,
  CIRPP , JY , GAB , GENERIC
}
enum class  Discretization { Euler , Exact }

Public Member Functions

 CrossAssetModel (const std::vector< QuantLib::ext::shared_ptr< Parametrization > > &parametrizations, const Matrix &correlation=Matrix(), const SalvagingAlgorithm::Type salvaging=SalvagingAlgorithm::None, const IrModel::Measure measure=IrModel::Measure::LGM, const Discretization discretization=Discretization::Exact, const QuantLib::ext::shared_ptr< Integrator > &integrator=nullptr, const bool piecewiseIntegrationWrapper=true)
 CrossAssetModel (const std::vector< QuantLib::ext::shared_ptr< IrModel > > &currencyModels, const std::vector< QuantLib::ext::shared_ptr< FxBsParametrization > > &fxParametrizations, const Matrix &correlation=Matrix(), const SalvagingAlgorithm::Type salvaging=SalvagingAlgorithm::None, const IrModel::Measure measure=IrModel::Measure::LGM, const Discretization discretization=Discretization::Exact, const QuantLib::ext::shared_ptr< Integrator > &integrator=nullptr, const bool piecewiseIntegrationWrapper=true)
QuantLib::ext::shared_ptr< CrossAssetStateProcessstateProcess () const
Size dimension () const
Size brownians () const
Size auxBrownians () const
Size totalNumberOfParameters () const
Size components (const AssetType t) const
Size brownians (const AssetType t, const Size i) const
Size auxBrownians (const AssetType t, const Size i) const
Size stateVariables (const AssetType t, const Size i) const
ModelType modelType (const AssetType t, const Size i) const
IrModel::Measure measure () const
Size ccyIndex (const Currency &ccy) const
Size eqIndex (const std::string &eqName) const
Size infIndex (const std::string &index) const
Size crName (const std::string &name) const
Size comIndex (const std::string &comName) const
void update () override
void generateArguments () override
const std::vector< QuantLib::ext::shared_ptr< Parametrization > > & parametrizations () const
const QuantLib::ext::shared_ptr< Parametrizationir (const Size ccy) const
const QuantLib::ext::shared_ptr< Parametrizationfx (const Size ccy) const
const QuantLib::ext::shared_ptr< Parametrizationinf (const Size i) const
const QuantLib::ext::shared_ptr< Parametrizationcr (const Size i) const
const QuantLib::ext::shared_ptr< Parametrizationeq (const Size i) const
const QuantLib::ext::shared_ptr< Parametrizationcom (const Size i) const
const QuantLib::ext::shared_ptr< Parametrizationcrstate (const Size i) const
const QuantLib::ext::shared_ptr< IrModelirModel (const Size ccy) const
QuantLib::Real numeraire (const Size ccy, const QuantLib::Time t, const QuantLib::Array &x, const QuantLib::Handle< QuantLib::YieldTermStructure > &discountCurve=Handle< YieldTermStructure >(), const QuantLib::Array &aux=Array()) const
QuantLib::Real discountBond (const Size ccy, const QuantLib::Time t, const QuantLib::Time T, const QuantLib::Array &x, const QuantLib::Handle< QuantLib::YieldTermStructure > &discountCurve=Handle< YieldTermStructure >()) const
const QuantLib::ext::shared_ptr< HwModelhw (const Size ccy) const
const QuantLib::ext::shared_ptr< IrHwParametrization > irhw (const Size ccy) const
const QuantLib::ext::shared_ptr< LinearGaussMarkovModellgm (const Size ccy) const
const QuantLib::ext::shared_ptr< IrLgm1fParametrization > irlgm1f (const Size ccy) const
Real numeraire (const Size ccy, const Time t, const Real x, Handle< YieldTermStructure > discountCurve=Handle< YieldTermStructure >()) const
Real bankAccountNumeraire (const Size ccy, const Time t, const Real x, const Real y, Handle< YieldTermStructure > discountCurve=Handle< YieldTermStructure >()) const
Real discountBond (const Size ccy, const Time t, const Time T, const Real x, Handle< YieldTermStructure > discountCurve=Handle< YieldTermStructure >()) const
Real reducedDiscountBond (const Size ccy, const Time t, const Time T, const Real x, Handle< YieldTermStructure > discountCurve=Handle< YieldTermStructure >()) const
Real discountBondOption (const Size ccy, Option::Type type, const Real K, const Time t, const Time S, const Time T, Handle< YieldTermStructure > discountCurve=Handle< YieldTermStructure >()) const
const QuantLib::ext::shared_ptr< FxModelfxModel (const Size ccy) const
const QuantLib::ext::shared_ptr< FxBsParametrizationfxbs (const Size ccy) const
const QuantLib::ext::shared_ptr< InfDkParametrization > infdk (const Size i) const
const QuantLib::ext::shared_ptr< InfJyParameterizationinfjy (const Size i) const
 Inflation JY component.
const QuantLib::ext::shared_ptr< CrLgm1fParametrization > crlgm1f (const Size i) const
const QuantLib::ext::shared_ptr< CrCirppcrcirppModel (const Size i) const
const QuantLib::ext::shared_ptr< CrCirppParametrization > crcirpp (const Size i) const
const QuantLib::ext::shared_ptr< EqBsParametrizationeqbs (const Size ccy) const
const QuantLib::ext::shared_ptr< CommodityModelcomModel (const Size com) const
const QuantLib::ext::shared_ptr< CommoditySchwartzParametrizationcombs (const Size ccy) const
const QuantLib::ext::shared_ptr< CrStateParametrizationcrstateParam (const Size index) const
const Matrix & correlation () const
void checkCorrelationMatrix () const
Size idx (const AssetType t, const Size i) const
Size cIdx (const AssetType t, const Size i, const Size offset=0) const
Size wIdx (const AssetType t, const Size i, const Size offset=0) const
Size pIdx (const AssetType t, const Size i, const Size offset=0) const
Real correlation (const AssetType s, const Size i, const AssetType t, const Size j, const Size iOffset=0, const Size jOffset=0) const
void setCorrelation (const AssetType s, const Size i, const AssetType t, const Size j, const Real value, const Size iOffset=0, const Size jOffset=0)
Discretization discretization () const
SalvagingAlgorithm::Type salvagingAlgorithm () const
const QuantLib::ext::shared_ptr< Integrator > integrator () const
const QuantLib::ext::shared_ptr< Integrator > underlyingIntegrator () const
bool piecewiseIntegrationWrapper () const
std::pair< Real, Real > infdkV (const Size i, const Time t, const Time T)
std::pair< Real, Real > infdkI (const Size i, const Time t, const Time T, const Real z, const Real y)
Real infdkYY (const Size i, const Time t, const Time S, const Time T, const Real z, const Real y, const Real irz)
std::pair< Real, Real > crlgm1fS (const Size i, const Size ccy, const Time t, const Time T, const Real z, const Real y) const
std::pair< Real, Real > crcirppS (const Size i, const Time t, const Time T, const Real y, const Real s) const
virtual Handle< DefaultProbabilityTermStructure > crTs (const Size i) const
virtual std::pair< Real, Real > crS (const Size i, const Size ccy, const Time t, const Time T, const Real z, const Real y) const
void calibrateIrLgm1fVolatilitiesIterative (const Size ccy, 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 calibrateIrLgm1fReversionsIterative (const Size ccy, 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 calibrateIrLgm1fGlobal (const Size ccy, 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 calibrateIrHwVolatilitiesIterativeStatisticalWithRiskNeutralVolatility (const Size ccy, 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 calibrateBsVolatilitiesIterative (const AssetType &assetType, const Size aIdx, 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 calibrateBsVolatilitiesGlobal (const AssetType &assetType, const Size aIdx, 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 calibrateComSchwartz1fSeasonalityIterative (const AssetType &assetType, const Size aIdx, 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 calibrateComSchwartz1fGlobal (const AssetType &assetType, const Size adx, const std::vector< QuantLib::ext::shared_ptr< BlackCalibrationHelper > > &helpers, OptimizationMethod &method, const EndCriteria &endCriteria, const std::map< Size, bool > &toCalibrate, const Constraint &constraint=Constraint(), const std::vector< Real > &weights=std::vector< Real >())
void calibrateInfDkVolatilitiesIterative (const Size index, 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 calibrateInfDkReversionsIterative (const Size index, 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 calibrateInfDkVolatilitiesGlobal (const Size index, 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 calibrateInfDkReversionsGlobal (const Size index, 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 calibrateInfJyGlobal (QuantLib::Size index, const std::vector< QuantLib::ext::shared_ptr< QuantLib::CalibrationHelper > > &helpers, QuantLib::OptimizationMethod &method, const QuantLib::EndCriteria &endCriteria, const std::map< QuantLib::Size, bool > &toCalibrate, const QuantLib::Constraint &constraint=QuantLib::Constraint(), const std::vector< QuantLib::Real > &weights=std::vector< QuantLib::Real >())
void calibrateInfJyIterative (QuantLib::Size inflationModelIndex, QuantLib::Size parameterIndex, const std::vector< QuantLib::ext::shared_ptr< QuantLib::CalibrationHelper > > &helpers, QuantLib::OptimizationMethod &method, const QuantLib::EndCriteria &endCriteria, const QuantLib::Constraint &constraint=QuantLib::Constraint(), const std::vector< QuantLib::Real > &weights=std::vector< QuantLib::Real >())
void calibrateCrLgm1fVolatilitiesIterative (const Size index, 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 calibrateCrLgm1fReversionsIterative (const Size index, 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 >())
std::vector< boolMoveParameter (const AssetType t, const Size param, const Size index, const Size i)
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)

Static Public Attributes

static constexpr Size numberOfAssetTypes = 7

Protected Member Functions

 CrossAssetModel (const std::vector< QuantLib::ext::shared_ptr< Parametrization > > &parametrizations, const Matrix &correlation, SalvagingAlgorithm::Type salvaging, IrModel::Measure measure, const Discretization discretization, const bool)
Size arguments (const AssetType t, const Size i) const
Size aIdx (const AssetType t, const Size i, const Size offset=0) const
virtual std::pair< AssetType, ModelType > getComponentType (const Size i) const
virtual Size getNumberOfParameters (const Size i) const
virtual Size getNumberOfBrownians (const Size i) const
virtual Size getNumberOfAuxBrownians (const Size i) const
virtual Size getNumberOfStateVariables (const Size i) const
void updateIndices (const AssetType &t, const Size i, const Size cIdx, const Size wIdx, const Size pIdx, const Size aIdx)
virtual void initialize (const QuantLib::ext::shared_ptr< Integrator > &integrator)
virtual void initializeParametrizations ()
virtual void initializeCorrelation ()
virtual void initializeArguments ()
virtual void finalizeArguments ()
virtual void checkModelConsistency () const
virtual void initIntegrator (const QuantLib::ext::shared_ptr< Integrator > &integrator)
Real infV (const Size idx, const Size ccy, const Time t, const Time T) const
Real crV (const Size idx, const Size ccy, const Time t, const Time T) const
void appendToFixedParameterVector (const AssetType t, const AssetType v, const Size param, const Size index, const Size i, std::vector< bool > &res)

Protected Attributes

boost::unordered_map< cache_key, std::pair< Real, Real >, cache_hashercache_crlgm1fS_
boost::unordered_map< cache_key, std::pair< Real, Real >, cache_hashercache_infdkI_
std::vector< Size > components_
std::vector< std::vector< Size > > idx_
std::vector< std::vector< Size > > cIdx_
std::vector< std::vector< Size > > wIdx_
std::vector< std::vector< Size > > pIdx_
std::vector< std::vector< Size > > aIdx_
std::vector< std::vector< Size > > brownians_
std::vector< std::vector< Size > > auxBrownians_
std::vector< std::vector< Size > > stateVariables_
std::vector< std::vector< Size > > numArguments_
Size totalDimension_
Size totalNumberOfBrownians_
Size totalNumberOfAuxBrownians_
Size totalNumberOfParameters_
std::vector< std::vector< ModelType > > modelType_
std::vector< QuantLib::ext::shared_ptr< Parametrization > > p_
std::vector< QuantLib::ext::shared_ptr< IrModel > > irModels_
std::vector< QuantLib::ext::shared_ptr< FxModel > > fxModels_
std::vector< QuantLib::ext::shared_ptr< CrCirpp > > crcirppModel_
std::vector< QuantLib::ext::shared_ptr< CommodityModel > > comModels_
Matrix rho_
SalvagingAlgorithm::Type salvaging_ = SalvagingAlgorithm::None
IrModel::Measure measure_ = IrModel::Measure::LGM
Discretization discretization_ = Discretization::Exact
QuantLib::ext::shared_ptr< Integrator > integrator_
QuantLib::ext::shared_ptr< Integrator > underlyingIntegrator_
bool piecewiseIntegrationWrapper_ = true
QuantLib::ext::shared_ptr< CrossAssetStateProcessstateProcess_
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

Cross Asset Model.

Constructor & Destructor Documentation

◆ CrossAssetModel() [1/2]

CrossAssetModel ( const std::vector< QuantLib::ext::shared_ptr< Parametrization > > & parametrizations,
const Matrix & correlation = Matrix(),
const SalvagingAlgorithm::Type salvaging = SalvagingAlgorithm::None,
const IrModel::Measure measure = IrModel::Measure::LGM,
const Discretization discretization = Discretization::Exact,
const QuantLib::ext::shared_ptr< Integrator > & integrator = nullptr,
const bool piecewiseIntegrationWrapper = true )

Parametrizations must be given in the following order

  • IR (first parametrization defines the domestic currency)
  • FX (for all pairs domestic-ccy defined by the IR models)
  • INF (optionally, ccy must be a subset of the IR ccys)
  • CR (optionally, ccy must be a subset of the IR ccys)
  • EQ (for all names equity currency defined in Parametrization)
  • COM (for all names commodity currency defined in Parametrization) If the correlation matrix is not given, it is initialized as the unit matrix (and can be customized after construction of the model).

All IR components must be of type HW or LGM1F, i.e. you can't mix the two types.

◆ CrossAssetModel() [2/2]

CrossAssetModel ( const std::vector< QuantLib::ext::shared_ptr< IrModel > > & currencyModels,
const std::vector< QuantLib::ext::shared_ptr< FxBsParametrization > > & fxParametrizations,
const Matrix & correlation = Matrix(),
const SalvagingAlgorithm::Type salvaging = SalvagingAlgorithm::None,
const IrModel::Measure measure = IrModel::Measure::LGM,
const Discretization discretization = Discretization::Exact,
const QuantLib::ext::shared_ptr< Integrator > & integrator = nullptr,
const bool piecewiseIntegrationWrapper = true )

IR-FX model based constructor

Member Function Documentation

◆ stateProcess()

QuantLib::ext::shared_ptr< CrossAssetStateProcess > stateProcess ( ) const

returns the state process with a given discretization

◆ dimension()

Size dimension ( ) const

total dimension of model (sum of number of state variables)

◆ brownians() [1/2]

Size brownians ( ) const

total number of Brownian motions (excluding aux brownians)

◆ auxBrownians() [1/2]

Size auxBrownians ( ) const

total number of aux Brownian motions

◆ totalNumberOfParameters()

Size totalNumberOfParameters ( ) const

total number of parameters that can be calibrated

◆ components()

Size components ( const AssetType t) const

number of components for an asset class

◆ brownians() [2/2]

Size brownians ( const AssetType t,
const Size i ) const

number of brownian motions for a component excluding aux Brownians

◆ auxBrownians() [2/2]

Size auxBrownians ( const AssetType t,
const Size i ) const

number of aux brownian motions for a component

◆ stateVariables()

Size stateVariables ( const AssetType t,
const Size i ) const

number of state variables for a component

◆ modelType()

ModelType modelType ( const AssetType t,
const Size i ) const

model type of a component

◆ measure()

IrModel::Measure measure ( ) const

Choice of probability measure

◆ ccyIndex()

Size ccyIndex ( const Currency & ccy) const

return index for currency (0 = domestic, 1 = first foreign currency and so on)

◆ eqIndex()

Size eqIndex ( const std::string & eqName) const

return index for equity (0 = first equity)

◆ infIndex()

Size infIndex ( const std::string & index) const

return index for inflation (0 = first inflation index)

◆ crName()

Size crName ( const std::string & name) const

return index for credit (0 = first credit name)

◆ comIndex()

Size comIndex ( const std::string & comName) const

return index for commodity (0 = first comm name)

◆ update()

void update ( )
override

observer and linked calibrated model interface

◆ generateArguments()

void generateArguments ( )
overridevirtual

Reimplemented from LinkableCalibratedModel.

◆ parametrizations()

const std::vector< QuantLib::ext::shared_ptr< Parametrization > > & parametrizations ( ) const

the vector of parametrizations

◆ ir()

const QuantLib::ext::shared_ptr< Parametrization > ir ( const Size ccy) const

components per asset class, see below for specific model type inspectors

◆ numeraire() [1/2]

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

numeraire

◆ discountBond() [1/2]

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

discount bond

◆ hw()

const QuantLib::ext::shared_ptr< HwModel > hw ( const Size ccy) const

HW components, ccy=0 refers to the domestic currency

◆ lgm()

const QuantLib::ext::shared_ptr< LinearGaussMarkovModel > lgm ( const Size ccy) const

LGM1F components, ccy=0 refers to the domestic currency

◆ numeraire() [2/2]

Real numeraire ( const Size ccy,
const Time t,
const Real x,
Handle< YieldTermStructure > discountCurve = Handle<YieldTermStructure>() ) const

DEPRECATED LGM measure numeraire

◆ bankAccountNumeraire()

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

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

◆ discountBond() [2/2]

Real discountBond ( const Size ccy,
const Time t,
const Time T,
const Real x,
Handle< YieldTermStructure > discountCurve = Handle<YieldTermStructure>() ) const

DEPRECATED LGM specific discountBond

◆ reducedDiscountBond()

Real reducedDiscountBond ( const Size ccy,
const Time t,
const Time T,
const Real x,
Handle< YieldTermStructure > discountCurve = Handle<YieldTermStructure>() ) const

DEPRECATED LGM specific discountBond

◆ discountBondOption()

Real discountBondOption ( const Size ccy,
Option::Type type,
const Real K,
const Time t,
const Time S,
const Time T,
Handle< YieldTermStructure > discountCurve = Handle<YieldTermStructure>() ) const

DEPRECATED LGM specific discountBond

◆ fxbs()

const QuantLib::ext::shared_ptr< FxBsParametrization > fxbs ( const Size ccy) const

FXBS components, ccy=0 referes to the first foreign currency, so it corresponds to ccy+1 if you want to get the corresponding irmgl1f component

◆ infdk()

const QuantLib::ext::shared_ptr< InfDkParametrization > infdk ( const Size i) const

INF DK components

◆ crlgm1f()

const QuantLib::ext::shared_ptr< CrLgm1fParametrization > crlgm1f ( const Size i) const

CR LGM 1F components

◆ crcirppModel()

const QuantLib::ext::shared_ptr< CrCirpp > crcirppModel ( const Size i) const

CR CIR++ components

◆ eqbs()

const QuantLib::ext::shared_ptr< EqBsParametrization > eqbs ( const Size ccy) const

EQBS components

◆ combs()

const QuantLib::ext::shared_ptr< CommoditySchwartzParametrization > combs ( const Size ccy) const

COMBS components

◆ crstateParam()

const QuantLib::ext::shared_ptr< CrStateParametrization > crstateParam ( const Size index) const

CreditState components

◆ correlation() [1/2]

const Matrix & correlation ( ) const

correlation linking the different marginal models, note that the use of asset class pairs specific inspectors is recommended instead of the global matrix directly

◆ checkCorrelationMatrix()

void checkCorrelationMatrix ( ) const

check if correlation matrix is valid

◆ idx()

Size idx ( const AssetType t,
const Size i ) const

index of component in the parametrization vector

◆ cIdx()

Size cIdx ( const AssetType t,
const Size i,
const Size offset = 0 ) const

index of component in the correlation matrix, by offset

◆ wIdx()

Size wIdx ( const AssetType t,
const Size i,
const Size offset = 0 ) const

index of component in the Brownian vector (including aux brownians), by offset this is checked to be equal to cIdx for Euler discretization and pIdx for exact discretization as an internal assertion

◆ pIdx()

Size pIdx ( const AssetType t,
const Size i,
const Size offset = 0 ) const

index of component in the stochastic process array, by offset

◆ correlation() [2/2]

Real correlation ( const AssetType s,
const Size i,
const AssetType t,
const Size j,
const Size iOffset = 0,
const Size jOffset = 0 ) const

correlation between two components

◆ setCorrelation()

void setCorrelation ( const AssetType s,
const Size i,
const AssetType t,
const Size j,
const Real value,
const Size iOffset = 0,
const Size jOffset = 0 )

set correlation

◆ discretization()

Discretization discretization ( ) const

get discretization

◆ salvagingAlgorithm()

SalvagingAlgorithm::Type salvagingAlgorithm ( ) const

get salvaging algorithm

◆ integrator()

const QuantLib::ext::shared_ptr< Integrator > integrator ( ) const

the integrator used to calculate moments

◆ infdkV()

std::pair< Real, Real > infdkV ( const Size i,
const Time t,
const Time T )

return (V(t), V^tilde(t,T)) in the notation of the book

◆ infdkI()

std::pair< Real, Real > infdkI ( const Size i,
const Time t,
const Time T,
const Real z,
const Real y )

return (I(t), I^tilde(t,T)) in the notation of the book, note that I(0) is normalized to 1 here, i.e. you have to multiply the result with the index value (as of the base date of the inflation ts)

◆ infdkYY()

Real infdkYY ( const Size i,
const Time t,
const Time S,
const Time T,
const Real z,
const Real y,
const Real irz )

return YoYIIS(t) in the notation of the book, the year on year swaplet price from S to T, at time t

◆ crlgm1fS()

std::pair< Real, Real > crlgm1fS ( const Size i,
const Size ccy,
const Time t,
const Time T,
const Real z,
const Real y ) const

returns (S(t), S^tilde(t,T)) in the notation of the book

◆ crcirppS()

std::pair< Real, Real > crcirppS ( const Size i,
const Time t,
const Time T,
const Real y,
const Real s ) const

returns (S(t), S^tilde(t,T)) in the notation of the book

◆ crTs()

Handle< DefaultProbabilityTermStructure > crTs ( const Size i) const
virtual

tentative: more generic interface that is agnostic of the model type - so far only for CR

◆ calibrateIrLgm1fVolatilitiesIterative()

void calibrateIrLgm1fVolatilitiesIterative ( const Size ccy,
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 >() )

calibration procedures

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

◆ calibrateIrLgm1fReversionsIterative()

void calibrateIrLgm1fReversionsIterative ( const Size ccy,
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 irlgm1f reversion to a sequence of ir options with maturities equal to step times in the parametrization

◆ calibrateIrLgm1fGlobal()

void calibrateIrLgm1fGlobal ( const Size ccy,
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 irlgm1f parameters for one ccy globally to a set of ir options

◆ calibrateIrHwVolatilitiesIterativeStatisticalWithRiskNeutralVolatility()

void calibrateIrHwVolatilitiesIterativeStatisticalWithRiskNeutralVolatility ( const Size ccy,
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 irhw volatilities to a sequence of ir options with expiry times equal to step times in the parametrization and following the procedure in HwPiecewiseStatisticalParametrization

◆ calibrateBsVolatilitiesIterative()

void calibrateBsVolatilitiesIterative ( const AssetType & assetType,
const Size aIdx,
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 eq or fx volatilities to a sequence of options with expiry times equal to step times in the parametrization

◆ calibrateBsVolatilitiesGlobal()

void calibrateBsVolatilitiesGlobal ( const AssetType & assetType,
const Size aIdx,
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 eq/fx/com volatilities globally to a set of eq/fx/com options

◆ calibrateComSchwartz1fSeasonalityIterative()

void calibrateComSchwartz1fSeasonalityIterative ( const AssetType & assetType,
const Size aIdx,
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 com sesonalitites to a sequence of options with expiry times equal to step times in the parametrization

◆ calibrateComSchwartz1fGlobal()

void calibrateComSchwartz1fGlobal ( const AssetType & assetType,
const Size adx,
const std::vector< QuantLib::ext::shared_ptr< BlackCalibrationHelper > > & helpers,
OptimizationMethod & method,
const EndCriteria & endCriteria,
const std::map< Size, bool > & toCalibrate,
const Constraint & constraint = Constraint(),
const std::vector< Real > & weights = std::vector< Real >() )

calibrate com parameters globally to a set of com options

◆ calibrateInfDkVolatilitiesIterative()

void calibrateInfDkVolatilitiesIterative ( const Size index,
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 infdk volatilities to a sequence of cpi options with expiry times equal to step times in the parametrization

◆ calibrateInfDkReversionsIterative()

void calibrateInfDkReversionsIterative ( const Size index,
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 infdk reversions to a sequence of cpi options with maturity times equal to step times in the parametrization

◆ calibrateInfDkVolatilitiesGlobal()

void calibrateInfDkVolatilitiesGlobal ( const Size index,
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 infdk volatilities globally to a sequence of cpi cap/floors

◆ calibrateInfDkReversionsGlobal()

void calibrateInfDkReversionsGlobal ( const Size index,
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 infdk reversions globally to a sequence of cpi cap/floors

◆ calibrateInfJyGlobal()

void calibrateInfJyGlobal ( QuantLib::Size index,
const std::vector< QuantLib::ext::shared_ptr< QuantLib::CalibrationHelper > > & helpers,
QuantLib::OptimizationMethod & method,
const QuantLib::EndCriteria & endCriteria,
const std::map< QuantLib::Size, bool > & toCalibrate,
const QuantLib::Constraint & constraint = QuantLib::Constraint(),
const std::vector< QuantLib::Real > & weights = std::vector< QuantLib::Real >() )

Calibrate JY inflation parameters globally.

The parameter toCalibrate indicates which parameters of the JY inflation model that we want to calibrate. The map key should be in {0, 1, 2} where 0 indicates the real rate volatility, 1 indicates the real rate reversion and 2 indicates the inflation index volatility. The value is true if we wish to calibrate the parameter and false if we do not want to calibrate it.

◆ calibrateInfJyIterative()

void calibrateInfJyIterative ( QuantLib::Size inflationModelIndex,
QuantLib::Size parameterIndex,
const std::vector< QuantLib::ext::shared_ptr< QuantLib::CalibrationHelper > > & helpers,
QuantLib::OptimizationMethod & method,
const QuantLib::EndCriteria & endCriteria,
const QuantLib::Constraint & constraint = QuantLib::Constraint(),
const std::vector< QuantLib::Real > & weights = std::vector< QuantLib::Real >() )

Calibrate a single JY inflation parameter iteratively.

Calibrate one of real rate volatility, real rate reversion or inflation index volatility. The parameterIndex indicates the parameter that should be calibrated where 0 indicates the real rate volatility, 1 indicates the real rate reversion and 2 indicates the inflation index volatility.

◆ calibrateCrLgm1fVolatilitiesIterative()

void calibrateCrLgm1fVolatilitiesIterative ( const Size index,
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 crlgm1f volatilities to a sequence of cds options with expiry times equal to step times in the parametrization

◆ calibrateCrLgm1fReversionsIterative()

void calibrateCrLgm1fReversionsIterative ( const Size index,
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 crlgm1f reversions to a sequence of cds options with maturity times equal to step times in the parametrization

◆ arguments()

Size arguments ( const AssetType t,
const Size i ) const
protected

number of arguments for a component

◆ aIdx()

Size aIdx ( const AssetType t,
const Size i,
const Size offset = 0 ) const
protected

index of component in the arguments vector, by offset

◆ getComponentType()

virtual std::pair< AssetType, ModelType > getComponentType ( const Size i) const
protectedvirtual

asset and model type for given parametrization

◆ getNumberOfParameters()

virtual Size getNumberOfParameters ( const Size i) const
protectedvirtual

number of parameters for given parametrization

◆ getNumberOfBrownians()

virtual Size getNumberOfBrownians ( const Size i) const
protectedvirtual

number of brownians (excluding aux brownians) for given parametrization

◆ getNumberOfAuxBrownians()

virtual Size getNumberOfAuxBrownians ( const Size i) const
protectedvirtual

number of aux brownians for given parametrization

◆ getNumberOfStateVariables()

virtual Size getNumberOfStateVariables ( const Size i) const
protectedvirtual

number of state variables for given parametrization

◆ updateIndices()

void updateIndices ( const AssetType & t,
const Size i,
const Size cIdx,
const Size wIdx,
const Size pIdx,
const Size aIdx )
protected

helper function to init component indices