QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
Loading...
Searching...
No Matches
CPICashFlow Class Reference

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

#include <ql/cashflows/cpicoupon.hpp>

Inheritance diagram for CPICashFlow:

Public Member Functions

 CPICashFlow (Real notional, const ext::shared_ptr< ZeroInflationIndex > &index, const Date &baseDate, Real baseFixing, const Date &observationDate, const Period &observationLag, CPI::InterpolationType interpolation, const Date &paymentDate, bool growthOnly=false)
Real baseFixing () const override
 value used on base date
Date baseDate () const override
 you may not have a valid date
Date observationDate () const
Period observationLag () const
virtual CPI::InterpolationType interpolation () const
 do you want linear/constant/as-index interpolation of future data?
virtual Frequency frequency () const
ext::shared_ptr< ZeroInflationIndexcpiIndex () const
Real indexFixing () const override
Public Member Functions inherited from IndexedCashFlow
 IndexedCashFlow (Real notional, ext::shared_ptr< Index > index, const Date &baseDate, const Date &fixingDate, const Date &paymentDate, bool growthOnly=false)
Date date () const override
virtual Real notional () const
virtual Date fixingDate () const
virtual ext::shared_ptr< Indexindex () const
virtual bool growthOnly () const
Real amount () const override
 returns the amount of the cash flow
void accept (AcyclicVisitor &) override
void performCalculations () const override
Public Member Functions inherited from CashFlow
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
virtual Date exCouponDate () const
 returns the date that the cash flow trades exCoupon
bool tradingExCoupon (const Date &refDate=Date()) const
 returns true if the cashflow is trading ex-coupon on the refDate
Public Member Functions inherited from Event
Public Member Functions inherited from Observable
 Observable (const Observable &)
Observableoperator= (const Observable &)
 Observable (Observable &&)=delete
Observableoperator= (Observable &&)=delete
void notifyObservers ()
Public Member Functions inherited from LazyObject
void update () override
bool isCalculated () const
void forwardFirstNotificationOnly ()
void alwaysForwardNotifications ()
void recalculate ()
void freeze ()
void unfreeze ()
Public Member Functions inherited from Observer
 Observer (const Observer &)
Observeroperator= (const Observer &)
std::pair< iterator, bool > registerWith (const ext::shared_ptr< Observable > &)
void registerWithObservables (const ext::shared_ptr< Observer > &)
Size unregisterWith (const ext::shared_ptr< Observable > &)
void unregisterWithAll ()
virtual void deepUpdate ()

Protected Attributes

Real baseFixing_
Date observationDate_
Period observationLag_
CPI::InterpolationType interpolation_
Frequency frequency_
Real amount_
bool calculated_ = false
bool frozen_ = false
bool alwaysForward_

Additional Inherited Members

Public Types inherited from Observer
typedef set_type::iterator iterator
virtual void calculate () const

Detailed Description

Cash flow paying the performance of a CPI (zero inflation) index.

It is NOT a coupon, i.e. no accruals.

Member Function Documentation

◆ baseFixing()

Real baseFixing ( ) const
overridevirtual

value used on base date

This does not have to agree with index on that date.

Reimplemented from IndexedCashFlow.

◆ baseDate()

Date baseDate ( ) const
overridevirtual

you may not have a valid date

Reimplemented from IndexedCashFlow.

◆ indexFixing()

Real indexFixing ( ) const
overridevirtual

Reimplemented from IndexedCashFlow.