24#ifndef quantlib_cms_coupon_hpp
25#define quantlib_cms_coupon_hpp
43 const Date& startDate,
46 const ext::shared_ptr<SwapIndex>&
index,
56 const ext::shared_ptr<SwapIndex>&
swapIndex()
const {
degenerate base class for the Acyclic Visitor pattern
const ext::shared_ptr< SwapIndex > & swapIndex() const
ext::shared_ptr< SwapIndex > swapIndex_
void accept(AcyclicVisitor &) override
helper class building a sequence of capped/floored cms-rate coupons
BusinessDayConvention paymentAdjustment_
std::vector< Rate > caps_
BusinessDayConvention exCouponAdjustment_
CmsLeg & withFloors(Rate floor)
CmsLeg & withCaps(Rate cap)
CmsLeg & withGearings(Real gearing)
ext::shared_ptr< SwapIndex > swapIndex_
std::vector< Real > notionals_
std::vector< Spread > spreads_
CmsLeg & withSpreads(Spread spread)
CmsLeg & withExCouponPeriod(const Period &, const Calendar &, BusinessDayConvention, bool endOfMonth)
CmsLeg & withPaymentDayCounter(const DayCounter &)
CmsLeg & inArrears(bool flag=true)
CmsLeg & withZeroPayments(bool flag=true)
std::vector< Natural > fixingDays_
CmsLeg & withNotionals(Real notional)
Calendar exCouponCalendar_
std::vector< Rate > floors_
CmsLeg & withPaymentAdjustment(BusinessDayConvention)
CmsLeg & withFixingDays(Natural fixingDays)
std::vector< Real > gearings_
DayCounter paymentDayCounter_
Date exCouponDate() const override
returns the date that the cash flow trades exCoupon
virtual Real nominal() const
base floating-rate coupon class
Natural fixingDays() const
fixing days
Real gearing() const
index gearing, i.e. multiplicative coefficient for the index
DayCounter dayCounter() const override
day counter for accrual calculation
const ext::shared_ptr< InterestRateIndex > & index() const
floating index
Spread spread() const
spread paid over the fixing of the underlying index
bool isInArrears() const
whether or not the coupon fixes in arrears
Coupon paying a variable index-based rate.
BusinessDayConvention
Business Day conventions.
unsigned QL_INTEGER Natural
positive integer
Real Spread
spreads on interest rates
std::vector< ext::shared_ptr< CashFlow > > Leg
Sequence of cash-flows.