Logo
Reference manual - version qle_version
HwPiecewiseStatisticalParametrization< TS > Class Template Reference

#include <qle/models/hwpiecewisestatisticalparametrization.hpp>

Inheritance diagram for HwPiecewiseStatisticalParametrization< TS >:

Public Member Functions

 HwPiecewiseStatisticalParametrization (const QuantLib::Currency &currency, const QuantLib::Handle< TS > &termStructure, const QuantLib::Array &times, const QuantLib::Array &sigma0, const QuantLib::Array &kappa, const QuantLib::Array &sigmaRatios, const std::vector< QuantLib::Array > &loadings, const std::string &name=std::string())
Public Member Functions inherited from HwPiecewiseParametrization< TS >
 HwPiecewiseParametrization (const QuantLib::Currency &currency, const QuantLib::Handle< TS > &termStructure, const QuantLib::Array &times, const std::vector< Matrix > &sigma, const std::vector< QuantLib::Array > &kappa, const std::string &name=std::string())
const QuantLib::ext::shared_ptr< Parameterparameter (const Size) const override
const Array & parameterTimes (const Size) const override
QuantLib::Matrix sigma_x (const QuantLib::Time t) const override
QuantLib::Array kappa (const QuantLib::Time t) const override
QuantLib::Matrix y (const QuantLib::Time t) const override
QuantLib::Array g (const QuantLib::Time t, const QuantLib::Time T) const override
Public Member Functions inherited from HwParametrization< TS >
 HwParametrization (const QuantLib::Size n, const QuantLib::Size m, const QuantLib::Currency &currency, const QuantLib::Handle< TS > &termStructure, const std::string &name=std::string())
const QuantLib::Handle< TS > termStructure () const
QuantLib::Size numberOfParameters () const override
QuantLib::Size n () const
QuantLib::Size m () const
void update () const override
Public Member Functions inherited from Parametrization
 Parametrization (const Currency &currency, const std::string &name="")
virtual const Currency & currency () const
virtual Array parameterValues (const Size) const
const std::string & name () const
virtual Real direct (const Size, const Real x) const
virtual Real inverse (const Size, const Real y) const

Additional Inherited Members

Protected Member Functions inherited from HwPiecewiseParametrization< TS >
 HwPiecewiseParametrization (const QuantLib::Size n, const QuantLib::Size m, const QuantLib::Currency &currency, const QuantLib::Handle< TS > &termStructure, const QuantLib::Array &times, const std::string &name=std::string())
QuantLib::Size timeIndex (const QuantLib::Time t) const
QuantLib::Size sigmaIndex (const QuantLib::Size i, const QuantLib::Size j, const QuantLib::Size timeIndex) const
virtual QuantLib::Size kappaIndex (const QuantLib::Size i, const QuantLib::Size timeIndex) const
QuantLib::Matrix sigma_x_ind (const QuantLib::Size timeIndex) const
QuantLib::Array kappa_ind (const QuantLib::Size timeIndex) const
double y_part (double a, double b, double t, const QuantLib::Array &kappa, const QuantLib::Matrix &sigma, QuantLib::Size i, QuantLib::Size j) const
double g_part (double t, double a, double b, double kappa) const
Protected Member Functions inherited from Parametrization
Time tr (const Time t) const
Time tl (const Time t) const
Time tr2 (const Time t) const
Time tm2 (const Time t) const
Time tl2 (const Time t) const
Protected Attributes inherited from HwPiecewiseParametrization< TS >
QuantLib::Array times_
QuantLib::ext::shared_ptr< PseudoParametersigma_
QuantLib::ext::shared_ptr< PseudoParameterkappa_
Protected Attributes inherited from HwParametrization< TS >
QuantLib::Size n_
QuantLib::Size m_
Protected Attributes inherited from Parametrization
const Real h_
const Real h2_
Static Protected Attributes inherited from HwPiecewiseParametrization< TS >
static constexpr QuantLib::Real zeroKappaCutoff_ = 1.0E-6

Detailed Description

template<class TS>
class QuantExt::HwPiecewiseStatisticalParametrization< TS >

HW nF Parametrization with m driving Brownian motions and piecewise reversion, vol

sigma_x is parametrized by a single piecewise volatility

sigma_0(t)

It is this sigma_0(t) that is stored as the sigma_ parameter in this parametrization. From sigma_0 we deduce the volatility of m principial components via sigma ratios

sigma_i(t) = sigma_0(t) * sigmaRatio_i

and (cf. eq 2.17 in the hw model documentation)

sigma_x(t) = v sigma(t)

with v = pca loadings. This way we are able to reproduce implied market volatilities of an option strip (e.g. coterminal strip) as in the 1F case and at the same time reproduce historical curve movements (via kappa) from a pca on historical data retaining the relative historical volatilities of the principal components.

See section 2.3 "statistical calibration with risk neutral volatility" in the hw model documentation for more details.