Cross Asset Model. More...
#include <qle/models/crossassetmodel.hpp>
Classes | |
struct | cache_hasher |
struct | cache_key |
Public Member Functions | |
CrossAssetModel (const std::vector< boost::shared_ptr< Parametrization >> ¶metrizations, 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 >> ¤cyModels, 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< StochasticProcess > | stateProcess () 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< Parametrization > | ir (const Size ccy) const |
const boost::shared_ptr< Parametrization > | fx (const Size ccy) const |
const boost::shared_ptr< Parametrization > | inf (const Size i) const |
const boost::shared_ptr< Parametrization > | cr (const Size i) const |
const boost::shared_ptr< Parametrization > | eq (const Size i) const |
const boost::shared_ptr< Parametrization > | com (const Size i) const |
const boost::shared_ptr< Parametrization > | crstate (const Size i) const |
const boost::shared_ptr< IrModel > | irModel (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< HwModel > | hw (const Size ccy) const |
const boost::shared_ptr< IrHwParametrization > | irhw (const Size ccy) const |
const boost::shared_ptr< LinearGaussMarkovModel > | lgm (const Size ccy) const |
const boost::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 boost::shared_ptr< FxModel > | fxModel (const Size ccy) const |
const boost::shared_ptr< FxBsParametrization > | fxbs (const Size ccy) const |
const boost::shared_ptr< InfDkParametrization > | infdk (const Size i) const |
const boost::shared_ptr< InfJyParameterization > | infjy (const Size i) const |
Inflation JY component. | |
const boost::shared_ptr< CrLgm1fParametrization > | crlgm1f (const Size i) const |
const boost::shared_ptr< CrCirpp > | crcirppModel (const Size i) const |
const boost::shared_ptr< CrCirppParametrization > | crcirpp (const Size i) const |
const boost::shared_ptr< EqBsParametrization > | eqbs (const Size ccy) const |
const boost::shared_ptr< CommodityModel > | comModel (const Size com) const |
const boost::shared_ptr< CommoditySchwartzParametrization > | combs (const Size ccy) const |
const boost::shared_ptr< CrStateParametrization > | crstateParam (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 ¶ms, const std::vector< boost::shared_ptr< CalibrationHelper > > &) |
Real | value (const Array ¶ms, 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 ¶ms) |
Static Public Attributes | |
static constexpr Size | numberOfAssetTypes = 7 |
Protected Member Functions | |
CrossAssetModel (const std::vector< boost::shared_ptr< Parametrization >> ¶metrizations, 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_hasher > | cache_crlgm1fS_ |
boost::unordered_map< cache_key, std::pair< Real, Real >, cache_hasher > | cache_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< CrossAssetStateProcess > | stateProcess_ |
Protected Attributes inherited from LinkableCalibratedModel | |
std::vector< boost::shared_ptr< Parameter > > | arguments_ |
boost::shared_ptr< Constraint > | constraint_ |
EndCriteria::Type | endCriteria_ |
Array | problemValues_ |
Cross Asset Model.
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
All IR components must be of type HW or LGM1F, i.e. you can't mix the two types.
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
const boost::shared_ptr< StochasticProcess > stateProcess | ( | ) | const |
returns the state process with a given discretization
Size dimension | ( | ) | const |
total dimension of model (sum of number of state variables)
Size brownians | ( | ) | const |
total number of Brownian motions (excluding aux brownians)
Size auxBrownians | ( | ) | const |
total number of aux Brownian motions
Size totalNumberOfParameters | ( | ) | const |
total number of parameters that can be calibrated
Size components | ( | const AssetType | t | ) | const |
number of components for an asset class
Size brownians | ( | const AssetType | t, |
const Size | i | ||
) | const |
number of brownian motions for a component excluding aux Brownians
Size auxBrownians | ( | const AssetType | t, |
const Size | i | ||
) | const |
number of aux brownian motions for a component
Size stateVariables | ( | const AssetType | t, |
const Size | i | ||
) | const |
number of state variables for a component
ModelType modelType | ( | const AssetType | t, |
const Size | i | ||
) | const |
model type of a component
IrModel::Measure measure | ( | ) | const |
Choice of probability measure
Size ccyIndex | ( | const Currency & | ccy | ) | const |
return index for currency (0 = domestic, 1 = first foreign currency and so on)
Size eqIndex | ( | const std::string & | eqName | ) | const |
return index for equity (0 = first equity)
Size infIndex | ( | const std::string & | index | ) | const |
return index for inflation (0 = first inflation index)
Size crName | ( | const std::string & | name | ) | const |
return index for credit (0 = first credit name)
Size comIndex | ( | const std::string & | comName | ) | const |
return index for commodity (0 = first equity)
|
override |
observer and linked calibrated model interface
const std::vector<boost::shared_ptr<Parametrization> >& parametrizations | ( | ) | const |
the vector of parametrizations
const boost::shared_ptr< Parametrization > ir | ( | const Size | ccy | ) | const |
components per asset class, see below for specific model type inspectors
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
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
const boost::shared_ptr< HwModel > hw | ( | const Size | ccy | ) | const |
HW components, ccy=0 refers to the domestic currency
const boost::shared_ptr< LinearGaussMarkovModel > lgm | ( | const Size | ccy | ) | const |
LGM1F components, ccy=0 refers to the domestic currency
Real numeraire | ( | const Size | ccy, |
const Time | t, | ||
const Real | x, | ||
Handle< YieldTermStructure > | discountCurve = Handle<YieldTermStructure>() |
||
) | const |
DEPRECATED LGM measure numeraire
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
Real discountBond | ( | const Size | ccy, |
const Time | t, | ||
const Time | T, | ||
const Real | x, | ||
Handle< YieldTermStructure > | discountCurve = Handle<YieldTermStructure>() |
||
) | const |
DEPRECATED LGM specific discountBond
Real reducedDiscountBond | ( | const Size | ccy, |
const Time | t, | ||
const Time | T, | ||
const Real | x, | ||
Handle< YieldTermStructure > | discountCurve = Handle<YieldTermStructure>() |
||
) | const |
DEPRECATED LGM specific discountBond
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
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
const boost::shared_ptr< InfDkParametrization > infdk | ( | const Size | i | ) | const |
INF DK components
const boost::shared_ptr< CrLgm1fParametrization > crlgm1f | ( | const Size | i | ) | const |
CR LGM 1F components
const boost::shared_ptr< CrCirpp > crcirppModel | ( | const Size | i | ) | const |
CR CIR++ components
const boost::shared_ptr< EqBsParametrization > eqbs | ( | const Size | ccy | ) | const |
EQBS components
const boost::shared_ptr< CommoditySchwartzParametrization > combs | ( | const Size | ccy | ) | const |
COMBS components
const boost::shared_ptr< CrStateParametrization > crstateParam | ( | const Size | index | ) | const |
CreditState components
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
void checkCorrelationMatrix | ( | ) | const |
check if correlation matrix is valid
Size idx | ( | const AssetType | t, |
const Size | i | ||
) | const |
index of component in the parametrization vector
Size cIdx | ( | const AssetType | t, |
const Size | i, | ||
const Size | offset = 0 |
||
) | const |
index of component in the correlation matrix, by offset
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
Size pIdx | ( | const AssetType | t, |
const Size | i, | ||
const Size | offset = 0 |
||
) | const |
index of component in the stochastic process array, by offset
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
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 | ( | ) | const |
get discretization
SalvagingAlgorithm::Type salvagingAlgorithm | ( | ) | const |
get salvaging algorithm
void setIntegrationPolicy | ( | const boost::shared_ptr< Integrator > | integrator, |
const bool | usePiecewiseIntegration = true |
||
) | const |
analytical moments require numerical integration, which can be customized here
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
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)
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
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
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
|
virtual |
tentative: more generic interface that is agnostic of the model type - so far only for CR
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
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
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
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
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
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
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
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
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
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.
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.
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
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
|
protected |
number of arguments for a component
|
protected |
index of component in the arguments vector, by offset
|
protectedvirtual |
asset and model type for given parametrization
|
protectedvirtual |
number of parameters for given parametrization
|
protectedvirtual |
number of brownians (excluding aux brownians) for given parametrization
|
protectedvirtual |
number of aux brownians for given parametrization
|
protectedvirtual |
number of state variables for given parametrization
|
protected |
helper function to init component indices