QuantLib: PiecewiseDefaultCurve< Traits, Interpolator, Bootstrap > Class Template Reference

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

Public Types | Friends | List of all members
PiecewiseDefaultCurve< Traits, Interpolator, Bootstrap > Class Template Reference

Piecewise default-probability term structure. More...

`#include <ql/termstructures/credit/piecewisedefaultcurve.hpp>`

Inheritance diagram for PiecewiseDefaultCurve< Traits, Interpolator, Bootstrap >:
[legend]

## Public Types
typedef Traits | traits_type
typedef Interpolator | interpolator_type
Public Types inherited from Observer
typedef std::set< boost::shared_ptr< Observable > > | set_type
typedef set_type::iterator | iterator

## Public Member Functions
Constructors
| PiecewiseDefaultCurve (const Date &referenceDate, const std::vector< boost::shared_ptr< typename Traits::helper > > &instruments, const DayCounter &dayCounter, const std::vector< Handle< Quote > > &jumps=std::vector< Handle< Quote > >(), const std::vector< Date > &jumpDates=std::vector< Date >(), Real accuracy=1.0e-12, const Interpolator &i=Interpolator())
| PiecewiseDefaultCurve (const Date &referenceDate, const std::vector< boost::shared_ptr< typename Traits::helper > > &instruments, const DayCounter &dayCounter, Real accuracy, const Interpolator &i=Interpolator())
| PiecewiseDefaultCurve (const Date &referenceDate, const std::vector< boost::shared_ptr< typename Traits::helper > > &instruments, const DayCounter &dayCounter, const Interpolator &i)
| PiecewiseDefaultCurve (Natural settlementDays, const Calendar &calendar, const std::vector< boost::shared_ptr< typename Traits::helper > > &instruments, const DayCounter &dayCounter, const std::vector< Handle< Quote > > &jumps=std::vector< Handle< Quote > >(), const std::vector< Date > &jumpDates=std::vector< Date >(), Real accuracy=1.0e-12, const Interpolator &i=Interpolator())
| PiecewiseDefaultCurve (Natural settlementDays, const Calendar &calendar, const std::vector< boost::shared_ptr< typename Traits::helper > > &instruments, const DayCounter &dayCounter, Real accuracy, const Interpolator &i=Interpolator())
| PiecewiseDefaultCurve (Natural settlementDays, const Calendar &calendar, const std::vector< boost::shared_ptr< typename Traits::helper > > &instruments, const DayCounter &dayCounter, const Interpolator &i)
| PiecewiseDefaultCurve (const Date &referenceDate, const std::vector< boost::shared_ptr< typename Traits::helper > > &instruments, const DayCounter &dayCounter, Real accuracy, const boost::shared_ptr< OneFactorAffineModel > model, const Interpolator &i=Interpolator())
TermStructure interface
Date | maxDate () const
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
Observer interface
void | update ()
Public Member Functions inherited from LazyObject
void | recalculate ()
void | freeze ()
void | unfreeze ()
void | alwaysForwardNotifications ()
Public Member Functions inherited from Observable
| Observable (const Observable &)
Observable & | operator= (const Observable &)
void | notifyObservers ()
Public Member Functions inherited from Observer
| Observer (const Observer &)
Observer & | operator= (const Observer &)
std::pair< iterator, bool > | registerWith (const boost::shared_ptr< Observable > &)
void | registerWithObservables (const boost::shared_ptr< Observer > &)
Size | unregisterWith (const boost::shared_ptr< Observable > &)
void | unregisterWithAll ()
virtual void | deepUpdate ()

## Friends
class | Bootstrap< this_curve >
class | BootstrapError< this_curve >

## Additional Inherited Members
Protected Member Functions inherited from LazyObject
virtual void | calculate () const
Protected Attributes inherited from LazyObject
bool | calculated_
bool | frozen_
bool | alwaysForward_

## Detailed Description

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

Piecewise default-probability term structure.

This term structure is bootstrapped on a number of credit instruments which are passed as a vector of handles to DefaultProbabilityHelper 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.

Examples:
  CDS.cpp.

## Member Function Documentation

## ◆ update()

void update | ( |  | ) |
| virtual

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.