CappedFlooredYoYInflationCoupon Class Reference

Capped or floored inflation coupon. More...

#include <ql/cashflows/capflooredinflationcoupon.hpp>

Inheritance diagram for CappedFlooredYoYInflationCoupon:

List of all members.

Public Member Functions

 CappedFlooredYoYInflationCoupon (const boost::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 boost::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())
bool isCapped () const
bool isFloored () const
void setPricer (const boost::shared_ptr< YoYInflationCouponPricer > &)
augmented Coupon interface
Rate rate () const
 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 ()
Visitability
virtual void accept (AcyclicVisitor &v)

Protected Member Functions

virtual void setCommon (Rate cap, Rate floor)

Protected Attributes

boost::shared_ptr
< YoYInflationCoupon
underlying_
bool isFloored_
bool isCapped_
Rate cap_
Rate floor_


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


Member Function Documentation

void update (  )  [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.

Reimplemented from InflationCoupon.