QuantLib: HullWhite Class Reference

A free/open-source library for quantitative finance Reference manual - version 1.20

Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
HullWhite Class Reference
Short-rate modelling framework

Single-factor Hull-White (extended Vasicek) model class. More...

`#include <ql/models/shortrate/onefactormodels/hullwhite.hpp>`

Inheritance diagram for HullWhite:
[legend]

## Classes
class | Dynamics
| Short-rate dynamics in the Hull-White model. More...
class | FittingParameter
| Analytical term-structure fitting parameter \( \varphi(t) \). More...

## Public Member Functions
| HullWhite (const Handle< YieldTermStructure > &termStructure, Real a=0.1, Real sigma=0.01)
ext::shared_ptr< Lattice > | tree (const TimeGrid &grid) const
| Return by default a trinomial recombining tree.
ext::shared_ptr< ShortRateDynamics > | dynamics () const
| returns the short-rate dynamics
Real | discountBondOption (Option::Type type, Real strike, Time maturity, Time bondMaturity) const
Real | discountBondOption (Option::Type type, Real strike, Time maturity, Time bondStart, Time bondMaturity) const
Public Member Functions inherited from Vasicek
| Vasicek (Rate r0=0.05, Real a=0.1, Real b=0.05, Real sigma=0.01, Real lambda=0.0)
Real | a () const
Real | b () const
Real | lambda () const
Real | sigma () const
Real | r0 () const
Public Member Functions inherited from OneFactorAffineModel
| OneFactorAffineModel (Size nArguments)
virtual Real | discountBond (Time now, Time maturity, Array factors) const
Real | discountBond (Time now, Time maturity, Rate rate) const
DiscountFactor | discount (Time t) const
| Implied discount curve.
Public Member Functions inherited from OneFactorModel
| OneFactorModel (Size nArguments)
Public Member Functions inherited from ShortRateModel
| ShortRateModel (Size nArguments)
Public Member Functions inherited from CalibratedModel
| CalibratedModel (Size nArguments)
void | update ()
virtual void | calibrate (const std::vector< ext::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 QL_DEPRECATED void | calibrate (const std::vector< ext::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 >())
Real | value (const Array &params, const std::vector< ext::shared_ptr< CalibrationHelper > > &)
QL_DEPRECATED Real | value (const Array &params, const std::vector< ext::shared_ptr< BlackCalibrationHelper > > &)
const ext::shared_ptr< Constraint > & | constraint () const
EndCriteria::Type | endCriteria () const
| Returns end criteria result.
const Array & | problemValues () const
| Returns the problem values.
Disposable< Array > | params () const
| Returns array of arguments on which calibration is done.
virtual void | setParams (const Array &params)
Integer | functionEvaluation () const
Public Member Functions inherited from Observer
| Observer (const Observer &)
Observer & | operator= (const Observer &)
std::pair< iterator, bool > | registerWith (const ext::shared_ptr< Observable > &)
void | registerWithObservables (const ext::shared_ptr< Observer > &)
Size | unregisterWith (const ext::shared_ptr< Observable > &)
void | unregisterWithAll ()
virtual void | deepUpdate ()
Public Member Functions inherited from Observable
| Observable (const Observable &)
Observable & | operator= (const Observable &)
void | notifyObservers ()
Public Member Functions inherited from TermStructureConsistentModel
| TermStructureConsistentModel (const Handle< YieldTermStructure > &termStructure)
const Handle< YieldTermStructure > & | termStructure () const

## Static Public Member Functions
static Rate | convexityBias (Real futurePrice, Time t, Time T, Real sigma, Real a)
static std::vector< bool > | FixedReversion ()

## Protected Member Functions
void | generateArguments ()
Real | A (Time t, Time T) const
Protected Member Functions inherited from Vasicek
virtual Real | B (Time t, Time T) const

## Additional Inherited Members
Public Types inherited from Observer
typedef boost::unordered_set< ext::shared_ptr< Observable > > | set_type
typedef set_type::iterator | iterator
Protected Attributes inherited from Vasicek
Real | r0_
Parameter & | a_
Parameter & | b_
Parameter & | sigma_
Parameter & | lambda_
Protected Attributes inherited from CalibratedModel
std::vector< Parameter > | arguments_
ext::shared_ptr< Constraint > | constraint_
EndCriteria::Type | shortRateEndCriteria_
Array | problemValues_
Integer | functionEvaluation_

## Detailed Description

Single-factor Hull-White (extended Vasicek) model class.

This class implements the standard single-factor Hull-White model defined by

\[ dr_t = (\theta(t) - \alpha r_t)dt + \sigma dW_t \]

where \( \alpha \) and \( \sigma \) are constants.

Tests:
  calibration results are tested against cached values

Bug:
  When the term structure is relinked, the r0 parameter of the underlying Vasicek model is not updated.

Examples
  BermudanSwaption.cpp, and CallableBonds.cpp.

## Member Function Documentation

## ◆ convexityBias()

static Rate convexityBias | ( | Real | futurePrice,
|  | Time | t,
|  | Time | T,
|  | Real | sigma,
|  | Real | a
| ) |  |
| static

Futures convexity bias (i.e., the difference between futures implied rate and forward rate) calculated as in G. Kirikos, D. Novak, "Convexity Conundrums", Risk Magazine, March 1997.

Note
  t and T should be expressed in yearfraction using deposit day counter, F_quoted is futures' market price.