QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
Loading...
Searching...
No Matches
InterpolatedAffineHazardRateCurve< Interpolator > Class Template Reference

#include <ql/experimental/credit/interpolatedaffinehazardratecurve.hpp>

Inheritance diagram for InterpolatedAffineHazardRateCurve< Interpolator >:

Public Member Functions

 InterpolatedAffineHazardRateCurve (const std::vector< Date > &dates, const std::vector< Rate > &hazardRates, const DayCounter &dayCounter, const ext::shared_ptr< OneFactorAffineModel > &model, const Calendar &cal=Calendar(), const std::vector< Handle< Quote > > &jumps=std::vector< Handle< Quote > >(), const std::vector< Date > &jumpDates=std::vector< Date >(), const Interpolator &interpolator=Interpolator())
 InterpolatedAffineHazardRateCurve (const std::vector< Date > &dates, const std::vector< Rate > &hazardRates, const DayCounter &dayCounter, const ext::shared_ptr< OneFactorAffineModel > &model, const Calendar &calendar, const Interpolator &interpolator)
 InterpolatedAffineHazardRateCurve (const std::vector< Date > &dates, const std::vector< Rate > &hazardRates, const DayCounter &dayCounter, const ext::shared_ptr< OneFactorAffineModel > &model, const Interpolator &interpolator)
TermStructure interface
Date maxDate () const override
 the latest date for which the curve can return values
Public Member Functions inherited from OneFactorAffineSurvivalStructure
 OneFactorAffineSurvivalStructure (ext::shared_ptr< OneFactorAffineModel > model, const DayCounter &dayCounter=DayCounter(), const std::vector< Handle< Quote > > &jumps=std::vector< Handle< Quote > >(), const std::vector< Date > &jumpDates=std::vector< Date >())
 OneFactorAffineSurvivalStructure (ext::shared_ptr< OneFactorAffineModel > model, const Date &referenceDate, const Calendar &cal=Calendar(), const DayCounter &dayCounter=DayCounter(), const std::vector< Handle< Quote > > &jumps=std::vector< Handle< Quote > >(), const std::vector< Date > &jumpDates=std::vector< Date >())
 OneFactorAffineSurvivalStructure (ext::shared_ptr< OneFactorAffineModel > model, Natural settlementDays, const Calendar &calendar, const DayCounter &dayCounter=DayCounter(), const std::vector< Handle< Quote > > &jumps=std::vector< Handle< Quote > >(), const std::vector< Date > &jumpDates=std::vector< Date >())
Date maxDate () const override
 the latest date for which the curve can return values
Probability conditionalSurvivalProbability (const Date &dFwd, const Date &dTgt, Real yVal, bool extrapolate=false) const
Probability conditionalSurvivalProbability (Time tFwd, Time tgt, Real yVal, bool extrapolate=false) const
Rate hazardRate (Time t, bool extrapolate=false) const
Rate hazardRate (const Date &d, bool extrapolate=false) const
Public Member Functions inherited from HazardRateStructure
 HazardRateStructure (const DayCounter &dayCounter=DayCounter(), const std::vector< Handle< Quote > > &jumps={}, const std::vector< Date > &jumpDates={})
 HazardRateStructure (const Date &referenceDate, const Calendar &cal=Calendar(), const DayCounter &dayCounter=DayCounter(), const std::vector< Handle< Quote > > &jumps={}, const std::vector< Date > &jumpDates={})
 HazardRateStructure (Natural settlementDays, const Calendar &cal, const DayCounter &dayCounter=DayCounter(), const std::vector< Handle< Quote > > &jumps={}, const std::vector< Date > &jumpDates={})
Public Member Functions inherited from DefaultProbabilityTermStructure
 DefaultProbabilityTermStructure (const DayCounter &dc=DayCounter(), std::vector< Handle< Quote > > jumps={}, const std::vector< Date > &jumpDates={})
 DefaultProbabilityTermStructure (const Date &referenceDate, const Calendar &cal=Calendar(), const DayCounter &dc=DayCounter(), std::vector< Handle< Quote > > jumps={}, const std::vector< Date > &jumpDates={})
 DefaultProbabilityTermStructure (Natural settlementDays, const Calendar &cal, const DayCounter &dc=DayCounter(), std::vector< Handle< Quote > > jumps={}, const std::vector< Date > &jumpDates={})
Probability survivalProbability (const Date &d, bool extrapolate=false) const
Probability survivalProbability (Time t, bool extrapolate=false) const
Probability defaultProbability (const Date &d, bool extrapolate=false) const
Probability defaultProbability (Time t, bool extrapolate=false) const
Probability defaultProbability (const Date &, const Date &, bool extrapolate=false) const
 probability of default between two given dates
Probability defaultProbability (Time, Time, bool extrapo=false) const
 probability of default between two given times
Real defaultDensity (const Date &d, bool extrapolate=false) const
Real defaultDensity (Time t, bool extrapolate=false) const
Rate hazardRate (const Date &d, bool extrapolate=false) const
Rate hazardRate (Time t, bool extrapolate=false) const
const std::vector< Date > & jumpDates () const
const std::vector< Time > & jumpTimes () const
void update () override
Public Member Functions inherited from TermStructure
 TermStructure (DayCounter dc=DayCounter())
 default constructor
 TermStructure (const Date &referenceDate, Calendar calendar=Calendar(), DayCounter dc=DayCounter())
 initialize with a fixed reference date
 TermStructure (Natural settlementDays, Calendar, DayCounter dc=DayCounter())
 calculate the reference date based on the global evaluation date
