QuantLib: a free/open-source library for quantitative finance
Fully annotated sources - version 1.32
Loading...
Searching...
No Matches
Public Member Functions | List of all members
CappedFlooredYoYInflationCoupon Class Reference

Capped or floored inflation coupon. More...

#include <ql/cashflows/capflooredinflationcoupon.hpp>

+ Inheritance diagram for CappedFlooredYoYInflationCoupon:
+ Collaboration diagram for CappedFlooredYoYInflationCoupon:

Public Member Functions

 CappedFlooredYoYInflationCoupon (const ext::shared_ptr< YoYInflationCoupon > &underlying, Rate cap=Null< Rate >(), Rate floor=Null< Rate >())
 
 CappedFlooredYoYInflationCoupon (const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, Natural fixingDays, const ext::shared_ptr< YoYInflationIndex > &index, const Period &observationLag, const DayCounter &dayCounter, Real gearing=1.0, Spread spread=0.0, const Rate cap=Null< Rate >(), const Rate floor=Null< Rate >(), const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date())
 
augmented Coupon interface
Rate rate () const override
 swap(let) rate 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...
 
Observer interface
void update () override
 
- Public Member Functions inherited from YoYInflationCoupon
 YoYInflationCoupon (const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, Natural fixingDays, const ext::shared_ptr< YoYInflationIndex > &index, const Period &observationLag, const DayCounter &dayCounter, Real gearing=1.0, Spread spread=0.0, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date())
 
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...
 
Rate adjustedFixing () const
 
const ext::shared_ptr< YoYInflationIndex > & yoyIndex () const
 
void accept (AcyclicVisitor &) override
 
- Public Member Functions inherited from InflationCoupon
 InflationCoupon (const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, Natural fixingDays, ext::shared_ptr< InflationIndex > index, const Period &observationLag, DayCounter dayCounter, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const Date &exCouponDate=Date())
 
Real amount () const override
 returns the amount of the cash flow 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...
 
Rate rate () const override
 accrued rate More...
 
const ext::shared_ptr< InflationIndex > & index () const
 yoy inflation index More...
 
Period observationLag () const
 how the coupon observes the index More...
 
Natural fixingDays () const
 fixing days More...
 
virtual Date fixingDate () const
 fixing date More...
 
virtual Rate indexFixing () const
 fixing of the underlying index, as observed by the coupon More...
 
void performCalculations () const override
 
void setPricer (const ext::shared_ptr< InflationCouponPricer > &)
 
ext::shared_ptr< InflationCouponPricerpricer () 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< YoYInflationCouponunderlying_
 
bool isFloored_
 
bool isCapped_
 
Rate cap_
 
Rate floor_
 
void accept (AcyclicVisitor &v) override
 
Rate underlyingRate () const
 this returns the expected rate before cap and floor are applied More...
 
bool isCapped () const
 
bool isFloored () const
 
void setPricer (const ext::shared_ptr< YoYInflationCouponPricer > &)
 
virtual QL_DEPRECATED void setCommon (Rate cap, Rate floor)
 

Additional Inherited Members

- Public Types inherited from Observer
typedef set_type::iterator iterator
 
- Protected Member Functions inherited from YoYInflationCoupon
bool checkPricerImpl (const ext::shared_ptr< InflationCouponPricer > &) const override
 makes sure you were given the correct type of pricer More...
 
- Protected Member Functions inherited from InflationCoupon
- Protected Member Functions inherited from LazyObject
virtual void calculate () const
 
- Protected Attributes inherited from YoYInflationCoupon
Real gearing_
 
Spread spread_
 
- Protected Attributes inherited from InflationCoupon
ext::shared_ptr< InflationCouponPricerpricer_
 
ext::shared_ptr< InflationIndexindex_
 
Period observationLag_
 
DayCounter dayCounter_
 
Natural fixingDays_
 
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 or floored inflation coupon.

Essentially a copy of the nominal version but taking a different index and a set of pricers (not just one).

The payoff \( P \) of a capped inflation-rate coupon with paysWithin = true is:

\[ P = N \times T \times \min(a L + b, C). \]

