#include <qle/models/hwpiecewisestatisticalparametrization.hpp>
Public Member Functions | |
| HwPiecewiseStatisticalParametrization (const QuantLib::Currency ¤cy, const QuantLib::Handle< TS > &termStructure, const QuantLib::Array ×, 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 ¤cy, const QuantLib::Handle< TS > &termStructure, const QuantLib::Array ×, const std::vector< Matrix > &sigma, const std::vector< QuantLib::Array > &kappa, const std::string &name=std::string()) | |
| const QuantLib::ext::shared_ptr< Parameter > | parameter (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 ¤cy, 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 ¤cy, 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 ¤cy, const QuantLib::Handle< TS > &termStructure, const QuantLib::Array ×, 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< PseudoParameter > | sigma_ |
| QuantLib::ext::shared_ptr< PseudoParameter > | kappa_ |
| 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 |
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.