### A free/open-source library for quantitative finance

BondFunctions Struct Reference

Bond adapters of CashFlows functions. More...

`#include <ql/pricingengines/bond/bondfunctions.hpp>`

List of all members.

## Static Public Member Functions

Date inspectors
static Date | startDate (const Bond &bond)
static Date | maturityDate (const Bond &bond)
static bool | isTradable (const Bond &bond, Date settlementDate=Date())
CashFlow inspectors
static Leg::const_reverse_iterator | previousCashFlow (const Bond &bond, Date refDate=Date())
static Leg::const_iterator | nextCashFlow (const Bond &bond, Date refDate=Date())
static Date | previousCashFlowDate (const Bond &bond, Date refDate=Date())
static Date | nextCashFlowDate (const Bond &bond, Date refDate=Date())
static Real | previousCashFlowAmount (const Bond &bond, Date refDate=Date())
static Real | nextCashFlowAmount (const Bond &bond, Date refDate=Date())
Coupon inspectors
static Rate | previousCouponRate (const Bond &bond, Date settlementDate=Date())
static Rate | nextCouponRate (const Bond &bond, Date settlementDate=Date())
static Date | accrualStartDate (const Bond &bond, Date settlementDate=Date())
static Date | accrualEndDate (const Bond &bond, Date settlementDate=Date())
static Date | referencePeriodStart (const Bond &bond, Date settlementDate=Date())
static Date | referencePeriodEnd (const Bond &bond, Date settlementDate=Date())
static Time | accrualPeriod (const Bond &bond, Date settlementDate=Date())
static BigInteger | accrualDays (const Bond &bond, Date settlementDate=Date())
static Time | accruedPeriod (const Bond &bond, Date settlementDate=Date())
static BigInteger | accruedDays (const Bond &bond, Date settlementDate=Date())
static Real | accruedAmount (const Bond &bond, Date settlementDate=Date())
YieldTermStructure functions
static Real | cleanPrice (const Bond &bond, const YieldTermStructure &discountCurve, Date settlementDate=Date())
static Real | bps (const Bond &bond, const YieldTermStructure &discountCurve, Date settlementDate=Date())
static Rate | atmRate (const Bond &bond, const YieldTermStructure &discountCurve, Date settlementDate=Date(), Real cleanPrice=Null< Real >())
Yield (a.k.a. Internal Rate of Return, i.e. IRR) functions
static Real | cleanPrice (const Bond &bond, const InterestRate &yield, Date settlementDate=Date())
static Real | cleanPrice (const Bond &bond, Rate yield, const DayCounter &dayCounter, Compounding compounding, Frequency frequency, Date settlementDate=Date())
static Real | bps (const Bond &bond, const InterestRate &yield, Date settlementDate=Date())
static Real | bps (const Bond &bond, Rate yield, const DayCounter &dayCounter, Compounding compounding, Frequency frequency, Date settlementDate=Date())
static Rate | yield (const Bond &bond, Real cleanPrice, const DayCounter &dayCounter, Compounding compounding, Frequency frequency, Date settlementDate=Date(), Real accuracy=1.0e-10, Size maxIterations=100, Rate guess=0.05)
static Time | duration (const Bond &bond, const InterestRate &yield, Duration::Type type=Duration::Modified, Date settlementDate=Date())
static Time | duration (const Bond &bond, Rate yield, const DayCounter &dayCounter, Compounding compounding, Frequency frequency, Duration::Type type=Duration::Modified, Date settlementDate=Date())
static Real | convexity (const Bond &bond, const InterestRate &yield, Date settlementDate=Date())
static Real | convexity (const Bond &bond, Rate yield, const DayCounter &dayCounter, Compounding compounding, Frequency frequency, Date settlementDate=Date())
static Real | basisPointValue (const Bond &bond, const InterestRate &yield, Date settlementDate=Date())
static Real | basisPointValue (const Bond &bond, Rate yield, const DayCounter &dayCounter, Compounding compounding, Frequency frequency, Date settlementDate=Date())
static Real | yieldValueBasisPoint (const Bond &bond, const InterestRate &yield, Date settlementDate=Date())
static Real | yieldValueBasisPoint (const Bond &bond, Rate yield, const DayCounter &dayCounter, Compounding compounding, Frequency frequency, Date settlementDate=Date())
Z-spread functions
static Real | cleanPrice (const Bond &bond, const boost::shared_ptr< YieldTermStructure > &discount, Spread zSpread, const DayCounter &dayCounter, Compounding compounding, Frequency frequency, Date settlementDate=Date())
static Spread | zSpread (const Bond &bond, Real cleanPrice, const boost::shared_ptr< YieldTermStructure > &, const DayCounter &dayCounter, Compounding compounding, Frequency frequency, Date settlementDate=Date(), Real accuracy=1.0e-10, Size maxIterations=100, Rate guess=0.0)

## Detailed Description

Bond adapters of CashFlows functions.

See CashFlows for functions' documentation.

These adapters calls into CashFlows functions passing as input the Bond cashflows, the dirty price (i.e. npv) calculated from clean price, the bond settlement date (unless another date is given), zero ex-dividend days, and excluding any cashflow on the settlement date.

Prices are always clean, as per market convention.