Logo
Reference manual - version qle_version
Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
CrossAssetModel Class Reference

Cross Asset Model. More...

#include <qle/models/crossassetmodel.hpp>

+ Inheritance diagram for CrossAssetModel:

Classes

struct  cache_hasher
 
struct  cache_key
 

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< boost::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)
 
 CrossAssetModel (const std::vector< boost::shared_ptr< IrModel >> &currencyModels, const std::vector< boost::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 boost::shared_ptr< StochasticProcessstateProcess () 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< boost::shared_ptr< Parametrization > > & parametrizations () const
 
const boost::shared_ptr< Parametrizationir (const Size ccy) const
 
const boost::shared_ptr< Parametrizationfx (const Size ccy) const
 
const boost::shared_ptr< Parametrizationinf (const Size i) const
 
const boost::shared_ptr< Parametrizationcr (const Size i) const
 
const boost::shared_ptr< Parametrizationeq (const Size i) const
 
const boost::shared_ptr< Parametrizationcom (const Size i) const
 
const boost::shared_ptr< Parametrizationcrstate (const Size i) const
 
const boost::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 boost::shared_ptr< HwModelhw (const Size ccy) const
 
const boost::shared_ptr< IrHwParametrizationirhw (const Size ccy) const
 
const boost::shared_ptr< LinearGaussMarkovModellgm (const Size ccy) const
 
const boost::shared_ptr< IrLgm1fParametrizationirlgm1f (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 boost::shared_ptr< FxModelfxModel (const Size ccy) const
 
const boost::shared_ptr< FxBsParametrizationfxbs (const Size ccy) const
 
const boost::shared_ptr< InfDkParametrizationinfdk (const Size i) const
 
const boost::shared_ptr< InfJyParameterizationinfjy (const Size i) const
 Inflation JY component.
 
const boost::shared_ptr< CrLgm1fParametrizationcrlgm1f (const Size i) const
 
const boost::shared_ptr< CrCirppcrcirppModel (const Size i) const
 
const boost::shared_ptr< CrCirppParametrizationcrcirpp (const Size i) const
 
const boost::shared_ptr< EqBsParametrizationeqbs (const Size ccy) const
 
const boost::shared_ptr< CommodityModelcomModel (const Size com) const
 
const boost::shared_ptr< CommoditySchwartzParametrizationcombs (const Size ccy) const
 
const boost::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
 
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 correlation (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
 
void setIntegrationPolicy (const boost::shared_ptr< Integrator > integrator, const bool usePiecewiseIntegration=true) const
 
const boost::shared_ptr< Integrator > integrator () 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< boost::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< boost::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< boost::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< boost::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< boost::shared_ptr< BlackCalibrationHelper >> &helpers, OptimizationMethod &method, const EndCriteria &endCriteria, const Constraint &constraint=Constraint(), const std::vector< Real > &weights=std::vector< Real >())
 
void calibrateInfDkVolatilitiesIterative (const Size index, const std::vector< boost::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< boost::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< boost::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< boost::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< boost::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< boost::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< boost::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< boost::shared_ptr< BlackCalibrationHelper >> &helpers, OptimizationMethod &method, const EndCriteria &endCriteria, const Constraint &constraint=Constraint(), const std::vector< Real > &weights=std::vector< Real >())
 
- Public Member Functions inherited from LinkableCalibratedModel
void update () override
 
virtual void calibrate (const std::vector< boost::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< boost::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< boost::shared_ptr< CalibrationHelper > > &)
 
Real value (const Array &params, const std::vector< boost::shared_ptr< BlackCalibrationHelper > > &)
 for backward compatibility
 
const boost::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)
 

Static Public Attributes

static constexpr Size numberOfAssetTypes = 7
 

Protected Member Functions

 CrossAssetModel (const std::vector< boost::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 ()
 
virtual void initializeParametrizations ()
 
virtual void initializeCorrelation ()
 
virtual void initializeArguments ()
 
virtual void finalizeArguments ()
 
virtual void checkModelConsistency () const
 
virtual void initDefaultIntegrator ()
 
virtual void initStateProcess ()
 
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)
 
std::vector< bool > MoveParameter (const AssetType t, const Size param, const Size index, const Size i)
 

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< boost::shared_ptr< Parametrization > > p_
 
std::vector< boost::shared_ptr< IrModel > > irModels_
 
std::vector< boost::shared_ptr< FxModel > > fxModels_
 
std::vector< boost::shared_ptr< CrCirpp > > crcirppModel_
 
std::vector< boost::shared_ptr< CommodityModel > > comModels_
 
Matrix rho_
 
SalvagingAlgorithm::Type salvaging_
 
IrModel::Measure measure_
 
Discretization discretization_
 
boost::shared_ptr< Integrator > integrator_
 
boost::shared_ptr< CrossAssetStateProcessstateProcess_
 
- Protected Attributes inherited from LinkableCalibratedModel
std::vector< boost::shared_ptr< Parameter > > arguments_
 
boost::shared_ptr< Constraintconstraint_
 
EndCriteria::Type endCriteria_
 
Array problemValues_
 

Detailed Description

Cross Asset Model.

Constructor & Destructor Documentation

◆ CrossAssetModel() [1/2]

CrossAssetModel ( const std::vector< boost::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 
)

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< boost::shared_ptr< IrModel >> &  currencyModels,
const std::vector< boost::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 
)

IR-FX model based constructor

Member Function Documentation

◆ stateProcess()

const boost::shared_ptr< StochasticProcess > 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 equity)

◆ update()

void update ( )
override

observer and linked calibrated model interface

◆ parametrizations()

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

the vector of parametrizations

◆ ir()

const boost::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 boost::shared_ptr< HwModel > hw ( const Size  ccy) const

HW components, ccy=0 refers to the domestic currency

◆ lgm()

const boost::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 boost::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 boost::shared_ptr< InfDkParametrization > infdk ( const Size  i) const

INF DK components

◆ crlgm1f()

const boost::shared_ptr< CrLgm1fParametrization > crlgm1f ( const Size  i) const

CR LGM 1F components

◆ crcirppModel()

const boost::shared_ptr< CrCirpp > crcirppModel ( const Size  i) const

CR CIR++ components

◆ eqbs()

const boost::shared_ptr< EqBsParametrization > eqbs ( const Size  ccy) const

EQBS components

◆ combs()

const boost::shared_ptr< CommoditySchwartzParametrization > combs ( const Size  ccy) const

COMBS components

◆ crstateParam()

const boost::shared_ptr< CrStateParametrization > crstateParam ( const Size  index) const

CreditState components

◆ correlation() [1/3]

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/3]

const 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

◆ correlation() [3/3]

void correlation ( 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

◆ setIntegrationPolicy()

void setIntegrationPolicy ( const boost::shared_ptr< Integrator >  integrator,
const bool  usePiecewiseIntegration = true 
) const

analytical moments require numerical integration, which can be customized here

◆ 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< boost::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< boost::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< boost::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

◆ calibrateBsVolatilitiesIterative()

void calibrateBsVolatilitiesIterative ( const AssetType &  assetType,
const Size  aIdx,
const std::vector< boost::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< boost::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

◆ calibrateInfDkVolatilitiesIterative()

void calibrateInfDkVolatilitiesIterative ( const Size  index,
const std::vector< boost::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< boost::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< boost::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< boost::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< boost::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< boost::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< boost::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< boost::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