|
QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
|
#include <ql/termstructures/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 |
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.