Interest rate curve estimating algorithm using the derivative root finder. More...

#include <rootFindingBootstrapper.hpp>

Inheritance diagram for julian::ir::RootFindingBootstrapper:
julian::ir::Estimator

Public Member Functions

 RootFindingBootstrapper (DerivativeRootFinder method=DerivativeRootFinder::STEFFENSEN)
 constructor More...
 
void calculate (const std::vector< SmartPointer< BuildingBlock > > &instruments, const CurveSettings &settings, SmartPointer< ir::Curve > &discounting, SmartPointer< ir::Curve > &projection)
 estimates the curve More...
 
std::vector< double > getDF () const
 returns DFs More...
 
std::vector< DategetDates () const
 returns dates More...
 
std::string info () const
 returns name of estimator More...
 
RootFindingBootstrapperclone () const
 virtual copy constructor More...
 
- Public Member Functions inherited from julian::ir::Estimator
 Estimator ()
 default constructor More...
 
virtual ~Estimator ()
 destructor More...
 

Private Attributes

std::vector< double > discount_factors_
 Vector of discount factors. More...
 
std::vector< Datedates_
 Vector of grid dates. More...
 
DerivativeRootFinder method_
 Algorithm type. More...
 

Detailed Description

Interest rate curve estimating algorithm using the derivative root finder.

Class implements the algorithm estimating interest rate curves using the derivative root finder (compare DerivativeRootFinder). The curve is estimated as follows:

1) Setting first grid point: today dates and DF1 = 1. Reading the first (with shortest maturity) instrument ( $isntr_1$) and getting its maturity date $date_1$.

2) Creating new curve $C$ with dates $= [today, date_1 ] $ and discount factors $= [1.0, DF1 ] $

3) Solving function f1 using root finding algorithm: $f1(DF1) = isntr_{1}.price(C)$.

4) Reading the next instrument ( $isntr_2$) with maturity $date_2$. Creating new curve $C$ with dates $= [date_1, date_2 ] $ and discount factors $= [DF1, DF2]$

5) Solving function f2 using root finding algorithm: $f2(DF2) = isntr_{2}.price(C)$.

6) Reading the next instrument ( $isntr_3$) with maturity $date_3$. Creating new curve $C$ with dates $= [date_1, date_2, date_3 ] $ and discount factors $= [DF1, DF2, DF3]$

7) Solving function f3 using root finding algorithm: $f3(DF3) = isntr_{3}.price(C)$.

etc.

The derivative of f function is calculated numerically using finite difference approximation. If discounting curve and projection curve are provided, they are used when instrument is priced. This approach enables estimating the curve in the multi-curve framework (see [26]).

Warning
Estimator does not work properly with FlatBackward interpolation. RootFindingBootstrapper estimates curve by varying last DF. In FlatBackward the shape of the curve does not depend on last DF so calibration cannot be performed
Examples:
bootstrapperComparison.cpp, and rootFindingBootstrapperExample.cpp.

Constructor & Destructor Documentation

julian::ir::RootFindingBootstrapper::RootFindingBootstrapper ( DerivativeRootFinder  method = DerivativeRootFinder::STEFFENSEN)
inline

constructor

Member Function Documentation

void julian::ir::RootFindingBootstrapper::calculate ( const std::vector< SmartPointer< BuildingBlock > > &  instruments,
const CurveSettings settings,
SmartPointer< ir::Curve > &  discounting_curve,
SmartPointer< ir::Curve > &  projection_curve 
)
virtual

estimates the curve

calculates method estimates the curve and saves the result into the class members

Implements julian::ir::Estimator.

RootFindingBootstrapper * julian::ir::RootFindingBootstrapper::clone ( ) const
virtual

virtual copy constructor

Implements julian::ir::Estimator.

std::vector< Date > julian::ir::RootFindingBootstrapper::getDates ( ) const
virtual

returns dates

Method should be called after calling method Estimator::calculate

Implements julian::ir::Estimator.

std::vector< double > julian::ir::RootFindingBootstrapper::getDF ( ) const
virtual

returns DFs

Method should be called after calling method Estimator::calculate

Implements julian::ir::Estimator.

std::string julian::ir::RootFindingBootstrapper::info ( ) const
virtual

returns name of estimator

Implements julian::ir::Estimator.

Member Data Documentation

std::vector<Date> julian::ir::RootFindingBootstrapper::dates_
private

Vector of grid dates.

std::vector<double> julian::ir::RootFindingBootstrapper::discount_factors_
private

Vector of discount factors.

DerivativeRootFinder julian::ir::RootFindingBootstrapper::method_
private

Algorithm type.


The documentation for this class was generated from the following files:
  • C:/Unix/home/OEM/jULIAN/src/marketData/interestRateCurves/estimators/rootFindingBootstrapper.hpp
  • C:/Unix/home/OEM/jULIAN/src/marketData/interestRateCurves/estimators/rootFindingBootstrapper.cpp