31 underlying->nominal(),
32 underlying->accrualStartDate(),
33 underlying->accrualEndDate(),
34 underlying->fixingDays(),
36 underlying->gearing(),
38 underlying->referencePeriodStart(),
39 underlying->referencePeriodEnd(),
40 underlying->dayCounter(),
41 underlying->isInArrears(),
42 underlying->exCouponDate()),
43 underlying_(underlying) {
67 "cap level (" <<
cap <<
68 ") less than floor level (" <<
floor <<
")");
75 const ext::shared_ptr<FloatingRateCouponPricer>& pricer) {
88 Rate floorletRate = 0.;
94 rate_ = swapletRate + floorletRate - capletRate;
Floating rate coupon with additional cap/floor.
degenerate base class for the Acyclic Visitor pattern
void performCalculations() const override
void deepUpdate() override
ext::shared_ptr< FloatingRateCoupon > underlying_
Rate rate() const override
accrued rate
void accept(AcyclicVisitor &) override
CappedFlooredCoupon(const ext::shared_ptr< FloatingRateCoupon > &underlying, Rate cap=Null< Rate >(), Rate floor=Null< Rate >())
void setPricer(const ext::shared_ptr< FloatingRateCouponPricer > &pricer) override
Rate effectiveCap() const
effective cap of fixing
Rate effectiveFloor() const
effective floor of fixing
Rate convexityAdjustment() const override
convexity adjustment
base floating-rate coupon class
virtual void setPricer(const ext::shared_ptr< FloatingRateCouponPricer > &)
Real gearing() const
index gearing, i.e. multiplicative coefficient for the index
ext::shared_ptr< FloatingRateCouponPricer > pricer() const
Spread spread() const
spread paid over the fixing of the underlying index
virtual void calculate() const
template class providing a null value for a given type.
std::pair< iterator, bool > registerWith(const ext::shared_ptr< Observable > &)
Visitor for a specific class
virtual void visit(T &)=0
#define QL_REQUIRE(condition, message)
throw an error if the given pre-condition is not verified
ext::shared_ptr< BlackVolTermStructure > v