#include <qle/models/parametrization.hpp>
Public Member Functions | |
Parametrization (const Currency ¤cy, const std::string &name="") | |
virtual const Currency & | currency () const |
virtual const Array & | parameterTimes (const Size) const |
virtual Size | numberOfParameters () const |
virtual Array | parameterValues (const Size) const |
virtual const boost::shared_ptr< Parameter > | parameter (const Size) const |
virtual void | update () const |
const std::string & | name () const |
virtual Real | direct (const Size, const Real x) const |
virtual Real | inverse (const Size, const Real y) const |
Protected Member Functions | |
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 | |
const Real | h_ |
const Real | h2_ |
Base class for classes representing model parameters. There is a disctinction between "actual" and "raw" parameters. The "actual" parameter value is the true value of the parameter, e.g. 0.20 to represent a black scholes volatility of 20%. The "raw" parameter is derived from the actual parameter by applying a transformation
actual value = direct( raw value ) raw value = inverse( actual value )
The idea behind that is that the optimization during a model calibration can be performed as an unconstrained optimization which usually works more stable and is faster than a constrained optimization. For example, to ensure a positive black volatility one can use the transformation
direct ( x ) = x * x
To ensure a valid correlation one can use the transformation
direct ( x ) = (atan( x ) + pi / 2) / pi
and so forth. To implement you own transformation you can overwrite the direct() and inverse() methods. The default implementation of these methods represents the trivial transformation (identity, i.e. direct( x ) = x ).
|
virtual |
the currency associated to this parametrization
|
virtual |
the times associated to parameter i
Reimplemented in Lgm1fPiecewiseLinearParametrization< TS >, Lgm1fPiecewiseConstantParametrization< TS >, Lgm1fPiecewiseConstantHullWhiteAdaptor< TS >, FxBsPiecewiseConstantParametrization, and EqBsPiecewiseConstantParametrization.
|
virtual |
the number of parameters in this parametrization
Reimplemented in Lgm1fParametrization< TS >, InfJyParameterization, HwParametrization< TS >, FxBsParametrization, EqBsParametrization, CommoditySchwartzParametrization, and CirppParametrization< TS >.
|
virtual |
the actual parameter values
|
virtual |
the parameter storing the raw parameter values
Reimplemented in Lgm1fPiecewiseLinearParametrization< TS >, Lgm1fPiecewiseConstantParametrization< TS >, Lgm1fPiecewiseConstantHullWhiteAdaptor< TS >, Lgm1fConstantParametrization< TS >, FxBsPiecewiseConstantParametrization, FxBsConstantParametrization, EqBsPiecewiseConstantParametrization, EqBsConstantParametrization, CommoditySchwartzParametrization, CirppConstantWithFellerParametrization< TS >, and CirppConstantParametrization< TS >.
|
virtual |
this method should be called when input parameters linked via references or pointers change in order to ensure consistent results
Reimplemented in Lgm1fPiecewiseLinearParametrization< TS >, Lgm1fPiecewiseConstantParametrization< TS >, Lgm1fPiecewiseConstantHullWhiteAdaptor< TS >, Lgm1fParametrization< TS >, InfJyParameterization, HwParametrization< TS >, FxBsPiecewiseConstantParametrization, and EqBsPiecewiseConstantParametrization.
const std::string& name | ( | ) | const |
return a name (inflation index, equity name, credit name, etc.)
|
virtual |
transformations between raw and actual parameters
Reimplemented in Lgm1fPiecewiseLinearParametrization< TS >, Lgm1fPiecewiseConstantParametrization< TS >, Lgm1fPiecewiseConstantHullWhiteAdaptor< TS >, Lgm1fConstantParametrization< TS >, FxBsPiecewiseConstantParametrization, FxBsConstantParametrization, EqBsPiecewiseConstantParametrization, EqBsConstantParametrization, CommoditySchwartzParametrization, CirppConstantWithFellerParametrization< TS >, and CirppConstantParametrization< TS >.
|
protected |
adjusted central difference scheme
|
protected |
step size for numerical differentiation