25#ifndef quantlib_oisratehelper_hpp
26#define quantlib_oisratehelper_hpp
35 class FloatingRateCouponPricer;
43 const ext::shared_ptr<OvernightIndex>& overnightIndex,
46 bool telescopicValueDates =
false,
52 const std::variant<Spread, Handle<Quote>>& overnightSpread =
Spread(0.0),
57 ext::optional<Frequency> fixedPaymentFrequency =
ext::nullopt,
61 bool applyObservationShift =
false,
62 ext::shared_ptr<FloatingRateCouponPricer> pricer = {},
69 const ext::shared_ptr<OvernightIndex>& overnightIndex,
72 bool telescopicValueDates =
false,
77 const std::variant<Spread, Handle<Quote>>& overnightSpread =
Spread(0.0),
82 ext::optional<Frequency> fixedPaymentFrequency =
ext::nullopt,
86 bool applyObservationShift =
false,
87 ext::shared_ptr<FloatingRateCouponPricer> pricer = {},
99 ext::shared_ptr<OvernightIndexedSwap>
swap()
const {
return swap_; }
106 void initialize(
const ext::shared_ptr<OvernightIndex>& overnightIndex,
107 Date customPillarDate);
115 ext::shared_ptr<OvernightIndexedSwap>
swap_;
137 ext::shared_ptr<FloatingRateCouponPricer>
pricer_;
150 const ext::shared_ptr<OvernightIndex>& overnightIndex,
153 bool telescopicValueDates =
false,
159 Spread overnightSpread = {},
160 ext::optional<bool> endOfMonth = ext::nullopt,
161 ext::optional<Frequency> fixedPaymentFrequency = ext::nullopt,
165 bool applyObservationShift =
false,
166 const ext::shared_ptr<FloatingRateCouponPricer>& pricer = {});
171 [[deprecated(
"Use the overload without forward start")]]
175 const ext::shared_ptr<OvernightIndex>& overnightIndex,
178 bool telescopicValueDates,
184 const Period& forwardStart,
185 Spread overnightSpread = {},
186 ext::optional<bool> endOfMonth = ext::nullopt,
187 ext::optional<Frequency> fixedPaymentFrequency = ext::nullopt,
degenerate base class for the Acyclic Visitor pattern
Shared handle to an observable.
template class providing a null value for a given type.
Rate helper for bootstrapping over Overnight Indexed Swap rates.
ext::shared_ptr< OvernightIndex > overnightIndex_
RelinkableHandle< YieldTermStructure > discountRelinkableHandle_
void setTermStructure(YieldTermStructure *) override
bool telescopicValueDates_
void initialize(const ext::shared_ptr< OvernightIndex > &overnightIndex, Date customPillarDate)
RelinkableHandle< YieldTermStructure > termStructureHandle_
Calendar paymentCalendar_
Pillar::Choice pillarChoice_
Handle< YieldTermStructure > discountHandle_
ext::shared_ptr< FloatingRateCouponPricer > pricer_
void accept(AcyclicVisitor &) override
bool applyObservationShift_
ext::optional< bool > endOfMonth_
DateGeneration::Rule rule_
RateAveraging::Type averagingMethod_
void initializeDates() override
ext::shared_ptr< OvernightIndexedSwap > swap_
Calendar overnightCalendar_
BusinessDayConvention paymentConvention_
Real impliedQuote() const override
Frequency paymentFrequency_
Handle< Quote > overnightSpread_
ext::shared_ptr< OvernightIndexedSwap > swap() const
ext::optional< Frequency > fixedPaymentFrequency_
Bootstrap helper with date schedule relative to global evaluation date.
Relinkable handle to an observable.
Interest-rate term structure.
Frequency
Frequency of events.
BusinessDayConvention
Business Day conventions.
unsigned QL_INTEGER Natural
positive integer
QL_INTEGER Integer
integer number
Real Spread
spreads on interest rates
constexpr const boost::none_t & nullopt
Maps optional to either the boost or std implementation.
Overnight index swap paying compounded overnight vs. fixed.
deposit, FRA, futures, and various swap rate helpers
Choice
Alternatives ways of determining the pillar date.
@ LastRelevantDate
instruments maturity date