Capped and/or floored floating-rate coupon. More...
#include <ql/cashflows/capflooredcoupon.hpp>
 Inheritance diagram for CappedFlooredCoupon:
 Inheritance diagram for CappedFlooredCoupon:| Public Member Functions | |
| CappedFlooredCoupon (const boost::shared_ptr< FloatingRateCoupon > &underlying, Rate cap=Null< Rate >(), Rate floor=Null< Rate >()) | |
| Rate | cap () const | 
| cap | |
| Rate | floor () const | 
| floor | |
| Rate | effectiveCap () const | 
| effective cap of fixing | |
| Rate | effectiveFloor () const | 
| effective floor of fixing | |
| Coupon interface | |
| Rate | rate () const | 
| accrued rate | |
| Rate | convexityAdjustment () const | 
| convexity adjustment | |
| Observer interface | |
| void | update () | 
|  Public Member Functions inherited from FloatingRateCoupon | |
| FloatingRateCoupon (const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, Natural fixingDays, const boost::shared_ptr< InterestRateIndex > &index, Real gearing=1.0, Spread spread=0.0, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const DayCounter &dayCounter=DayCounter(), bool isInArrears=false) | |
| boost::shared_ptr< FloatingRateCouponPricer > | pricer () const | 
| Real | amount () const | 
| returns the amount of the cash flow  More... | |
| Rate | rate () const | 
| accrued rate | |
| Real | price (const Handle< YieldTermStructure > &discountingCurve) const | 
| DayCounter | dayCounter () const | 
| day counter for accrual calculation | |
| Real | accruedAmount (const Date &) const | 
| accrued amount at the given date | |
| const boost::shared_ptr< InterestRateIndex > & | index () const | 
| floating index | |
| Natural | fixingDays () const | 
| fixing days | |
| virtual Date | fixingDate () const | 
| fixing date | |
| Real | gearing () const | 
| index gearing, i.e. multiplicative coefficient for the index | |
| Spread | spread () const | 
| spread paid over the fixing of the underlying index | |
| virtual Rate | indexFixing () const | 
| fixing of the underlying index | |
| virtual Rate | adjustedFixing () const | 
| convexity-adjusted fixing | |
| bool | isInArrears () const | 
| whether or not the coupon fixes in arrears | |
| void | update () | 
|  Public Member Functions inherited from Coupon | |
| Coupon (const Date &paymentDate, Real nominal, const Date &accrualStartDate, const Date &accrualEndDate, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const Date &exCouponDate=Date()) | |
| Date | date () const | 
| Date | exCouponDate () const | 
| returns the date that the cash flow trades exCoupon | |
| virtual Real | nominal () const | 
| const Date & | accrualStartDate () const | 
| start of the accrual period | |
| const Date & | accrualEndDate () const | 
| end of the accrual period | |
| const Date & | referencePeriodStart () const | 
| start date of the reference period | |
| const Date & | referencePeriodEnd () const | 
| end date of the reference period | |
| Time | accrualPeriod () const | 
| accrual period as fraction of year | |
| Date::serial_type | accrualDays () const | 
| accrual period in days | |
| Time | accruedPeriod (const Date &) const | 
| accrued period as fraction of year at the given date | |
| Date::serial_type | accruedDays (const Date &) const | 
| accrued days at the given date | |
|  Public Member Functions inherited from CashFlow | |
| bool | hasOccurred (const Date &refDate=Date(), boost::optional< bool > includeRefDate=boost::none) const | 
| returns true if an event has already occurred before a date  More... | |
| bool | tradingExCoupon (const Date &refDate=Date()) const | 
| returns true if the cashflow is trading ex-coupon on the refDate | |
| Event interface | |
| Visitability | |
|  Public Member Functions inherited from Observable | |
| Observable (const Observable &) | |
| Observable & | operator= (const Observable &) | 
| void | notifyObservers () | 
|  Public Member Functions inherited from Observer | |
| Observer (const Observer &) | |
| Observer & | operator= (const Observer &) | 
| std::pair< iterator, bool > | registerWith (const boost::shared_ptr< Observable > &) | 
| void | registerWithObservables (const boost::shared_ptr< Observer > &) | 
| Size | unregisterWith (const boost::shared_ptr< Observable > &) | 
| void | unregisterWithAll () | 
| virtual void | deepUpdate () | 
| Visitability | |
| boost::shared_ptr< FloatingRateCoupon > | underlying_ | 
| bool | isCapped_ | 
| bool | isFloored_ | 
| Rate | cap_ | 
| Rate | floor_ | 
| virtual void | accept (AcyclicVisitor &) | 
| bool | isCapped () const | 
| bool | isFloored () const | 
| void | setPricer (const boost::shared_ptr< FloatingRateCouponPricer > &pricer) | 
| const boost::shared_ptr< FloatingRateCoupon > | underlying () | 
| Additional Inherited Members | |
|  Public Types inherited from Observer | |
| typedef std::set< boost::shared_ptr< Observable > > | set_type | 
| typedef set_type::iterator | iterator | 
|  Protected Member Functions inherited from FloatingRateCoupon | |
| Rate | convexityAdjustmentImpl (Rate fixing) const | 
| convexity adjustment for the given index fixing | |
|  Protected Attributes inherited from FloatingRateCoupon | |
| boost::shared_ptr< InterestRateIndex > | index_ | 
| DayCounter | dayCounter_ | 
| Natural | fixingDays_ | 
| Real | gearing_ | 
| Spread | spread_ | 
| bool | isInArrears_ | 
| boost::shared_ptr< FloatingRateCouponPricer > | pricer_ | 
|  Protected Attributes inherited from Coupon | |
| Date | paymentDate_ | 
| Real | nominal_ | 
| Date | accrualStartDate_ | 
| Date | accrualEndDate_ | 
| Date | refPeriodStart_ | 
| Date | refPeriodEnd_ | 
| Date | exCouponDate_ | 
| Real | accrualPeriod_ | 
Capped and/or floored floating-rate coupon.
The payoff \( P \) of a capped floating-rate coupon is:
\[ P = N \times T \times \min(a L + b, C). \]
The payoff of a floored floating-rate coupon is:
\[ P = N \times T \times \max(a L + b, F). \]
The payoff of a collared floating-rate coupon is:
\[ P = N \times T \times \min(\max(a L + b, F), C). \]
where \( N \) is the notional, \( T \) is the accrual time, \( L \) is the floating rate, \( a \) is its gearing, \( b \) is the spread, and \( C \) and \( F \) the strikes.
They can be decomposed in the following manner. Decomposition of a capped floating rate coupon:
\[ R = \min(a L + b, C) = (a L + b) + \min(C - b - \xi |a| L, 0) \]
where \( \xi = sgn(a) \). Then:
\[ R = (a L + b) + |a| \min(\frac{C - b}{|a|} - \xi L, 0) \]
| 
 | virtual | 
This method must be implemented in derived classes. An instance of Observer does not call this method directly: instead, it will be called by the observables the instance registered with when they need to notify any changes.
Implements Observer.