24#ifndef quantlib_cms_coupon_hpp
25#define quantlib_cms_coupon_hpp
27#include <ql/cashflows/floatingratecoupon.hpp>
28#include <ql/time/schedule.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
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.