QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
Public Member Functions | List of all members
Coupon Class Referenceabstract

coupon accruing over a fixed period More...

#include <coupon.hpp>

+ Inheritance diagram for Coupon:
+ Collaboration diagram for Coupon:

Public Member Functions

 Coupon (const Date &paymentDate, Real nominal, const Date &accrualStartDate, const Date &accrualEndDate, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const Date &exCouponDate=Date())
 
Event interface
Date date () const override
 
CashFlow interface
Date exCouponDate () const override
 returns the date that the cash flow trades exCoupon More...
 
Inspectors
virtual Real nominal () const
 
const DateaccrualStartDate () const
 start of the accrual period More...
 
const DateaccrualEndDate () const
 end of the accrual period More...
 
const DatereferencePeriodStart () const
 start date of the reference period More...
 
const DatereferencePeriodEnd () 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...
 
virtual Rate rate () const =0
 accrued rate More...
 
virtual DayCounter dayCounter () const =0
 day counter for accrual calculation 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...
 
virtual Real accruedAmount (const Date &) const =0
 accrued amount 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...
 
void performCalculations () const override
 
virtual Real amount () const =0
 returns the amount of the cash flow 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 &)
 
Observableoperator= (const Observable &)
 
 Observable (Observable &&)=delete
 
Observableoperator= (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 &)
 
Observeroperator= (const Observer &)
 
virtual ~Observer ()
 
std::pair< iterator, boolregisterWith (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

Date paymentDate_
 
Real nominal_
 
Date accrualStartDate_
 
Date accrualEndDate_
 
Date refPeriodStart_
 
Date refPeriodEnd_
 
Date exCouponDate_
 
Real accrualPeriod_
 
void accept (AcyclicVisitor &) 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_
 

Detailed Description

coupon accruing over a fixed period

This class implements part of the CashFlow interface but it is still abstract and provides derived classes with methods for accrual period calculations.

Definition at line 39 of file coupon.hpp.

Constructor & Destructor Documentation

◆ 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() 
)
Warning:
the coupon does not adjust the payment date which must already be a business day.

Definition at line 27 of file coupon.cpp.

Member Function Documentation

◆ date()

Date date ( ) const
overridevirtual
Note
This is inherited from the event class

Implements CashFlow.

Definition at line 53 of file coupon.hpp.

+ Here is the caller graph for this function:

◆ exCouponDate()

Date exCouponDate ( ) const
overridevirtual

returns the date that the cash flow trades exCoupon

Reimplemented from CashFlow.

Definition at line 57 of file coupon.hpp.

◆ nominal()

Real nominal ( ) const
virtual

Definition at line 100 of file coupon.hpp.

+ Here is the caller graph for this function:

◆ accrualStartDate()

const Date & accrualStartDate ( ) const

start of the accrual period

Definition at line 104 of file coupon.hpp.

+ Here is the caller graph for this function:

◆ accrualEndDate()

const Date & accrualEndDate ( ) const

end of the accrual period

Definition at line 108 of file coupon.hpp.

+ Here is the caller graph for this function:

◆ referencePeriodStart()

const Date & referencePeriodStart ( ) const

start date of the reference period

Definition at line 112 of file coupon.hpp.

+ Here is the caller graph for this function:

◆ referencePeriodEnd()

const Date & referencePeriodEnd ( ) const

end date of the reference period

Definition at line 116 of file coupon.hpp.

+ Here is the caller graph for this function:

◆ accrualPeriod()

Time accrualPeriod ( ) const

accrual period as fraction of year

Definition at line 44 of file coupon.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ accrualDays()

Date::serial_type accrualDays ( ) const

accrual period in days

Definition at line 52 of file coupon.cpp.

+ Here is the call graph for this function:

◆ rate()

virtual Rate rate ( ) const
pure virtual

◆ dayCounter()

virtual DayCounter dayCounter ( ) const
pure virtual

day counter for accrual calculation

Implemented in FixedRateCoupon, FloatingRateCoupon, and InflationCoupon.

+ Here is the caller graph for this function:

◆ accruedPeriod()

Time accruedPeriod ( const Date d) const

accrued period as fraction of year at the given date

Definition at line 57 of file coupon.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ accruedDays()

Date::serial_type accruedDays ( const Date d) const

accrued days at the given date

Definition at line 71 of file coupon.cpp.

+ Here is the call graph for this function:

◆ accruedAmount()

virtual Real accruedAmount ( const Date ) const
pure virtual

accrued amount at the given date

Implemented in CPICoupon, FixedRateCoupon, FloatingRateCoupon, InflationCoupon, and OvernightIndexedCoupon.

◆ accept()

void accept ( AcyclicVisitor v)
overridevirtual

Member Data Documentation

◆ paymentDate_

Date paymentDate_
protected

Definition at line 90 of file coupon.hpp.

◆ nominal_

Real nominal_
protected

Definition at line 91 of file coupon.hpp.

◆ accrualStartDate_

Date accrualStartDate_
protected

Definition at line 92 of file coupon.hpp.

◆ accrualEndDate_

Date accrualEndDate_
protected

Definition at line 92 of file coupon.hpp.

◆ refPeriodStart_

Date refPeriodStart_
protected

Definition at line 92 of file coupon.hpp.

◆ refPeriodEnd_

Date refPeriodEnd_
protected

Definition at line 92 of file coupon.hpp.

◆ exCouponDate_

Date exCouponDate_
protected

Definition at line 93 of file coupon.hpp.

◆ accrualPeriod_

Real accrualPeriod_
mutableprotected

Definition at line 94 of file coupon.hpp.