47#include <ql/cashflows/couponpricer.hpp>
48#include <ql/cashflows/floatingratecoupon.hpp>
49#include <ql/indexes/iborindex.hpp>
50#include <ql/time/schedule.hpp>
53class OptionletVolatilityStructure;
75 const ext::shared_ptr<OvernightIndex>&
overnightIndex, Real gearing = 1.0,
76 Spread spread = 0.0,
const Date& refPeriodStart = Date(),
const Date& refPeriodEnd = Date(),
77 const DayCounter& dayCounter = DayCounter(),
bool telescopicValueDates =
false,
86 const std::vector<Time>&
dt()
const {
return dt_; }
118 void accept(AcyclicVisitor&)
override;
140 Real
swapletPrice()
const override { QL_FAIL(
"swapletPrice not available"); }
141 Real
capletPrice(Rate)
const override { QL_FAIL(
"capletPrice not available"); }
142 Rate
capletRate(Rate)
const override { QL_FAIL(
"capletRate not available"); }
143 Real
floorletPrice(Rate)
const override { QL_FAIL(
"floorletPrice not available"); }
144 Rate
floorletRate(Rate)
const override { QL_FAIL(
"floorletRate not available"); }
171 Rate
rate()
const override;
193 virtual void accept(AcyclicVisitor&)
override;
231 OvernightLeg(
const Schedule& schedule,
const ext::shared_ptr<OvernightIndex>& overnightIndex);
259 const QuantLib::ext::shared_ptr<CappedFlooredOvernightIndexedCouponPricer>& couponPricer);
260 operator Leg()
const;
capped floored overnight indexed coupon
void performCalculations() const override
Real effectiveCapletVolatility() const
effective caplet volatility
Real effectiveCapletVolatility_
void deepUpdate() override
ext::shared_ptr< OvernightIndexedCoupon > underlying() const
Rate rate() const override
virtual void accept(AcyclicVisitor &) override
Real effectiveFloorletVolatility() const
effective floorlet volatility
bool localCapFloor() const
Rate effectiveCap() const
effective cap of fixing
Real effectiveFloorletVolatility_
ext::shared_ptr< OvernightIndexedCoupon > underlying_
Rate effectiveFloor() const
effective floor of fixing
Rate convexityAdjustment() const override
void alwaysForwardNotifications() override
Date fixingDate() const override
capped floored overnight indexed coupon pricer base class
bool effectiveVolatilityInput() const
Real effectiveCapletVolatility() const
Real effectiveCapletVolatility_
Handle< OptionletVolatilityStructure > capletVolatility() const
Handle< OptionletVolatilityStructure > capletVol_
Real effectiveFloorletVolatility() const
Real effectiveFloorletVolatility_
bool effectiveVolatilityInput_
Natural rateCutoff() const
rate cutoff
QuantLib::ext::shared_ptr< OvernightIndex > overnightIndex_
Date rateComputationStartDate_
bool includeSpread() const
include spread in compounding?
std::vector< Date > fixingDates_
const ext::shared_ptr< OvernightIndex > & overnightIndex() const
the underlying index
const std::vector< Date > & valueDates() const
value dates for the rates to be compounded
Real effectiveIndexFixing() const
const Date & rateComputationStartDate() const
rate computation start date
const Date & rateComputationEndDate() const
rate computation end date
const std::vector< Rate > & indexFixings() const
fixings to be compounded
void accept(AcyclicVisitor &) override
std::vector< Rate > fixings_
Real effectiveSpread() const
const Period & lookback() const
lookback period
std::vector< Date > valueDates_
const std::vector< Time > & dt() const
accrual (compounding) periods
Date rateComputationEndDate_
const std::vector< Date > & fixingDates() const
fixing dates for the rates to be compounded
Date fixingDate() const override
the date when the coupon is fully determined
OvernightIndexedCoupon pricer.
void initialize(const FloatingRateCoupon &coupon) override
Real effectiveIndexFixing_
Rate floorletRate(Rate) const override
Rate capletRate(Rate) const override
Real floorletPrice(Rate) const override
const OvernightIndexedCoupon * coupon_
Rate effectiveSpread() const
Rate effectiveIndexFixing() const
Real capletPrice(Rate) const override
Rate swapletRate() const override
Real swapletPrice() const override
helper class building a sequence of overnight coupons
ext::shared_ptr< OvernightIndex > overnightIndex_
OvernightLeg & withLookback(const Period &lookback)
BusinessDayConvention paymentAdjustment_
std::vector< Rate > caps_
bool telescopicValueDates_
OvernightLeg & withGearings(Real gearing)
QuantLib::ext::shared_ptr< CappedFlooredOvernightIndexedCouponPricer > capFlooredCouponPricer_
OvernightLeg & withOvernightIndexedCouponPricer(const QuantLib::ext::shared_ptr< OvernightIndexedCouponPricer > &couponPricer)
OvernightLeg & withCapFlooredOvernightIndexedCouponPricer(const QuantLib::ext::shared_ptr< CappedFlooredOvernightIndexedCouponPricer > &couponPricer)
OvernightLeg & withPaymentCalendar(const Calendar &)
OvernightLeg & withLastRecentPeriod(const boost::optional< Period > &lastRecentPeriod)
Calendar paymentCalendar_
OvernightLeg & withFloors(Rate floor)
OvernightLeg & withTelescopicValueDates(bool telescopicValueDates)
OvernightLeg & withPaymentAdjustment(BusinessDayConvention)
boost::optional< Period > lastRecentPeriod_
std::vector< QuantLib::Date > paymentDates_
Calendar lastRecentPeriodCalendar_
std::vector< Real > notionals_
OvernightLeg & withNakedOption(const bool nakedOption)
std::vector< Spread > spreads_
OvernightLeg & withFixingDays(const Natural fixingDays)
OvernightLeg & withNotionals(Real notional)
OvernightLeg & withRateCutoff(const Natural rateCutoff)
OvernightLeg & withCaps(Rate cap)
OvernightLeg & withPaymentDayCounter(const DayCounter &)
OvernightLeg & withInArrears(const bool inArrears)
OvernightLeg & withSpreads(Spread spread)
OvernightLeg & withPaymentDates(const std::vector< Date > &paymentDates)
OvernightLeg & withLocalCapFloor(const bool localCapFloor)
std::vector< Rate > floors_
OvernightLeg & includeSpread(bool includeSpread)
OvernightLeg & withPaymentLag(Natural lag)
QuantLib::ext::shared_ptr< OvernightIndexedCouponPricer > couponPricer_
OvernightLeg & withLastRecentPeriodCalendar(const Calendar &lastRecentPeriodCalendar)
std::vector< Real > gearings_
DayCounter paymentDayCounter_