|
QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.38
|
Capped and/or floored floating-rate coupon. More...
#include <capflooredcoupon.hpp>
Inheritance diagram for CappedFlooredCoupon:
Collaboration diagram for CappedFlooredCoupon:Public Member Functions | |
| CappedFlooredCoupon (const ext::shared_ptr< FloatingRateCoupon > &underlying, Rate cap=Null< Rate >(), Rate floor=Null< Rate >()) | |
Observer interface | |
| void | deepUpdate () override |
LazyObject interface | |
| void | performCalculations () const override |
Coupon interface | |
| Rate | rate () const override |
| accrued rate More... | |
| Rate | convexityAdjustment () const override |
| convexity adjustment More... | |
| Rate | cap () const |
| cap More... | |
| Rate | floor () const |
| floor More... | |
| Rate | effectiveCap () const |
| effective cap of fixing More... | |
| Rate | effectiveFloor () const |
| effective floor of fixing More... | |
Public Member Functions inherited from FloatingRateCoupon | |
| FloatingRateCoupon (const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, Natural fixingDays, const ext::shared_ptr< InterestRateIndex > &index, Real gearing=1.0, Spread spread=0.0, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), DayCounter dayCounter=DayCounter(), bool isInArrears=false, const Date &exCouponDate=Date()) | |
| void | performCalculations () const override |
| Real | amount () const override |
| returns the amount of the cash flow More... | |
| Rate | rate () const override |
| accrued rate More... | |
| Real | price (const Handle< YieldTermStructure > &discountingCurve) const |
| DayCounter | dayCounter () const override |
| day counter for accrual calculation More... | |
| Real | accruedAmount (const Date &) const override |
| accrued amount at the given date More... | |
| const ext::shared_ptr< InterestRateIndex > & | index () const |
| floating index More... | |
| Natural | fixingDays () const |
| fixing days More... | |
| virtual Date | fixingDate () const |
| fixing date More... | |
| Real | gearing () const |
| index gearing, i.e. multiplicative coefficient for the index More... | |
| Spread | spread () const |
| spread paid over the fixing of the underlying index More... | |
| virtual Rate | indexFixing () const |
| fixing of the underlying index More... | |
| virtual Rate | adjustedFixing () const |
| convexity-adjusted fixing More... | |
| bool | isInArrears () const |
| whether or not the coupon fixes in arrears More... | |
| void | accept (AcyclicVisitor &) override |
| ext::shared_ptr< FloatingRateCouponPricer > | pricer () const |
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 override |
| Date | exCouponDate () const override |
| returns the date that the cash flow trades exCoupon More... | |
| virtual Real | nominal () const |
| const Date & | accrualStartDate () const |
| start of the accrual period More... | |
| const Date & | accrualEndDate () const |
| end of the accrual period More... | |
| const Date & | referencePeriodStart () const |
| start date of the reference period More... | |
| const Date & | referencePeriodEnd () const |
| end date of the reference period More... | |
| Time | accrualPeriod () const |
| accrual period as fraction of year More... | |
| Date::serial_type | accrualDays () const |
| accrual period in days More... | |
| Time | accruedPeriod (const Date &) const |
| accrued period as fraction of year at the given date More... | |
| Date::serial_type | accruedDays (const Date &) const |
| accrued days at the given date More... | |
Public Member Functions inherited from CashFlow | |
| ~CashFlow () override=default | |
| bool | hasOccurred (const Date &refDate=Date(), ext::optional< bool > includeRefDate=ext::nullopt) const override |
| 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 More... | |
Public Member Functions inherited from Event | |
| ~Event () override=default | |
Public Member Functions inherited from Observable | |
| Observable ()=default | |
| Observable (const Observable &) | |
| Observable & | operator= (const Observable &) |
| Observable (Observable &&)=delete | |
| Observable & | operator= (Observable &&)=delete |
| virtual | ~Observable ()=default |
| void | notifyObservers () |
Public Member Functions inherited from LazyObject | |
| LazyObject () | |
| ~LazyObject () override=default | |
| void | update () override |
| bool | isCalculated () const |
| void | forwardFirstNotificationOnly () |
| void | alwaysForwardNotifications () |
| void | recalculate () |
| void | freeze () |
| void | unfreeze () |
Public Member Functions inherited from Observer | |
| Observer ()=default | |
| Observer (const Observer &) | |
| Observer & | operator= (const Observer &) |
| virtual | ~Observer () |
| std::pair< iterator, bool > | registerWith (const ext::shared_ptr< Observable > &) |
| void | registerWithObservables (const ext::shared_ptr< Observer > &) |
| Size | unregisterWith (const ext::shared_ptr< Observable > &) |
| void | unregisterWithAll () |
| virtual void | update ()=0 |
| virtual void | deepUpdate () |
Visitability | |
| ext::shared_ptr< FloatingRateCoupon > | underlying_ |
| bool | isCapped_ = false |
| bool | isFloored_ = false |
| Rate | cap_ |
| Rate | floor_ |
| void | accept (AcyclicVisitor &) override |
| bool | isCapped () const |
| bool | isFloored () const |
| void | setPricer (const ext::shared_ptr< FloatingRateCouponPricer > &pricer) override |
| ext::shared_ptr< FloatingRateCoupon > | underlying () |
Additional Inherited Members | |
Public Types inherited from Observer | |
| typedef set_type::iterator | iterator |
Protected Member Functions inherited from FloatingRateCoupon | |
| Rate | convexityAdjustmentImpl (Rate fixing) const |
| convexity adjustment for the given index fixing More... | |
Protected Member Functions inherited from LazyObject | |
| virtual void | calculate () const |
Protected Attributes inherited from FloatingRateCoupon | |
| ext::shared_ptr< InterestRateIndex > | index_ |
| DayCounter | dayCounter_ |
| Natural | fixingDays_ |
| Real | gearing_ |
| Spread | spread_ |
| bool | isInArrears_ |
| ext::shared_ptr< FloatingRateCouponPricer > | pricer_ |
| Real | rate_ |
Protected Attributes inherited from Coupon | |
| Date | paymentDate_ |
| Real | nominal_ |
| Date | accrualStartDate_ |
| Date | accrualEndDate_ |
| Date | refPeriodStart_ |
| Date | refPeriodEnd_ |
| Date | exCouponDate_ |
| Real | accrualPeriod_ |
Protected Attributes inherited from LazyObject | |
| bool | calculated_ = false |
| bool | frozen_ = false |
| bool | alwaysForward_ |
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) \]
Definition at line 57 of file capflooredcoupon.hpp.
| CappedFlooredCoupon | ( | const ext::shared_ptr< FloatingRateCoupon > & | underlying, |
| Rate | cap = Null<Rate>(), |
||
| Rate | floor = Null<Rate>() |
||
| ) |
|
overridevirtual |
This method allows to explicitly update the instance itself and nested observers. If notifications are disabled a call to this method ensures an update of such nested observers. It should be implemented in derived classes whenever applicable
Reimplemented from Observer.
Definition at line 80 of file capflooredcoupon.cpp.
Here is the call graph for this function:
|
overridevirtual |
This method must implement any calculations which must be (re)done in order to calculate the desired results.
Reimplemented from CashFlow.
Definition at line 85 of file capflooredcoupon.cpp.
Here is the call graph for this function:
|
overridevirtual |
accrued rate
Implements Coupon.
Definition at line 97 of file capflooredcoupon.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:
|
overridevirtual |
convexity adjustment
Reimplemented from FloatingRateCoupon.
Definition at line 102 of file capflooredcoupon.cpp.
| Rate cap | ( | ) | const |
cap
Definition at line 106 of file capflooredcoupon.cpp.
Here is the caller graph for this function:| Rate floor | ( | ) | const |
floor
Definition at line 114 of file capflooredcoupon.cpp.
Here is the caller graph for this function:| Rate effectiveCap | ( | ) | const |
effective cap of fixing
Definition at line 122 of file capflooredcoupon.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:| Rate effectiveFloor | ( | ) | const |
effective floor of fixing
Definition at line 129 of file capflooredcoupon.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:
|
overridevirtual |
Reimplemented from CashFlow.
Reimplemented in CappedFlooredIborCoupon, CappedFlooredCmsCoupon, and CappedFlooredCmsSpreadCoupon.
Definition at line 136 of file capflooredcoupon.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:| bool isCapped | ( | ) | const |
Definition at line 89 of file capflooredcoupon.hpp.
| bool isFloored | ( | ) | const |
Definition at line 90 of file capflooredcoupon.hpp.
|
overridevirtual |
Reimplemented from FloatingRateCoupon.
Definition at line 74 of file capflooredcoupon.cpp.
Here is the call graph for this function:| ext::shared_ptr< FloatingRateCoupon > underlying | ( | ) |
Definition at line 94 of file capflooredcoupon.hpp.
|
protected |
Definition at line 98 of file capflooredcoupon.hpp.
|
protected |
Definition at line 99 of file capflooredcoupon.hpp.
|
protected |
Definition at line 99 of file capflooredcoupon.hpp.
|
protected |
Definition at line 100 of file capflooredcoupon.hpp.
|
protected |
Definition at line 100 of file capflooredcoupon.hpp.