30 const QuantLib::ext::shared_ptr<OvernightIndex>& rfrIndex,
const Real spread,
31 const Date& switchDate)
32 : YieldTermStructure(originalIndex->forwardingTermStructure()->dayCounter()), originalIndex_(originalIndex),
33 rfrIndex_(rfrIndex),
spread_(spread), switchDate_(switchDate) {
35 registerWith(
rfrIndex->forwardingTermStructure());
38 enableExtrapolation();
58 return originalIndex_->forwardingTermStructure()->settlementDays();
62 Date today = Settings::instance().evaluationDate();
67 Real couponTime =
rfrIndex_->dayCounter().yearFraction(today, endDate);
68 Real curveTime = timeFromReference(endDate);
69 Real s = std::log(1.0 + couponTime *
spread_) / curveTime;
70 return rfrIndex_->forwardingTermStructure()->discount(t) * std::exp(-s * t);
Calendar calendar() const override
QuantLib::ext::shared_ptr< IborIndex > originalIndex_
QuantLib::ext::shared_ptr< OvernightIndex > rfrIndex_
const Date & referenceDate() const override
IborFallbackCurve(const QuantLib::ext::shared_ptr< IborIndex > &originalIndex, const QuantLib::ext::shared_ptr< OvernightIndex > &rfrIndex, const Real spread, const Date &switchDate)
Natural settlementDays() const override
Date maxDate() const override
Real discountImpl(QuantLib::Time t) const override
QuantLib::ext::shared_ptr< OvernightIndex > rfrIndex() const
const Date & switchDate() const
QuantLib::ext::shared_ptr< IborIndex > originalIndex() const
projection curve for ibor fallback indices
coupon paying the compounded daily overnight rate, copy of QL class, added includeSpread flag