virtual DayCounter dayCounter () const
 the day counter used for date/time conversion
Time timeFromReference (const Date &date) const
 date/time conversion
virtual Time maxTime () const
 the latest time for which the curve can return values
virtual const DatereferenceDate () const
 the date at which discount = 1.0 and/or variance = 0.0
virtual Calendar calendar () const
 the calendar used for reference and/or option date calculation
virtual Natural settlementDays () const
 the settlementDays used for reference date calculation
void update () override
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 Extrapolator
void enableExtrapolation (bool b=true)
 enable extrapolation in subsequent calls
void disableExtrapolation (bool b=true)
 disable extrapolation in subsequent calls
bool allowsExtrapolation () const
 tells whether extrapolation is enabled

DefaultProbabilityTermStructure implementation

std::vector< Datedates_
Rate hazardRate (const Date &d, bool extrapolate=false) const
Rate hazardRate (Time t, bool extrapolate=false) const
Real hazardRateImpl (Time) const override
 Returns the deterministic hazard rate component.
Probability survivalProbabilityImpl (Time) const override
Probability conditionalSurvivalProbabilityImpl (Time tFwd, Time tTarget, Real yVal) const override

other inspectors

const std::vector< Time > & times () const
const std::vector< Date > & dates () const
const std::vector< Real > & data () const
const std::vector< Rate > & hazardRates () const
std::vector< std::pair< Date, Real > > nodes () const
 InterpolatedAffineHazardRateCurve (const DayCounter &, const ext::shared_ptr< OneFactorAffineModel > &model, const std::vector< Handle< Quote > > &jumps=std::vector< Handle< Quote > >(), const std::vector< Date > &jumpDates=std::vector< Date >(), const Interpolator &interpolator=Interpolator())
 InterpolatedAffineHazardRateCurve (const Date &referenceDate, const DayCounter &, const ext::shared_ptr< OneFactorAffineModel > &model, const std::vector< Handle< Quote > > &jumps=std::vector< Handle< Quote > >(), const std::vector< Date > &jumpDates=std::vector< Date >(), const Interpolator &interpolator=Interpolator())
 InterpolatedAffineHazardRateCurve (Natural settlementDays, const Calendar &, const DayCounter &, const ext::shared_ptr< OneFactorAffineModel > &model, const std::vector< Handle< Quote > > &jumps=std::vector< Handle< Quote > >(), const std::vector< Date > &jumpDates=std::vector< Date >(), const Interpolator &interpolator=Interpolator())

Additional Inherited Members

Public Types inherited from Observer
typedef set_type::iterator iterator
Probability survivalProbabilityImpl (Time) const override
Real defaultDensityImpl (Time) const override
 default density calculation
Real hazardRateImpl (Time) const override
 hazard rate calculation
Protected Member Functions inherited from HazardRateStructure
void checkRange (const Date &d, bool extrapolate) const
 date-range check
void checkRange (Time t, bool extrapolate) const
 time-range check
Protected Member Functions inherited from InterpolatedCurve< Interpolator >
 InterpolatedCurve (std::vector< Time > times, std::vector< Real > data, const Interpolator &i=Interpolator())
 InterpolatedCurve (std::vector< Time > times, const Interpolator &i=Interpolator())
 InterpolatedCurve (Size n, const Interpolator &i=Interpolator())
 InterpolatedCurve (const Interpolator &i=Interpolator())
 InterpolatedCurve (const InterpolatedCurve &c)
InterpolatedCurveoperator= (const InterpolatedCurve &c)
 InterpolatedCurve (InterpolatedCurve &&c) noexcept
InterpolatedCurveoperator= (InterpolatedCurve &&c) noexcept
void setupTimes (const std::vector< Date > &dates, Date referenceDate, const DayCounter &dayCounter)
void setupInterpolation ()
ext::shared_ptr< OneFactorAffineModelmodel_
bool moving_ = false
bool updated_ = true
Calendar calendar_
std::vector< Timetimes_
std::vector< Realdata_
Interpolation interpolation_
Interpolator interpolator_
Date maxDate_

Detailed Description

template<class Interpolator>
class QuantLib::InterpolatedAffineHazardRateCurve< Interpolator >

DefaultProbabilityTermStructure based on interpolation of a deterministic hazard rate component plus a stochastic one factor rate.

Member Function Documentation

◆ maxDate()

template<class T>
Date maxDate ( ) const
overridevirtual

the latest date for which the curve can return values

Implements TermStructure.

◆ hazardRateImpl()

template<class Interpolator>
Real hazardRateImpl ( Time ) const
overrideprotectedvirtual

Returns the deterministic hazard rate component.

Reimplemented from HazardRateStructure.

◆ survivalProbabilityImpl()

template<class Interpolator>
Probability survivalProbabilityImpl ( Time ) const
overrideprotectedvirtual

survival probability calculation implemented in terms of the hazard rate \( h(t) \) as

\[S(t) = \exp\left( - \int_0^t h(\tau) d\tau \right). \]

Warning
This default implementation uses numerical integration, which might be inefficient and inaccurate. Derived classes should override it if a more efficient implementation is available.

Reimplemented from HazardRateStructure.

◆ conditionalSurvivalProbabilityImpl()

template<class Interpolator>
Probability conditionalSurvivalProbabilityImpl ( Time tFwd,
Time tTarget,
Real yVal ) const
overrideprotectedvirtual

Probability of default conditional to the realization of a given value of the stochastic part of the hazard rate at a prior time (and thus to survival at that time). \( P_{surv}(\tau>tTarget|F_{tFwd}) \)

Reimplemented from OneFactorAffineSurvivalStructure.