Bond Class Reference
[Financial instruments]
#include <ql/instruments/bond.hpp>

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 | |
Bond (Natural settlementDays, const Calendar &calendar, Real faceAmount, const Date &maturityDate, const Date &issueDate=Null< Date >(), const Leg &leg=std::vector< boost::shared_ptr< CashFlow > >()) | |
Real | currentCoupon (Date d=Date()) const |
current coupon at a given date | |
Real | previousCoupon (Date d=Date()) const |
previous coupon already paid at a given date | |
Inspectors | |
Natural | settlementDays () const |
const Calendar & | calendar () const |
Real | faceAmount () const |
const Leg & | cashflows () const |
const boost::shared_ptr < CashFlow > & | redemption () const |
Date | maturityDate () const |
Date | issueDate () const |
Date | settlementDate (const Date &d=Date()) const |
Calculations | |
Real | cleanPrice () const |
theoretical clean price | |
Real | dirtyPrice () const |
theoretical dirty price | |
Rate | yield (const DayCounter &dc, Compounding comp, Frequency freq, Real accuracy=1.0e-8, Size maxEvaluations=100) const |
theoretical bond yield | |
Real | cleanPrice (Rate yield, const DayCounter &dc, Compounding comp, Frequency freq, Date settlementDate=Date()) const |
clean price given a yield and settlement date | |
Real | dirtyPrice (Rate yield, const DayCounter &dc, Compounding comp, Frequency freq, Date settlementDate=Date()) const |
dirty price given a yield and settlement date | |
Rate | yield (Real cleanPrice, const DayCounter &dc, Compounding comp, Frequency freq, Date settlementDate=Date(), Real accuracy=1.0e-8, Size maxEvaluations=100) const |
yield given a (clean) price and settlement date | |
Real | cleanPriceFromZSpread (Spread zSpread, const DayCounter &dc, Compounding comp, Frequency freq, Date settlementDate=Date()) const |
clean price given Z-spread | |
Real | dirtyPriceFromZSpread (Spread zSpread, const DayCounter &dc, Compounding comp, Frequency freq, Date settlementDate=Date()) const |
dirty price given Z-spread | |
virtual 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 | |
void | setupArguments (PricingEngine::arguments *) const |
Protected Attributes | |
Natural | settlementDays_ |
Calendar | calendar_ |
Real | faceAmount_ |
Leg | cashflows_ |
Date | maturityDate_ |
Date | issueDate_ |
Member Function Documentation
const Leg & 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 | ( | const DayCounter & | dc, | |
Compounding | comp, | |||
Frequency | freq, | |||
Real | accuracy = 1.0e-8 , |
|||
Size | maxEvaluations = 100 | |||
) | const |
theoretical bond yield
The default bond settlement and theoretical price are used for calculation.
Real cleanPrice | ( | Rate | yield, | |
const DayCounter & | dc, | |||
Compounding | comp, | |||
Frequency | freq, | |||
Date | settlementDate = Date() | |||
) | const |
clean price given a yield and settlement date
The default bond settlement is used if no date is given.
Real dirtyPrice | ( | Rate | yield, | |
const DayCounter & | dc, | |||
Compounding | comp, | |||
Frequency | freq, | |||
Date | settlementDate = Date() | |||
) | const |
dirty price given a yield and settlement date
The default bond settlement is used if no date is given.
Rate yield | ( | Real | cleanPrice, | |
const DayCounter & | dc, | |||
Compounding | comp, | |||
Frequency | freq, | |||
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.
Real cleanPriceFromZSpread | ( | Spread | zSpread, | |
const DayCounter & | dc, | |||
Compounding | comp, | |||
Frequency | freq, | |||
Date | settlementDate = Date() | |||
) | const |
clean price given Z-spread
Z-spread compounding, frequency, daycount are taken into account The default bond settlement is used if no date is given. For details on Z-spread refer to: "Credit Spreads Explained", Lehman Brothers European Fixed Income Research - March 2004, D. O'Kane
Real dirtyPriceFromZSpread | ( | Spread | zSpread, | |
const DayCounter & | dc, | |||
Compounding | comp, | |||
Frequency | freq, | |||
Date | settlementDate = Date() | |||
) | const |
dirty price given Z-spread
Z-spread compounding, frequency, daycount are taken into account The default bond settlement is used if no date is given. For details on Z-spread refer to: "Credit Spreads Explained", Lehman Brothers European Fixed Income Research - March 2004, D. O'Kane
accrued amount at a given date
The default bond settlement is used if no date is given.
current coupon at a given date
The default bond settlement is used if no date is given.
previous coupon already paid at a given date
The default bond settlement is used if no date is given.
void setupArguments | ( | PricingEngine::arguments * | ) | const [protected, virtual] |
When a derived argument structure is defined for an instrument, this method should be overridden to fill it. This is mandatory in case a pricing engine is used.
Reimplemented from Instrument.