30#ifndef quantext_nonstandardcappedlfooredyoycoupon_hpp
31#define quantext_nonstandardcappedlfooredyoycoupon_hpp
78 Rate
cap = Null<Rate>(), Rate
floor = Null<Rate>());
82 const Date& endDate, Natural fixingDays,
83 const ext::shared_ptr<ZeroInflationIndex>& index,
84 const Period& observationLag,
const DayCounter& dayCounter,
86 const Rate
floor = Null<Rate>(),
const Date& refPeriodStart = Date(),
88 QuantLib::CPI::InterpolationType interpolation = QuantLib::CPI::InterpolationType::Flat);
93 Rate
rate()
const override;
111 virtual void accept(AcyclicVisitor& v)
override;
117 void setPricer(
const ext::shared_ptr<NonStandardYoYInflationCouponPricer>&);
132 const ext::shared_ptr<ZeroInflationIndex>& index,
const Period& observationLag);
150 operator Leg()
const;
154 ext::shared_ptr<ZeroInflationIndex>
index_;
Capped or floored inflation coupon.
virtual void setCommon(Rate cap, Rate floor)
Rate rate() const override
swap(let) rate
Rate effectiveCap() const
effective cap of fixing
Rate effectiveFloor() const
effective floor of fixing
void setPricer(const ext::shared_ptr< NonStandardYoYInflationCouponPricer > &)
virtual void accept(AcyclicVisitor &v) override
ext::shared_ptr< NonStandardYoYInflationCoupon > underlying_
Coupon paying a YoY-inflation type index
Real gearing() const
index gearing, i.e. multiplicative coefficient for the index
bool addInflationNotional() const
Spread spread() const
spread paid over the fixing of the underlying index
BusinessDayConvention paymentAdjustment_
bool addInflationNotional_
std::vector< Rate > caps_
NonStandardYoYInflationLeg & withPaymentAdjustment(BusinessDayConvention)
NonStandardYoYInflationLeg & withFloors(Rate floor)
Calendar paymentCalendar_
NonStandardYoYInflationLeg & withFixingDays(Natural fixingDays)
NonStandardYoYInflationLeg & withRateCurve(const Handle< YieldTermStructure > &rateCurve)
QuantLib::CPI::InterpolationType interpolation_
ext::shared_ptr< ZeroInflationIndex > index_
NonStandardYoYInflationLeg & withSpreads(Spread spread)
NonStandardYoYInflationLeg & withPaymentDayCounter(const DayCounter &)
std::vector< Real > notionals_
std::vector< Spread > spreads_
NonStandardYoYInflationLeg & withGearings(Real gearing)
NonStandardYoYInflationLeg & withNotionals(Real notional)
Handle< YieldTermStructure > rateCurve_
std::vector< Natural > fixingDays_
NonStandardYoYInflationLeg & withObservationInterpolation(QuantLib::CPI::InterpolationType interpolation)
std::vector< Rate > floors_
NonStandardYoYInflationLeg & withCaps(Rate cap)
NonStandardYoYInflationLeg & withInflationNotional(bool addInflationNotional_)
std::vector< Real > gearings_
DayCounter paymentDayCounter_
pricer for the generalized (nonstandard) yoy coupon the payoff of the coupon is: N * (alpha * I_t/I_s...
capped floored coupon which generalize the yoy inflation coupon it pays: N * (alpha * I_t/I_s + beta)...