QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
Public Member Functions | List of all members
CappedFlooredCoupon Class Reference

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< FloatingRateCouponPricerpricer () 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 DateaccrualStartDate () const
 start of the accrual period More...
 
const DateaccrualEndDate () const
 end of the accrual period More...
 
const DatereferencePeriodStart () const
 start date of the reference period More...
 
const DatereferencePeriodEnd () 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 ()
 
 Observable (const Observable &)
 
Observableoperator= (const Observable &)
 
 Observable (Observable &&)=delete
 
Observableoperator= (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 &)
 
Observeroperator= (const Observer &)
 
virtual ~Observer ()
 
std::pair< iterator, boolregisterWith (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< FloatingRateCouponunderlying_
 
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< FloatingRateCouponunderlying ()
 

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< InterestRateIndexindex_
 
DayCounter dayCounter_
 
Natural fixingDays_
 
Real gearing_
 
Spread spread_
 
bool isInArrears_
 
ext::shared_ptr< FloatingRateCouponPricerpricer_
 
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_
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ CappedFlooredCoupon()

CappedFlooredCoupon ( const ext::shared_ptr< FloatingRateCoupon > &  underlying,
Rate  cap = Null<Rate>(),
Rate  floor = Null<Rate>() 
)

Definition at line 27 of file capflooredcoupon.cpp.

+ Here is the call graph for this function:

Member Function Documentation

◆ deepUpdate()

void deepUpdate ( )
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:

◆ performCalculations()

void performCalculations ( ) const
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:

◆ rate()

Rate rate ( ) const
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:

◆ convexityAdjustment()

Rate convexityAdjustment ( ) const
overridevirtual

convexity adjustment

Reimplemented from FloatingRateCoupon.

Definition at line 102 of file capflooredcoupon.cpp.

◆ cap()

Rate cap ( ) const

cap

Definition at line 106 of file capflooredcoupon.cpp.

+ Here is the caller graph for this function:

◆ floor()

Rate floor ( ) const

floor

Definition at line 114 of file capflooredcoupon.cpp.

+ Here is the caller graph for this function:

◆ effectiveCap()

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:

◆ effectiveFloor()

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:

◆ accept()

void accept ( AcyclicVisitor v)
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:

◆ isCapped()

bool isCapped ( ) const

Definition at line 89 of file capflooredcoupon.hpp.

◆ isFloored()

bool isFloored ( ) const

Definition at line 90 of file capflooredcoupon.hpp.

◆ setPricer()

void setPricer ( const ext::shared_ptr< FloatingRateCouponPricer > &  pricer)
overridevirtual

Reimplemented from FloatingRateCoupon.

Definition at line 74 of file capflooredcoupon.cpp.

+ Here is the call graph for this function:

◆ underlying()

ext::shared_ptr< FloatingRateCoupon > underlying ( )

Definition at line 94 of file capflooredcoupon.hpp.

Member Data Documentation

◆ underlying_

ext::shared_ptr<FloatingRateCoupon> underlying_
protected

Definition at line 98 of file capflooredcoupon.hpp.

◆ isCapped_

bool isCapped_ = false
protected

Definition at line 99 of file capflooredcoupon.hpp.

◆ isFloored_

bool isFloored_ = false
protected

Definition at line 99 of file capflooredcoupon.hpp.

◆ cap_

Rate cap_
protected

Definition at line 100 of file capflooredcoupon.hpp.

◆ floor_

Rate floor_
protected

Definition at line 100 of file capflooredcoupon.hpp.