Bond Class Reference
[Financial instruments]
#include <ql/Instruments/bond.hpp>
Inheritance diagram for Bond:

Detailed Description
Base bond class.Derived classes must fill the unitialized data members.
- Warning:
- Most methods assume that the cashflows are stored sorted by date, the redemption being the last one.
- Tests:
- price/yield calculations are cross-checked for consistency.
- price/yield calculations are checked against known good values.
Public Member Functions | |
Inspectors | |
Date | settlementDate () const |
Date | maturityDate () const |
Date | firstCouponDate () const |
const std::vector< boost::shared_ptr< CashFlow > > & | cashflows () const |
const boost::shared_ptr< CashFlow > & | redemption () const |
const Calendar & | calendar () const |
BusinessDayConvention | accrualConvention () const |
BusinessDayConvention | paymentConvention () const |
Real | faceAmount () const |
const DayCounter & | dayCounter () const |
Frequency | frequency () const |
boost::shared_ptr< YieldTermStructure > | discountCurve () const |
Calculations | |
Real | cleanPrice () const |
theoretical clean price | |
Real | dirtyPrice () const |
theoretical dirty price | |
Rate | yield (Compounding compounding, Real accuracy=1.0e-8, Size maxEvaluations=100) const |
theoretical bond yield | |
Real | cleanPrice (Rate yield, Compounding compounding, Date settlementDate=Date()) const |
clean price given a yield and settlement date | |
Real | dirtyPrice (Rate yield, Compounding compounding, Date settlementDate=Date()) const |
dirty price given a yield and settlement date | |
Rate | yield (Real cleanPrice, Compounding compounding, Date settlementDate=Date(), Real accuracy=1.0e-8, Size maxEvaluations=100) const |
yield given a (clean) price and settlement date | |
Real | accruedAmount (Date d=Date()) const |
accrued amount at a given date | |
bool | isExpired () const |
returns whether the instrument is still tradable. | |
Protected Member Functions | |
Bond (Real faceAmount, const DayCounter &dayCount, const Calendar &calendar, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, Integer settlementDays, const Handle< YieldTermStructure > &discountCurve=Handle< YieldTermStructure >()) | |
Bond (const DayCounter &dayCount, const Calendar &calendar, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, Integer settlementDays, const Handle< YieldTermStructure > &discountCurve=Handle< YieldTermStructure >()) | |
void | performCalculations () const |
Protected Attributes | |
Integer | settlementDays_ |
Calendar | calendar_ |
BusinessDayConvention | accrualConvention_ |
BusinessDayConvention | paymentConvention_ |
Real | faceAmount_ |
DayCounter | dayCount_ |
Date | issueDate_ |
Date | datedDate_ |
Date | maturityDate_ |
Frequency | frequency_ |
std::vector< boost::shared_ptr< CashFlow > > | cashflows_ |
Handle< YieldTermStructure > | discountCurve_ |
Constructor & Destructor Documentation
Bond | ( | const DayCounter & | dayCount, | |
const Calendar & | calendar, | |||
BusinessDayConvention | accrualConvention, | |||
BusinessDayConvention | paymentConvention, | |||
Integer | settlementDays, | |||
const Handle< YieldTermStructure > & | discountCurve = Handle< YieldTermStructure >() | |||
) | [protected] |
- Deprecated:
- use constructor with face amount instead
Member Function Documentation
const std::vector< boost::shared_ptr< CashFlow > > & cashflows | ( | ) | const |
- Warning:
- the returned vector includes the redemption as the last cash flow.
Real cleanPrice | ( | ) | const |
theoretical clean price
The default bond settlement is used for calculation.
- Warning:
- the theoretical price calculated from a flat term structure might differ slightly from the price calculated from the corresponding yield by means of the other overload of this function. If the price from a constant yield is desired, it is advisable to use such other overload.
Real dirtyPrice | ( | ) | const |
theoretical dirty price
The default bond settlement is used for calculation.
- Warning:
- the theoretical price calculated from a flat term structure might differ slightly from the price calculated from the corresponding yield by means of the other overload of this function. If the price from a constant yield is desired, it is advisable to use such other overload.
Rate yield | ( | Compounding | compounding, | |
Real | accuracy = 1.0e-8 , |
|||
Size | maxEvaluations = 100 | |||
) | const |
theoretical bond yield
The default bond settlement and theoretical price are used for calculation.
clean price given a yield and settlement date
The default bond settlement is used if no date is given.
dirty price given a yield and settlement date
The default bond settlement is used if no date is given.
Rate yield | ( | Real | cleanPrice, | |
Compounding | compounding, | |||
Date | settlementDate = Date() , |
|||
Real | accuracy = 1.0e-8 , |
|||
Size | maxEvaluations = 100 | |||
) | const |
yield given a (clean) price and settlement date
The default bond settlement is used if no date is given.
accrued amount at a given date
The default bond settlement is used if no date is given.
void performCalculations | ( | ) | const [protected, virtual] |
In case a pricing engine is not used, this method must be overridden to perform the actual calculations and set any needed results. In case a pricing engine is used, the default implementation can be used.
Reimplemented from Instrument.