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

Piecewise yield term structure. More...

#include <ql/termstructures/yield/piecewiseyieldcurve.hpp>

Inheritance diagram for PiecewiseYieldCurve< Traits, Interpolator, Bootstrap >:

Public Types

typedef Traits traits_type
typedef Interpolator interpolator_type
typedef Bootstrap< this_curvebootstrap_type
Public Types inherited from Observer
typedef set_type::iterator iterator

Public Member Functions

Constructors
 PiecewiseYieldCurve (const Date &referenceDate, std::vector< ext::shared_ptr< typename Traits::helper > > instruments, const DayCounter &dayCounter, const std::vector< Handle< Quote > > &jumps={}, const std::vector< Date > &jumpDates={}, const Interpolator &i={}, bootstrap_type bootstrap={})
 PiecewiseYieldCurve (const Date &referenceDate, std::vector< ext::shared_ptr< typename Traits::helper > > instruments, const DayCounter &dayCounter, const Interpolator &i, bootstrap_type bootstrap={})
 PiecewiseYieldCurve (const Date &referenceDate, std::vector< ext::shared_ptr< typename Traits::helper > > instruments, const DayCounter &dayCounter, bootstrap_type bootstrap)
 PiecewiseYieldCurve (Natural settlementDays, const Calendar &calendar, std::vector< ext::shared_ptr< typename Traits::helper > > instruments, const DayCounter &dayCounter, const std::vector< Handle< Quote > > &jumps={}, const std::vector< Date > &jumpDates={}, const Interpolator &i={}, bootstrap_type bootstrap={})
 PiecewiseYieldCurve (Natural settlementDays, const Calendar &calendar, std::vector< ext::shared_ptr< typename Traits::helper > > instruments, const DayCounter &dayCounter, const Interpolator &i, bootstrap_type bootstrap={})
 PiecewiseYieldCurve (Natural settlementDays, const Calendar &calendar, std::vector< ext::shared_ptr< typename Traits::helper > > instruments, const DayCounter &dayCounter, bootstrap_type bootstrap)
TermStructure interface
Date maxDate () const override
base_curve interface
const std::vector< Time > & times () const
const std::vector< Date > & dates () const
const std::vector< Real > & data () const
std::vector< std::pair< Date, Real > > nodes () const
Public Member Functions inherited from LazyObject
bool isCalculated () const
void forwardFirstNotificationOnly ()
void alwaysForwardNotifications ()
void recalculate ()
void freeze ()
void unfreeze ()
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 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 ()

LazyObject interface

class Bootstrap< this_curve >

Observer interface

void update () override
template<class... Args>
 PiecewiseYieldCurve (std::vector< ext::shared_ptr< typename Traits::helper > > instruments, bootstrap_type bootstrap, Args &&... args)

Additional Inherited Members

virtual void calculate () const
bool calculated_ = false
bool frozen_ = false
bool alwaysForward_

Detailed Description

template<class Traits, class Interpolator, template< class > class Bootstrap = IterativeBootstrap>
class QuantLib::PiecewiseYieldCurve< Traits, Interpolator, Bootstrap >

Piecewise yield term structure.

This term structure is bootstrapped on a number of interest rate instruments which are passed as a vector of pointers to RateHelper instances. Their maturities mark the boundaries of the interpolated segments.

Each segment is determined sequentially starting from the earliest period to the latest and is chosen so that the instrument whose maturity marks the end of such segment is correctly repriced on the curve.

Warning
The bootstrapping algorithm will raise an exception if any two instruments have the same maturity date.
Tests
  • the correctness of the returned values is tested by checking them against the original inputs.
  • the observability of the term structure is tested.
Examples
CDS.cpp.

Member Function Documentation

◆ update()

template<class C, class I, template< class > class B>
void update ( )
overridevirtual

This method must be implemented in derived classes. An instance of Observer does not call this method directly: instead, it will be called by the observables the instance registered with when they need to notify any changes.

Reimplemented from LazyObject.