Logo
Reference manual - version qle_version
Public Member Functions | List of all members
NonStandardCappedFlooredYoYInflationCoupon Class Reference

Capped or floored inflation coupon. More...

#include <qle/cashflows/nonstandardcapflooredyoyinflationcoupon.hpp>

+ Inheritance diagram for NonStandardCappedFlooredYoYInflationCoupon:

Public Member Functions

 NonStandardCappedFlooredYoYInflationCoupon (const ext::shared_ptr< NonStandardYoYInflationCoupon > &underlying, Rate cap=Null< Rate >(), Rate floor=Null< Rate >())
 
 NonStandardCappedFlooredYoYInflationCoupon (const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, Natural fixingDays, const ext::shared_ptr< ZeroInflationIndex > &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(), bool addInflationNotional=false, QuantLib::CPI::InterpolationType interpolation=QuantLib::CPI::InterpolationType::Flat)
 
augmented Coupon interface
Rate rate () const override
 swap(let) rate
 
Rate cap () const
 cap
 
Rate floor () const
 floor
 
Rate effectiveCap () const
 effective cap of fixing
 
Rate effectiveFloor () const
 effective floor of fixing
 
Observer interface
void update () override
 
- Public Member Functions inherited from NonStandardYoYInflationCoupon
 NonStandardYoYInflationCoupon (const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, Natural fixingDays, const ext::shared_ptr< ZeroInflationIndex > &index, const Period &observationLag, const DayCounter &dayCounter, Real gearing=1.0, Spread spread=0.0, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), bool addInflationNotional=false, QuantLib::CPI::InterpolationType interpolation=QuantLib::CPI::InterpolationType::Flat)
 
Real gearing () const
 index gearing, i.e. multiplicative coefficient for the index
 
Spread spread () const
 spread paid over the fixing of the underlying index
 
Rate adjustedFixing () const
 
virtual Date fixingDateNumerator () const
 
virtual Date fixingDateDenumerator () const
 
virtual ext::shared_ptr< ZeroInflationIndex > cpiIndex () const
 
virtual Rate indexFixing () const override
 
virtual Date fixingDate () const override
 
bool addInflationNotional () const
 
bool isInterpolated () const
 
QuantLib::CPI::InterpolationType interpolationType () const
 

Visitability

ext::shared_ptr< NonStandardYoYInflationCouponunderlying_
 
bool isFloored_
 
bool isCapped_
 
Rate cap_
 
Rate floor_
 
virtual void accept (AcyclicVisitor &v) override
 
bool isCapped () const
 
bool isFloored () const
 
void setPricer (const ext::shared_ptr< NonStandardYoYInflationCouponPricer > &)
 
virtual void setCommon (Rate cap, Rate floor)
 

Additional Inherited Members

- Protected Member Functions inherited from NonStandardYoYInflationCoupon
bool checkPricerImpl (const ext::shared_ptr< InflationCouponPricer > &) const override
 
- Protected Attributes inherited from NonStandardYoYInflationCoupon
Date fixingDateNumerator_
 
Date fixingDateDenumerator_
 
Real gearing_
 
Spread spread_
 
bool addInflationNotional_
 
QuantLib::CPI::InterpolationType interpolationType_
 

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) \]