QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
Base inflation-coupon class. More...
#include <inflationcoupon.hpp>
Public Member Functions | |
InflationCoupon (const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, Natural fixingDays, ext::shared_ptr< InflationIndex > index, const Period &observationLag, DayCounter dayCounter, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const Date &exCouponDate=Date()) | |
CashFlow interface | |
Real | amount () const override |
returns the amount of the cash flow More... | |
Coupon interface | |
Real | price (const Handle< YieldTermStructure > &discountingCurve) const |
DayCounter | dayCounter () const override |
day counter for accrual calculation More... | |
Real | accruedAmount (const Date &) const override |
accrued amount at the given date More... | |
Rate | rate () const override |
accrued rate More... | |
Inspectors | |
const ext::shared_ptr< InflationIndex > & | index () const |
yoy inflation index More... | |
Period | observationLag () const |
how the coupon observes the index More... | |
Natural | fixingDays () const |
fixing days More... | |
virtual Date | fixingDate () const |
fixing date More... | |
virtual Rate | indexFixing () const |
fixing of the underlying index, as observed by the coupon More... | |
LazyObject interface | |
void | performCalculations () const override |
Public Member Functions inherited from Coupon | |
Coupon (const Date &paymentDate, Real nominal, const Date &accrualStartDate, const Date &accrualEndDate, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const Date &exCouponDate=Date()) | |
Date | date () const override |
Date | exCouponDate () const override |
returns the date that the cash flow trades exCoupon More... | |
virtual Real | nominal () const |
const Date & | accrualStartDate () const |
start of the accrual period More... | |
const Date & | accrualEndDate () const |
end of the accrual period More... | |
const Date & | referencePeriodStart () const |
start date of the reference period More... | |
const Date & | referencePeriodEnd () const |
end date of the reference period More... | |
Time | accrualPeriod () const |
accrual period as fraction of year More... | |
Date::serial_type | accrualDays () const |
accrual period in days More... | |
Time | accruedPeriod (const Date &) const |
accrued period as fraction of year at the given date More... | |
Date::serial_type | accruedDays (const Date &) const |
accrued days at the given date More... | |
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... | |
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 () |
Visitability | |
ext::shared_ptr< InflationCouponPricer > | pricer_ |
ext::shared_ptr< InflationIndex > | index_ |
Period | observationLag_ |
DayCounter | dayCounter_ |
Natural | fixingDays_ |
Real | rate_ |
void | accept (AcyclicVisitor &) override |
void | setPricer (const ext::shared_ptr< InflationCouponPricer > &) |
ext::shared_ptr< InflationCouponPricer > | pricer () const |
virtual bool | checkPricerImpl (const ext::shared_ptr< InflationCouponPricer > &) const =0 |
makes sure you were given the correct type of pricer More... | |
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 Coupon | |
Date | paymentDate_ |
Real | nominal_ |
Date | accrualStartDate_ |
Date | accrualEndDate_ |
Date | refPeriodStart_ |
Date | refPeriodEnd_ |
Date | exCouponDate_ |
Real | accrualPeriod_ |
Protected Attributes inherited from LazyObject | |
bool | calculated_ = false |
bool | frozen_ = false |
bool | alwaysForward_ |
Base inflation-coupon class.
The day counter is usually obtained from the inflation term structure that the inflation index uses for forecasting. There is no gearing or spread because these are relevant for YoY coupons but not zero inflation coupons.
Definition at line 46 of file inflationcoupon.hpp.
InflationCoupon | ( | const Date & | paymentDate, |
Real | nominal, | ||
const Date & | startDate, | ||
const Date & | endDate, | ||
Natural | fixingDays, | ||
ext::shared_ptr< InflationIndex > | index, | ||
const Period & | observationLag, | ||
DayCounter | dayCounter, | ||
const Date & | refPeriodStart = Date() , |
||
const Date & | refPeriodEnd = Date() , |
||
const Date & | exCouponDate = Date() |
||
) |
|
overridevirtual |
returns the amount of the cash flow
Implements CashFlow.
Definition at line 62 of file inflationcoupon.hpp.
Real price | ( | const Handle< YieldTermStructure > & | discountingCurve | ) | const |
|
overridevirtual |
day counter for accrual calculation
Implements Coupon.
Definition at line 68 of file inflationcoupon.hpp.
accrued amount at the given date
Implements Coupon.
Definition at line 78 of file inflationcoupon.cpp.
|
overridevirtual |
accrued rate
Implements Coupon.
Definition at line 64 of file inflationcoupon.cpp.
const ext::shared_ptr< InflationIndex > & index | ( | ) | const |
yoy inflation index
Definition at line 76 of file inflationcoupon.hpp.
Period observationLag | ( | ) | const |
how the coupon observes the index
Definition at line 78 of file inflationcoupon.hpp.
Natural fixingDays | ( | ) | const |
fixing days
Definition at line 80 of file inflationcoupon.hpp.
|
virtual |
fixing date
Definition at line 87 of file inflationcoupon.cpp.
|
virtual |
fixing of the underlying index, as observed by the coupon
Reimplemented in CPICoupon.
Definition at line 100 of file inflationcoupon.cpp.
|
overridevirtual |
This method must implement any calculations which must be (re)done in order to calculate the desired results.
Reimplemented from CashFlow.
Definition at line 69 of file inflationcoupon.cpp.
|
overridevirtual |
Reimplemented from Coupon.
Reimplemented in YoYInflationCoupon.
Definition at line 117 of file inflationcoupon.hpp.
void setPricer | ( | const ext::shared_ptr< InflationCouponPricer > & | pricer | ) |
Definition at line 53 of file inflationcoupon.cpp.
ext::shared_ptr< InflationCouponPricer > pricer | ( | ) | const |
|
protectedpure virtual |
makes sure you were given the correct type of pricer
Implemented in CPICoupon, and YoYInflationCoupon.
|
protected |
Definition at line 100 of file inflationcoupon.hpp.
|
protected |
Definition at line 101 of file inflationcoupon.hpp.
|
protected |
Definition at line 102 of file inflationcoupon.hpp.
|
protected |
Definition at line 103 of file inflationcoupon.hpp.
|
protected |
Definition at line 104 of file inflationcoupon.hpp.
|
mutableprotected |
Definition at line 105 of file inflationcoupon.hpp.