IndexedCashFlow Class Reference

Cash flow dependent on an index ratio. More...

`#include <ql/cashflows/indexedcashflow.hpp>`

Inheritance diagram for IndexedCashFlow:
[legend]

## Public Member Functions

| IndexedCashFlow (Real notional, const boost::shared_ptr< Index > &index, const Date &baseDate, const Date &fixingDate, const Date &paymentDate, bool growthOnly=false)
virtual Real | notional () const
virtual Date | baseDate () const
virtual Date | fixingDate () const
virtual boost::shared_ptr< Index > | index () const
virtual bool | growthOnly () const
Event interface
Date | date () const
CashFlow interface
Real | amount () const
| returns the amount of the cash flow More...
Visitability
virtual void | accept (AcyclicVisitor &)
Observer interface
void | update ()
Public Member Functions inherited from CashFlow
bool | hasOccurred (const Date &refDate=Date(), boost::optional< bool > includeRefDate=boost::none) const
| returns true if an event has already occurred before a date More...
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
Event interface
Visitability
Public Member Functions inherited from Observable
| Observable (const Observable &)
Observable & | operator= (const Observable &)
void | notifyObservers ()
Public Member Functions inherited from Observer
| Observer (const Observer &)
Observer & | operator= (const Observer &)
std::pair< iterator, bool > | registerWith (const boost::shared_ptr< Observable > &)
void | registerWithObservables (const boost::shared_ptr< Observer > &)
Size | unregisterWith (const boost::shared_ptr< Observable > &)
void | unregisterWithAll ()
virtual void | deepUpdate ()

## Additional Inherited Members

Public Types inherited from Observer
typedef std::set< boost::shared_ptr< Observable > > | set_type
typedef set_type::iterator | iterator

## Detailed Description

Cash flow dependent on an index ratio.

This cash flow is not a coupon, i.e., there's no accrual. The amount is either i(T)/i(0) or i(T)/i(0) - 1, depending on the growthOnly parameter.

We expect this to be used inside an instrument that does all the date adjustment etc., so this takes just dates and does not change them. growthOnly = false means i(T)/i(0), which is a bond-type setting. growthOnly = true means i(T)/i(0) - 1, which is a swap-type setting.

## Member Function Documentation

## date()

Date date | ( |  | ) | const

virtual

Note
  This is inherited from the event class

Implements CashFlow.

## amount()

Real amount | ( |  | ) | const

virtual

returns the amount of the cash flow

Note
  The amount is not discounted, i.e., it is the actual amount paid at the cash flow date.

Implements CashFlow.

## update()

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.

Implements Observer.