CPICoupon Class Reference

Coupon paying the performance of a CPI (zero inflation) index More...

#include <ql/cashflows/cpicoupon.hpp>

Inheritance diagram for CPICoupon:

List of all members.

Public Member Functions

 CPICoupon (Real baseCPI, const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, Natural fixingDays, const boost::shared_ptr< ZeroInflationIndex > &index, const Period &observationLag, CPI::InterpolationType observationInterpolation, const DayCounter &dayCounter, Real fixedRate, Spread spread=0.0, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date())
Inspectors
Real fixedRate () const
 fixed rate that will be inflated by the index ratio
Spread spread () const
 spread paid over the fixing of the underlying index
Rate adjustedFixing () const
 adjusted fixing (already divided by the base fixing)
Rate indexFixing () const
 allows for a different interpolation from the index
Rate baseCPI () const
 base value for the CPI index
CPI::InterpolationType observationInterpolation () const
 how do you observe the index? as-is, flat, linear?
Rate indexObservation (const Date &onDate) const
 utility method, calls indexFixing
boost::shared_ptr
< ZeroInflationIndex
cpiIndex () const
 index used
Visitability
virtual void accept (AcyclicVisitor &)

Protected Member Functions

bool checkPricerImpl (const boost::shared_ptr< InflationCouponPricer > &) const
 makes sure you were given the correct type of pricer
Rate indexFixing (const Date &) const

Protected Attributes

Real baseCPI_
Real fixedRate_
Spread spread_
CPI::InterpolationType observationInterpolation_

Detailed Description

Coupon paying the performance of a CPI (zero inflation) index

The performance is relative to the index value on the base date.

The other inflation value is taken from the refPeriodEnd date with observation lag, so any roll/calendar etc. will be built in by the caller. By default this is done in the InflationCoupon which uses ModifiedPreceding with fixing days assumed positive meaning earlier, i.e. always stay in same month (relative to referencePeriodEnd).

This is more sophisticated than an IndexedCashFlow because it does date calculations itself.

Possible enhancements:
we do not do any convexity adjustment for lags different to the natural ZCIIS lag that was used to create the forward inflation curve.

Member Function Documentation

Rate baseCPI ( ) const

base value for the CPI index

Warning:
make sure that the interpolation used to create this is what you are using for the fixing, i.e. the observationInterpolation.