Classes | |
| class | GeneralizedHullWhite |
| Generalized Hull-White model class. More... | |
| class | AffineModel |
| Affine model class. More... | |
| class | TermStructureConsistentModel |
| Term-structure consistent model class. More... | |
| class | ShortRateModel |
| Abstract short-rate model class. More... | |
| class | OneFactorModel |
| Single-factor short-rate model abstract class. More... | |
| class | OneFactorAffineModel |
| Single-factor affine base class. More... | |
| class | BlackKarasinski |
| Standard Black-Karasinski model class. More... | |
| class | CoxIngersollRoss |
| Cox-Ingersoll-Ross model class. More... | |
| class | ExtendedCoxIngersollRoss |
| Extended Cox-Ingersoll-Ross model class. More... | |
| class | HullWhite |
| Single-factor Hull-White (extended Vasicek) model class. More... | |
| class | Vasicek |
| Vasicek model class More... | |
| class | TwoFactorModel |
| Abstract base-class for two-factor models. More... | |
| class | G2 |
| Two-additive-factor gaussian model class. More... | |
This framework (corresponding to the ql/ShortRateModels directory) implements some single-factor and two-factor short rate models. The models implemented in this library are widely used by practitionners. For the moment, the ShortRateModels::Model class defines the short-rate dynamics with stochastic equations of the type
where
. If the model is affine (i.e. derived from the QuantLib::AffineModel class), analytical formulas for discount bonds and discount bond options are given (useful for calibration).
and
are constants, this model has analytical formulas for discount bonds and discount bond options.
The class CalibrationHelper is a base class that facilitates the instanciation of market instruments used for calibration. It has a method marketValue() that gives the market price using a Black formula, and a modelValue() method that gives the price according to a model
Derived classed are QuantLib::CapHelper and QuantLib::SwaptionHelper.
For the calibration itself, you must choose an optimization method that will find constant parameters such that the value:
where
is the price given by the model and
is the market price, is minimized. A few optimization methods are available in the ql/Optimization directory.
If the model is affine, i.e. discount bond options formulas exist, caps are easily priced since they are a portfolio of discount bond options. Such a pricer is implemented in QuantLib::AnalyticalCapFloor. In the case of single-factor affine models, swaptions can be priced using the Jamshidian decomposition, implemented in QuantLib::JamshidianSwaption.
(Doesn't work for the moment) For the moment, this is only available for single-factor affine models. If
is the state variable and follows this stochastic process:
any european-style instrument will follow the following PDE:
The adequate operator to feed a Finite Difference Model instance is defined in the QuantLib::OneFactorOperator class.
Each model derived from the single-factor model class has the ability to return a trinomial tree. For yield-curve consistent models, the fitting parameter can be determined either analytically (when possible) or numerically. When a tree is built, it is then pretty straightforward to implement a pricer for any path-independant derivative. Just implement a class derived from NumericalDerivative (see QuantLib::NumericalSwaption for example) and roll it back until the present time... Just look at QuantLib::TreeCapFloor and QuantLib::TreeSwaption for working pricers.