30#ifndef quantlib_ratehelpers_hpp
31#define quantlib_ratehelpers_hpp
33#include <ql/termstructures/bootstraphelper.hpp>
34#include <ql/instruments/vanillaswap.hpp>
35#include <ql/instruments/bmaswap.hpp>
36#include <ql/instruments/futures.hpp>
37#include <ql/time/calendar.hpp>
38#include <ql/time/daycounter.hpp>
39#include <ql/time/calendars/unitedstates.hpp>
40#include <ql/optional.hpp>
55 const Date& iborStartDate,
64 const Date& iborStartDate,
73 const Date& iborStartDate,
74 const Date& iborEndDate,
79 const Date& iborStartDate,
85 const Date& iborStartDate,
86 const ext::shared_ptr<IborIndex>& iborIndex,
90 const Date& iborStartDate,
91 const ext::shared_ptr<IborIndex>& iborIndex,
130 const ext::shared_ptr<IborIndex>& iborIndex);
132 const ext::shared_ptr<IborIndex>& iborIndex);
163 bool useIndexedCoupon =
true);
174 bool useIndexedCoupon =
true);
177 const ext::shared_ptr<IborIndex>& iborIndex,
180 bool useIndexedCoupon =
true);
183 const ext::shared_ptr<IborIndex>& iborIndex,
186 bool useIndexedCoupon =
true);
197 bool useIndexedCoupon =
true);
208 bool useIndexedCoupon =
true);
211 const ext::shared_ptr<IborIndex>& iborIndex,
214 bool useIndexedCoupon =
true);
217 const ext::shared_ptr<IborIndex>& iborIndex,
220 bool useIndexedCoupon =
true);
224 const ext::shared_ptr<IborIndex>& iborIndex,
227 bool useIndexedCoupon =
true);
231 const ext::shared_ptr<IborIndex>& iborIndex,
234 bool useIndexedCoupon =
true);
262 const ext::shared_ptr<SwapIndex>& swapIndex,
269 bool endOfMonth =
false,
270 const ext::optional<bool>& useIndexedCoupons =
ext::nullopt);
279 const ext::shared_ptr<IborIndex>& iborIndex,
287 bool endOfMonth =
false,
288 const ext::optional<bool>& useIndexedCoupons =
ext::nullopt);
290 const ext::shared_ptr<SwapIndex>& swapIndex,
297 bool endOfMonth =
false,
298 const ext::optional<bool>& useIndexedCoupons =
ext::nullopt);
307 const ext::shared_ptr<IborIndex>& iborIndex,
315 bool endOfMonth =
false,
316 const ext::optional<bool>& useIndexedCoupons =
ext::nullopt);
326 ext::shared_ptr<VanillaSwap>
swap()
const;
365 ext::shared_ptr<BMAIndex> bmaIndex,
367 ext::shared_ptr<IborIndex> index);
degenerate base class for the Acyclic Visitor pattern
Rate helper for bootstrapping over BMA swap rates.
void setTermStructure(YieldTermStructure *) override
RelinkableHandle< YieldTermStructure > termStructureHandle_
ext::shared_ptr< IborIndex > iborIndex_
void accept(AcyclicVisitor &) override
void initializeDates() override
ext::shared_ptr< BMAIndex > bmaIndex_
Real impliedQuote() const override
BusinessDayConvention bmaConvention_
ext::shared_ptr< BMASwap > swap_
Base helper class for bootstrapping.
Rate helper for bootstrapping over deposit rates.
void setTermStructure(YieldTermStructure *) override
RelinkableHandle< YieldTermStructure > termStructureHandle_
ext::shared_ptr< IborIndex > iborIndex_
void accept(AcyclicVisitor &) override
void initializeDates() override
Real impliedQuote() const override
Rate helper for bootstrapping over FRA rates.
ext::optional< Natural > immOffsetEnd_
void setTermStructure(YieldTermStructure *) override
ext::optional< Natural > immOffsetStart_
RelinkableHandle< YieldTermStructure > termStructureHandle_
Pillar::Choice pillarChoice_
ext::shared_ptr< IborIndex > iborIndex_
ext::optional< Period > periodToStart_
void accept(AcyclicVisitor &) override
void initializeDates() override
Real impliedQuote() const override
Rate helper for bootstrapping over IborIndex futures prices.
void accept(AcyclicVisitor &) override
Real impliedQuote() const override
Real convexityAdjustment() const
Rate helper for bootstrapping over Fx Swap rates.
Calendar tradingCalendar() const
void setTermStructure(YieldTermStructure *) override
RelinkableHandle< YieldTermStructure > termStructureHandle_
Natural fixingDays() const
Calendar calendar() const
Calendar tradingCalendar_
void accept(AcyclicVisitor &) override
RelinkableHandle< YieldTermStructure > collRelinkableHandle_
Handle< YieldTermStructure > collHandle_
void initializeDates() override
BusinessDayConvention conv_
bool isFxBaseCurrencyCollateralCurrency() const
bool isFxBaseCurrencyCollateralCurrency_
Real impliedQuote() const override
Calendar adjustmentCalendar() const
BusinessDayConvention businessDayConvention() const
Shared handle to an observable.
template class providing a null value for a given type.
Bootstrap helper with date schedule relative to global evaluation date.
Relinkable handle to an observable.
Rate helper for bootstrapping over swap rates.
RelinkableHandle< YieldTermStructure > discountRelinkableHandle_
void setTermStructure(YieldTermStructure *) override
BusinessDayConvention fixedConvention_
RelinkableHandle< YieldTermStructure > termStructureHandle_
ext::shared_ptr< VanillaSwap > swap_
Pillar::Choice pillarChoice_
DayCounter fixedDayCount_
const Period & forwardStart() const
Handle< YieldTermStructure > discountHandle_
ext::shared_ptr< IborIndex > iborIndex_
ext::optional< bool > useIndexedCoupons_
ext::shared_ptr< VanillaSwap > swap() const
void accept(AcyclicVisitor &) override
Frequency fixedFrequency_
void initializeDates() override
Real impliedQuote() const override
Interest-rate term structure.
Frequency
Frequency of events.
BusinessDayConvention
Business Day conventions.
Real Time
continuous quantity with 1-year units
unsigned QL_INTEGER Natural
positive integer
Real Spread
spreads on interest rates
const boost::none_t & nullopt
BootstrapHelper< YieldTermStructure > RateHelper
RelativeDateBootstrapHelper< YieldTermStructure > RelativeDateRateHelper
Type
Futures type enumeration.
Choice
Enumeration for pillar determination alternatives.
@ LastRelevantDate
instruments maturity date