27#include <ql/cashflows/couponpricer.hpp>
28#include <ql/cashflows/floatingratecoupon.hpp>
29#include <ql/indexes/iborindex.hpp>
30#include <ql/time/schedule.hpp>
38class AverageONIndexedCouponPricer;
51 const QuantLib::ext::shared_ptr<OvernightIndex>&
overnightIndex, Real gearing = 1.0,
52 Spread spread = 0.0, Natural
rateCutoff = 0,
const DayCounter& dayCounter = DayCounter(),
53 const Period&
lookback = 0 * Days,
const Size fixingDays = Null<Size>(),
61 const std::vector<Time>&
dt()
const {
return dt_; }
84 void accept(AcyclicVisitor&)
override;
91 std::vector<Time>
dt_;
117 Rate
rate()
const override;
139 virtual void accept(AcyclicVisitor&)
override;
181 AverageONLeg(
const Schedule& schedule,
const QuantLib::ext::shared_ptr<OvernightIndex>& overnightIndex);
209 const QuantLib::ext::shared_ptr<CapFlooredAverageONIndexedCouponPricer>& couponPricer);
210 operator Leg()
const;
Natural rateCutoff() const
rate cutoff associated with the coupon
QuantLib::ext::shared_ptr< OvernightIndex > overnightIndex_
Date rateComputationStartDate_
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 averaged
const Date & rateComputationStartDate() const
rate computation start date
const Date & rateComputationEndDate() const
rate computation end date
void accept(AcyclicVisitor &) override
std::vector< Rate > fixings_
const Period & lookback() const
lookback period
std::vector< Date > valueDates_
const std::vector< Time > & dt() const
accrual periods for the averaging
Date rateComputationEndDate_
const std::vector< Rate > & indexFixings() const
fixings to be averaged
const std::vector< Date > & fixingDates() const
fixing dates for the rates to be averaged
Date fixingDate() const override
the date when the coupon is fully determined
helper class building a sequence of overnight coupons
AverageONLeg & withGearing(Real gearing)
AverageONLeg & withLastRecentPeriod(const boost::optional< Period > &lastRecentPeriod)
AverageONLeg & withPaymentDates(const std::vector< QuantLib::Date > &paymentDates)
BusinessDayConvention paymentAdjustment_
std::vector< Rate > caps_
QuantLib::ext::shared_ptr< OvernightIndex > overnightIndex_
bool telescopicValueDates_
AverageONLeg & withSpread(Spread spread)
AverageONLeg & withPaymentDayCounter(const DayCounter &dayCounter)
AverageONLeg & includeSpreadInCapFloors(bool includeSpread)
AverageONLeg & withPaymentLag(Natural lag)
Calendar paymentCalendar_
AverageONLeg & withNotional(Real notional)
AverageONLeg & withLookback(const Period &lookback)
AverageONLeg & withRateCutoff(Natural rateCutoff)
boost::optional< Period > lastRecentPeriod_
std::vector< QuantLib::Date > paymentDates_
AverageONLeg & withLastRecentPeriodCalendar(const Calendar &lastRecentPeriodCalendar)
AverageONLeg & withPaymentCalendar(const Calendar &calendar)
Calendar lastRecentPeriodCalendar_
AverageONLeg & withNakedOption(const bool nakedOption)
QuantLib::ext::shared_ptr< CapFlooredAverageONIndexedCouponPricer > capFlooredCouponPricer_
std::vector< Real > notionals_
std::vector< Spread > spreads_
AverageONLeg & withLocalCapFloor(const bool localCapFloor)
AverageONLeg & withTelescopicValueDates(bool telescopicValueDates)
AverageONLeg & withPaymentAdjustment(BusinessDayConvention convention)
AverageONLeg & withNotionals(const std::vector< Real > ¬ionals)
AverageONLeg & withSpreads(const std::vector< Spread > &spreads)
AverageONLeg & withInArrears(const bool inArrears)
AverageONLeg & withCaps(Rate cap)
AverageONLeg & withFloors(Rate floor)
AverageONLeg & withCapFlooredAverageONIndexedCouponPricer(const QuantLib::ext::shared_ptr< CapFlooredAverageONIndexedCouponPricer > &couponPricer)
QuantLib::ext::shared_ptr< AverageONIndexedCouponPricer > couponPricer_
std::vector< Rate > floors_
AverageONLeg & withAverageONIndexedCouponPricer(const QuantLib::ext::shared_ptr< AverageONIndexedCouponPricer > &couponPricer)
AverageONLeg & withFixingDays(const Size fixingDays)
AverageONLeg & withGearings(const std::vector< Real > &gearings)
std::vector< Real > gearings_
DayCounter paymentDayCounter_
capped floored averaged 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_
capped floored overnight indexed coupon
void performCalculations() const override
Real effectiveCapletVolatility() const
effective caplet volatility
bool includeSpread() const
Real effectiveCapletVolatility_
ext::shared_ptr< AverageONIndexedCoupon > underlying() const
void deepUpdate() override
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_
Rate effectiveFloor() const
effective floor of fixing
Rate convexityAdjustment() const override
void alwaysForwardNotifications() override
ext::shared_ptr< AverageONIndexedCoupon > underlying_
Date fixingDate() const override