# QuantLib_CallableBond man page

CallableBond — Callable bond base class.

## Synopsis

`#include <ql/experimental/callablebonds/callablebond.hpp>`

Inherits **Bond**.

Inherited by **CallableFixedRateBond**.

### Classes

class **engine**

base class for callable fixed rate bond engine

class **results**

results for a callable bond calculation

### Public Member Functions

virtual void **setupArguments** (PricingEngine::arguments *) const

**Inspectors**

const CallabilitySchedule & **callability** () const

return the bond's put/call schedule

**Calculations**

**Volatility impliedVolatility** (**Real** targetValue, const **Handle**< **YieldTermStructure** > &discountCurve, **Real** accuracy, **Size** maxEvaluations, **Volatility** minVol, **Volatility** maxVol) const

returns the Black implied forward yield volatility **Spread OAS** (**Real cleanPrice**, const **Handle**< **YieldTermStructure** > &engineTS, const **DayCounter** &dayCounter, **Compounding** compounding, **Frequency** frequency, **Date** settlementDate=**Date**(), **Real** accuracy=1.0e-10, Size maxIterations=100, Rate guess=0.0)

Calculate the **Option** Adjusted Spread (OAS) **Real cleanPriceOAS** (**Real** oas, const **Handle**< **YieldTermStructure** > &engineTS, const **DayCounter** &dayCounter, **Compounding** compounding, **Frequency** frequency, **Date** settlementDate=**Date**())**Real effectiveDuration** (**Real** oas, const **Handle**< **YieldTermStructure** > &engineTS, const **DayCounter** &dayCounter, **Compounding** compounding, **Frequency** frequency, **Real** bump=2e-4)**Real effectiveConvexity** (**Real** oas, const **Handle**< **YieldTermStructure** > &engineTS, const **DayCounter** &dayCounter, **Compounding** compounding, **Frequency** frequency, **Real** bump=2e-4)

### Protected Member Functions

**CallableBond** (**Natural** settlementDays, const **Schedule** &schedule, const **DayCounter** &paymentDayCounter, const **Date** &issueDate=**Date**(), const CallabilitySchedule &putCallSchedule=CallabilitySchedule())

### Protected Attributes

**DayCounter paymentDayCounter_****Frequency frequency_**

CallabilitySchedule **putCallSchedule_**

boost::shared_ptr< **PricingEngine** > **blackEngine_**

must be set by derived classes for **impliedVolatility()** to work **RelinkableHandle**< **Quote** > **blackVolQuote_**

Black fwd yield volatility quote handle to internal blackEngine_. **RelinkableHandle**< **YieldTermStructure** > **blackDiscountCurve_**

Black fwd yield volatility quote handle to internal blackEngine_.

### Friends

class **ImpliedVolHelper**

class **NPVSpreadHelper**

### Additional Inherited Members

## Detailed Description

Callable bond base class.

Base callable bond class for fixed and zero coupon bonds. Defines commonalities between fixed and zero coupon callable bonds. At present, only European and Bermudan put/call schedules supported (no American optionality), as defined by the **Callability** class.

## Member Function Documentation

### Volatility impliedVolatility (Real targetValue, const Handle< YieldTermStructure > & discountCurve, Real accuracy, Size maxEvaluations, Volatility minVol, Volatility maxVol) const

returns the Black implied forward yield volatility the forward yield volatility, see Hull, Fourth Edition, Chapter 20, pg 536). Relevant only to European put/call schedules

### Spread OAS (Real cleanPrice, const Handle< YieldTermStructure > & engineTS, const DayCounter & dayCounter, Compounding compounding, Frequency frequency, Date settlementDate = Date(), Real accuracy = 1.0e-10, Size maxIterations = 100, Rate guess = 0.0)

Calculate the **Option** Adjusted Spread (OAS) Calculates the spread that needs to be added to the the reference curve so that the theoretical model value matches the marketPrice.

### Real cleanPriceOAS (Real oas, const Handle< YieldTermStructure > & engineTS, const DayCounter & dayCounter, Compounding compounding, Frequency frequency, Date settlementDate = Date())

Calculate the clean price based on the given option-adjust-spread (oas) over the given yield term structure (engineTS)

### Real effectiveDuration (Real oas, const Handle< YieldTermStructure > & engineTS, const DayCounter & dayCounter, Compounding compounding, Frequency frequency, Real bump = 2e-4)

Calculate the effective duration, i.e., the first differential of the dirty price w.r.t. a parallel shift of the yield term structure divided by current dirty price

### Real effectiveConvexity (Real oas, const Handle< YieldTermStructure > & engineTS, const DayCounter & dayCounter, Compounding compounding, Frequency frequency, Real bump = 2e-4)

Calculate the effective convexity, i.e., the second differential of the dirty price w.r.t. a parallel shift of the yield term structure divided by current dirty price

### virtual void setupArguments (PricingEngine::arguments *) const [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**.

Reimplemented in **CallableFixedRateBond**.

## Author

Generated automatically by Doxygen for QuantLib from the source code.

## Referenced By

The man pages blackDiscountCurve_(3), blackEngine_(3), blackVolQuote_(3), callability(3), CallableBond(3), cleanPriceOAS(3), effectiveConvexity(3), effectiveDuration(3), ImpliedVolHelper(3), NPVSpreadHelper(3), OAS(3), paymentDayCounter_(3) and putCallSchedule_(3) are aliases of QuantLib_CallableBond(3).