Global boostrapper, with additional restrictions. More...
#include <ql/termstructures/globalbootstrap.hpp>
Public Member Functions | |
GlobalBootstrap (Real accuracy=Null< Real >()) | |
GlobalBootstrap (const std::vector< ext::shared_ptr< typename Traits::helper > > &additionalHelpers, const boost::function< std::vector< Date >()> &additionalDates, const boost::function< Array()> &additionalErrors, Real accuracy=Null< Real >()) | |
void | setup (Curve *ts) |
void | calculate () const |
Global boostrapper, with additional restrictions.
GlobalBootstrap | ( | const std::vector< ext::shared_ptr< typename Traits::helper > > & | additionalHelpers, |
const boost::function< std::vector< Date >()> & | additionalDates, | ||
const boost::function< Array()> & | additionalErrors, | ||
Real | accuracy = Null<Real>() |
||
) |
The set of (alive) additional dates is added to the interpolation grid. The set of additional dates must only depend on the current global evaluation date. The additionalErrors functor must yield at least as many values such that
number of (usual, alive) rate helpers + number of (alive) 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 marketQuote - impliedQuote here. All error terms are equally weighted in the optimisation.
The additional helpers are treated like the usual rate helpers, but no standard pillar dates are added for them.
WARNING: This class is known to work with Traits Discount, ZeroYield, Forward (i.e. the usual traits for IR curves in QL), it might fail for other traits - check the usage of Traits::updateGuess(), Traits::guess(), Traits::minValueAfter(), Traits::maxValueAfter() in this class against them.