QuantLib
A free/open-source library for quantitative finance
Reference manual - version 1.20
Public Member Functions | List of all members
IndexedCashFlow Class Reference

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

#include <ql/cashflows/indexedcashflow.hpp>

+ Inheritance diagram for IndexedCashFlow:

Public Member Functions

 IndexedCashFlow (Real notional, const ext::shared_ptr< Index > &index, const Date &baseDate, const Date &fixingDate, const Date &paymentDate, bool growthOnly=false)
 
Event interface
Date date () const
 
virtual Real notional () const
 
virtual Date baseDate () const
 
virtual Date fixingDate () const
 
virtual ext::shared_ptr< Indexindex () const
 
virtual bool growthOnly () const
 
CashFlow interface
Real amount () const
 returns the amount of the cash flow More...
 
Visitability
virtual void accept (AcyclicVisitor &)
 
- 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 &)
 
Observableoperator= (const Observable &)
 
void notifyObservers ()
 
- 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 ()
 

Observer interface

void update ()
 

Additional Inherited Members

- Public Types inherited from Observer
typedef boost::unordered_set< ext::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.