QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
Cash flow dependent on an index ratio. More...
#include <indexedcashflow.hpp>
Public Member Functions | |
IndexedCashFlow (Real notional, ext::shared_ptr< Index > index, const Date &baseDate, const Date &fixingDate, const Date &paymentDate, bool growthOnly=false) | |
Event interface | |
Date | date () const override |
virtual Real | notional () const |
virtual Date | baseDate () const |
virtual Date | fixingDate () const |
virtual ext::shared_ptr< Index > | index () const |
virtual bool | growthOnly () const |
virtual Real | baseFixing () const |
virtual Real | indexFixing () const |
CashFlow interface | |
Real | amount () const override |
returns the amount of the cash flow More... | |
Visitability | |
void | accept (AcyclicVisitor &) override |
Public Member Functions inherited from CashFlow | |
~CashFlow () override=default | |
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 More... | |
virtual Date | exCouponDate () const |
returns the date that the cash flow trades exCoupon More... | |
bool | tradingExCoupon (const Date &refDate=Date()) const |
returns true if the cashflow is trading ex-coupon on the refDate More... | |
Public Member Functions inherited from Event | |
~Event () override=default | |
Public Member Functions inherited from Observable | |
Observable () | |
Observable (const Observable &) | |
Observable & | operator= (const Observable &) |
Observable (Observable &&)=delete | |
Observable & | operator= (Observable &&)=delete |
virtual | ~Observable ()=default |
void | notifyObservers () |
Public Member Functions inherited from LazyObject | |
LazyObject () | |
~LazyObject () override=default | |
void | update () override |
bool | isCalculated () const |
void | forwardFirstNotificationOnly () |
void | alwaysForwardNotifications () |
void | recalculate () |
void | freeze () |
void | unfreeze () |
Public Member Functions inherited from Observer | |
Observer ()=default | |
Observer (const Observer &) | |
Observer & | operator= (const Observer &) |
virtual | ~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 | update ()=0 |
virtual void | deepUpdate () |
LazyObject interface | |
Real | amount_ |
Real | notional_ |
ext::shared_ptr< Index > | index_ |
Date | baseDate_ |
Date | fixingDate_ |
Date | paymentDate_ |
bool | growthOnly_ |
void | performCalculations () const override |
Additional Inherited Members | |
Public Types inherited from Observer | |
typedef set_type::iterator | iterator |
Protected Member Functions inherited from LazyObject | |
virtual void | calculate () const |
Protected Attributes inherited from LazyObject | |
bool | calculated_ = false |
bool | frozen_ = false |
bool | alwaysForward_ |
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.
Definition at line 45 of file indexedcashflow.hpp.
|
overridevirtual |
Implements CashFlow.
Definition at line 55 of file indexedcashflow.hpp.
|
virtual |
|
virtual |
Reimplemented in CPICashFlow.
Definition at line 58 of file indexedcashflow.hpp.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Reimplemented in CPICashFlow.
Definition at line 62 of file indexedcashflow.hpp.
|
virtual |
Reimplemented in CPICashFlow.
Definition at line 63 of file indexedcashflow.hpp.
|
overridevirtual |
returns the amount of the cash flow
Implements CashFlow.
Definition at line 38 of file indexedcashflow.cpp.
|
overridevirtual |
Reimplemented from CashFlow.
Reimplemented in ZeroInflationCashFlow.
Definition at line 88 of file indexedcashflow.hpp.
|
overridevirtual |
This method must implement any calculations which must be (re)done in order to calculate the desired results.
Reimplemented from CashFlow.
Reimplemented in ZeroInflationCashFlow.
Definition at line 43 of file indexedcashflow.cpp.
|
mutableprotected |
Definition at line 77 of file indexedcashflow.hpp.
|
private |
Definition at line 79 of file indexedcashflow.hpp.
|
private |
Definition at line 80 of file indexedcashflow.hpp.
|
private |
Definition at line 81 of file indexedcashflow.hpp.
|
private |
Definition at line 81 of file indexedcashflow.hpp.
|
private |
Definition at line 81 of file indexedcashflow.hpp.
|
private |
Definition at line 82 of file indexedcashflow.hpp.