where \( N \) is the notional, \( T \) is the accrual time, \( L \) is the inflation rate, \( a \) is its gearing, \( b \) is the spread, and \( C \) and \( F \) the strikes.

The payoff of a floored inflation-rate coupon is:

\[ P = N \times T \times \max(a L + b, F). \]

The payoff of a collared inflation-rate coupon is:

\[ P = N \times T \times \min(\max(a L + b, F), C). \]

If paysWithin = false then the inverse is returned (this provides for instrument cap and caplet prices).

They can be decomposed in the following manner. Decomposition of a capped floating rate coupon when paysWithin = true:

\[ 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 66 of file capflooredinflationcoupon.hpp.

Constructor & Destructor Documentation

◆ CappedFlooredYoYInflationCoupon() [1/2]

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

Definition at line 57 of file capflooredinflationcoupon.cpp.

+ Here is the call graph for this function:

◆ CappedFlooredYoYInflationCoupon() [2/2]

CappedFlooredYoYInflationCoupon ( const Date paymentDate,
Real  nominal,
const Date startDate,
const Date endDate,
Natural  fixingDays,
const ext::shared_ptr< YoYInflationIndex > &  index,
const Period observationLag,
const DayCounter dayCounter,
Real  gearing = 1.0,
Spread  spread = 0.0,
const Rate  cap = Null<Rate>(),
const Rate  floor = Null<Rate>(),
const Date refPeriodStart = Date(),
const Date refPeriodEnd = Date() 
)

Definition at line 75 of file capflooredinflationcoupon.hpp.

+ Here is the call graph for this function:

Member Function Documentation

◆ rate()

Rate rate ( ) const
overridevirtual

swap(let) rate

Implements Coupon.

Definition at line 93 of file capflooredinflationcoupon.cpp.

+ Here is the call graph for this function:

◆ cap()

Rate cap ( ) const

cap

Definition at line 109 of file capflooredinflationcoupon.cpp.

+ Here is the caller graph for this function:

◆ floor()

Rate floor ( ) const

floor

Definition at line 118 of file capflooredinflationcoupon.cpp.

+ Here is the caller graph for this function:

◆ effectiveCap()

Rate effectiveCap ( ) const

effective cap of fixing

Definition at line 127 of file capflooredinflationcoupon.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 132 of file capflooredinflationcoupon.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ update()

void update ( )
overridevirtual

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.

Definition at line 137 of file capflooredinflationcoupon.cpp.

+ Here is the call graph for this function:

◆ accept()

void accept ( AcyclicVisitor v)
overridevirtual

Reimplemented from CashFlow.

Definition at line 142 of file capflooredinflationcoupon.cpp.

+ Here is the call graph for this function:

◆ underlyingRate()

Rate underlyingRate ( ) const

this returns the expected rate before cap and floor are applied

Definition at line 89 of file capflooredinflationcoupon.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isCapped()

bool isCapped ( ) const

Definition at line 125 of file capflooredinflationcoupon.hpp.

◆ isFloored()

bool isFloored ( ) const

Definition at line 126 of file capflooredinflationcoupon.hpp.

◆ setPricer()

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

Definition at line 80 of file capflooredinflationcoupon.cpp.

+ Here is the call graph for this function:

◆ setCommon()

void setCommon ( Rate  cap,
Rate  floor 
)
protectedvirtual
Deprecated:
Do not use this method and rely on its being called by the constructor of the base class. If you have overridden it, move the code to the constructor of your derived class. Deprecated in version 1.30.

Definition at line 25 of file capflooredinflationcoupon.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ underlying_

ext::shared_ptr<YoYInflationCoupon> underlying_
protected

Definition at line 143 of file capflooredinflationcoupon.hpp.

◆ isFloored_

bool isFloored_
protected

Definition at line 144 of file capflooredinflationcoupon.hpp.

◆ isCapped_

bool isCapped_
protected

Definition at line 144 of file capflooredinflationcoupon.hpp.

◆ cap_

Rate cap_
protected

Definition at line 145 of file capflooredinflationcoupon.hpp.

◆ floor_

Rate floor_
protected

Definition at line 145 of file capflooredinflationcoupon.hpp.