QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.38
|
#include <globalbootstrap.hpp>
Public Member Functions | |
GlobalBootstrap (Real accuracy=Null< Real >(), ext::shared_ptr< OptimizationMethod > optimizer=nullptr, ext::shared_ptr< EndCriteria > endCriteria=nullptr) | |
GlobalBootstrap (std::vector< ext::shared_ptr< typename Traits::helper > > additionalHelpers, std::function< std::vector< Date >()> additionalDates, AdditionalPenalties additionalPenalties, Real accuracy=Null< Real >(), ext::shared_ptr< OptimizationMethod > optimizer=nullptr, ext::shared_ptr< EndCriteria > endCriteria=nullptr, ext::shared_ptr< AdditionalBootstrapVariables > additionalVariables=nullptr) | |
GlobalBootstrap (std::vector< ext::shared_ptr< typename Traits::helper > > additionalHelpers, std::function< std::vector< Date >()> additionalDates, std::function< Array()> additionalPenalties, Real accuracy=Null< Real >(), ext::shared_ptr< OptimizationMethod > optimizer=nullptr, ext::shared_ptr< EndCriteria > endCriteria=nullptr, ext::shared_ptr< AdditionalBootstrapVariables > additionalVariables=nullptr) | |
void | setup (Curve *ts) |
void | calculate () const |
Private Types | |
typedef Curve::traits_type | Traits |
typedef Curve::interpolator_type | Interpolator |
typedef std::function< Array(const std::vector< Time > &, const std::vector< Real > &)> | AdditionalPenalties |
Private Member Functions | |
void | initialize () const |
Private Attributes | |
Curve * | ts_ |
Real | accuracy_ |
ext::shared_ptr< OptimizationMethod > | optimizer_ |
ext::shared_ptr< EndCriteria > | endCriteria_ |
std::vector< ext::shared_ptr< typename Traits::helper > > | additionalHelpers_ |
std::function< std::vector< Date >()> | additionalDates_ |
AdditionalPenalties | additionalPenalties_ |
ext::shared_ptr< AdditionalBootstrapVariables > | additionalVariables_ |
bool | initialized_ = false |
bool | validCurve_ = false |
Size | firstHelper_ |
Size | numberHelpers_ |
Size | firstAdditionalHelper_ |
Size | numberAdditionalHelpers_ |
Global boostrapper, with additional restrictions
The additionalDates functor must return a set of additional dates to add to the interpolation grid. These dates must only depend on the global evaluation date.
The additionalPenalties functor must yield at least as many values such that
number of (usual, alive) rate helpers + number of additional values >= number of data points - 1
(note that the data points contain t=0). These values are treated as additional error terms in the optimization. The usual rate helpers return quoteError here. All error terms are equally weighted.
The additionalHelpers are registered with the curve like the usual rate helpers, but no pillar dates or error terms are added for them. Pillars and error terms have to be added by additionalDates and additionalPenalties.
The additionalVariables interface manages a set of additional variables to add to the optimization. This is useful to optimize model parameters used by rate helpers, for example, convexity adjustments for futures. See SimpleQuoteVariables for a concrete implementation of this interface.
WARNING: This class is known to work with Traits Discount, ZeroYield, Forward, i.e. the usual IR curves traits in QL. It requires Traits::transformDirect() and Traits::transformInverse() to be implemented. Also, check the usage of Traits::updateGuess(), Traits::guess() in this class.
Definition at line 74 of file globalbootstrap.hpp.
|
private |
Definition at line 75 of file globalbootstrap.hpp.
|
private |
Definition at line 76 of file globalbootstrap.hpp.
|
private |
Definition at line 78 of file globalbootstrap.hpp.
GlobalBootstrap | ( | Real | accuracy = Null<Real>() , |
ext::shared_ptr< OptimizationMethod > | optimizer = nullptr , |
||
ext::shared_ptr< EndCriteria > | endCriteria = nullptr |
||
) |
Definition at line 119 of file globalbootstrap.hpp.
GlobalBootstrap | ( | std::vector< ext::shared_ptr< typename Traits::helper > > | additionalHelpers, |
std::function< std::vector< Date >()> | additionalDates, | ||
AdditionalPenalties | additionalPenalties, | ||
Real | accuracy = Null<Real>() , |
||
ext::shared_ptr< OptimizationMethod > | optimizer = nullptr , |
||
ext::shared_ptr< EndCriteria > | endCriteria = nullptr , |
||
ext::shared_ptr< AdditionalBootstrapVariables > | additionalVariables = nullptr |
||
) |
Definition at line 127 of file globalbootstrap.hpp.
GlobalBootstrap | ( | std::vector< ext::shared_ptr< typename Traits::helper > > | additionalHelpers, |
std::function< std::vector< Date >()> | additionalDates, | ||
std::function< Array()> | additionalPenalties, | ||
Real | accuracy = Null<Real>() , |
||
ext::shared_ptr< OptimizationMethod > | optimizer = nullptr , |
||
ext::shared_ptr< EndCriteria > | endCriteria = nullptr , |
||
ext::shared_ptr< AdditionalBootstrapVariables > | additionalVariables = nullptr |
||
) |
Definition at line 141 of file globalbootstrap.hpp.
void setup | ( | Curve * | ts | ) |
Definition at line 158 of file globalbootstrap.hpp.
void calculate |
|
private |
Definition at line 178 of file globalbootstrap.hpp.
|
private |
Definition at line 103 of file globalbootstrap.hpp.
|
private |
Definition at line 104 of file globalbootstrap.hpp.
|
private |
Definition at line 105 of file globalbootstrap.hpp.
|
private |
Definition at line 106 of file globalbootstrap.hpp.
|
mutableprivate |
Definition at line 107 of file globalbootstrap.hpp.
|
private |
Definition at line 108 of file globalbootstrap.hpp.
|
private |
Definition at line 109 of file globalbootstrap.hpp.
|
private |
Definition at line 110 of file globalbootstrap.hpp.
|
mutableprivate |
Definition at line 111 of file globalbootstrap.hpp.
|
private |
Definition at line 111 of file globalbootstrap.hpp.
|
mutableprivate |
Definition at line 112 of file globalbootstrap.hpp.
|
private |
Definition at line 112 of file globalbootstrap.hpp.
|
mutableprivate |
Definition at line 113 of file globalbootstrap.hpp.
|
private |
Definition at line 113 of file globalbootstrap.hpp.