QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
Loading...
Searching...
No Matches
HullWhite Class Reference

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

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

Inheritance diagram for HullWhite:

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< Latticetree (const TimeGrid &grid) const override
ext::shared_ptr< ShortRateDynamicsdynamics () const override
 returns the short-rate dynamics
Real discountBondOption (Option::Type type, Real strike, Time maturity, Time bondMaturity) const override
Real discountBondOption (Option::Type type, Real strike, Time maturity, Time bondStart, Time bondMaturity) const override
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 discountBondOption (Option::Type type, Real strike, Time maturity, Time bondMaturity) const override
ext::shared_ptr< ShortRateDynamicsdynamics () const override
 returns the short-rate dynamics
Real a () const
Real b () const
Real lambda () const
Real sigma () const
Real r0 () const
Public Member Functions inherited from OneFactorAffineModel
 OneFactorAffineModel (Size nArguments)
Real discountBond (Time now, Time maturity, Array factors) const override
Real discountBond (Time now, Time maturity, Rate rate) const
DiscountFactor discount (Time t) const override
 Implied discount curve.
Public Member Functions inherited from OneFactorModel
 OneFactorModel (Size nArguments)
ext::shared_ptr< Latticetree (const TimeGrid &grid) const override
 Return by default a trinomial recombining tree.
Public Member Functions inherited from ShortRateModel
 ShortRateModel (Size nArguments)
Public Member Functions inherited from CalibratedModel
 CalibratedModel (Size nArguments)
void update () override
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)
Real value (const Array &params, const std::vector< ext::shared_ptr< CalibrationHelper > > &)
const ext::shared_ptr< Constraint > & constraint () const
EndCriteria::Type endCriteria () const
 Returns end criteria result.
const ArrayproblemValues () const
 Returns the problem values.
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 &)
Observeroperator= (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 &)
Observableoperator= (const Observable &)
 Observable (Observable &&)=delete
Observableoperator= (Observable &&)=delete
void notifyObservers ()
Public Member Functions inherited from TermStructureConsistentModel
 TermStructureConsistentModel (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 () override
Real A (Time t, Time T) const override
Protected Member Functions inherited from Vasicek
Real A (Time t, Time T) const override
Real B (Time t, Time T) const override

Additional Inherited Members

Public Types inherited from Observer
typedef set_type::iterator iterator
Protected Attributes inherited from Vasicek
Real r0_
Parametera_
Parameterb_
Parametersigma_
Parameterlambda_
Protected Attributes inherited from CalibratedModel
std::vector< Parameterarguments_
ext::shared_ptr< Constraintconstraint_
EndCriteria::Type shortRateEndCriteria_ = EndCriteria::None
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.

Member Function Documentation

◆ tree()

ext::shared_ptr< Lattice > tree ( const TimeGrid & grid) const
overridevirtual

Implements ShortRateModel.

◆ dynamics()

ext::shared_ptr< OneFactorModel::ShortRateDynamics > dynamics ( ) const
overridevirtual

returns the short-rate dynamics

Implements OneFactorModel.

◆ discountBondOption() [1/2]

Real discountBondOption ( Option::Type type,
Real strike,
Time maturity,
Time bondMaturity ) const
overridevirtual

Implements AffineModel.

◆ discountBondOption() [2/2]

Real discountBondOption ( Option::Type type,
Real strike,
Time maturity,
Time bondStart,
Time bondMaturity ) const
overridevirtual

Reimplemented from AffineModel.

◆ convexityBias()

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.

◆ generateArguments()

void generateArguments ( )
overrideprotectedvirtual

Reimplemented from CalibratedModel.

◆ A()

Real A ( Time t,
Time T ) const
overrideprotectedvirtual

Implements OneFactorAffineModel.