# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English version of the page.

To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.

# agencyprice

Price callable bond using Agency OAS model

## Syntax

```Price = agencyprice(ZeroData,OAS,CouponRate,Settle,Maturity,Vol,CallDate) Price = agencyprice(ZeroData,OAS,CouponRate,Settle,Maturity,Vol,CallDate,Name,Value) ```

## Description

`Price = agencyprice(ZeroData,OAS,CouponRate,Settle,Maturity,Vol,CallDate)` computes the price for a callable bond, given OAS, using the Agency OAS model.

`Price = agencyprice(ZeroData,OAS,CouponRate,Settle,Maturity,Vol,CallDate,Name,Value)` computes the price for a callable bond, given OAS, using the Agency OAS model with additional options specified by one or more `Name,Value` pair arguments.

## Input Arguments

 `ZeroData` Zero curve represented as a `numRates`-by-`2` matrix where the first column is zero dates and the second column is the accompanying zero rates. `OAS` `numBonds`-by-`1` vector of option-adjusted spreads, expressed as a decimal (that is, 50 basis points is entered as `.005`). `CouponRate` `numBonds`-by-`1` vector of coupon rates in decimal form.

`Settle`

Scalar MATLAB® date number for the settlement date for all the bonds and the zero data.

### Note

The `Settle` date must be an identical settlement date for all bonds and the zero curve.

`Maturity`

`numBonds`-by-`1` vector of maturity dates.

`Vol`

`numBonds`-by-`1` vector of volatilities in decimal form. This is the volatility of interest rates corresponding to the time of the `CallDate`.

`CallDate`

`numBonds`-by-`1` vector of call dates.

### Name-Value Pair Arguments

Specify optional comma-separated pairs of `Name,Value` arguments. `Name` is the argument name and `Value` is the corresponding value. `Name` must appear inside single quotes (`' '`). You can specify several name and value pair arguments in any order as `Name1,Value1,...,NameN,ValueN`.

 `'Basis'` `N`-by-`1` vector of day-count basis: 0 = actual/actual 1 = 30/360 (SIA)2 = actual/3603 = actual/3654 = 30/360 (BMA)5 = 30/360 (ISDA)6 = 30/360 (European)7 = actual/365 (Japanese)8 = actual/actual (ICMA)9 = actual/360 (ICMA)10 = actual/365 (ICMA)11 = 30/360E (ICMA) 12 = actual/365 (ISDA)13 = BUS/252 For more information, see basis. Default: `0` (actual/actual) `'CurveBasis'` Basis of the zero curve, where the choices are identical to `Basis`. Default: `0` (actual/actual) `'CurveCompounding'` Compounding frequency of the curve. Possible values include: `–1`, `0`, `1`, `2`, `3`, `4`, `6`, `12`. Default: `2` (Semi-annual) `'EndMonthRule'` End-of-month rule; `1`, indicating in effect, and `0`, indicating rule not in effect for the bond(s). When `1`, the rule is in effect for the bond(s). This means that a security that pays coupon interest on the last day of the month will always make payment on the last day of the month. Default: `1` — Indicates in effect `'Face'` Face value of the bond. Default: `100` `'FirstCouponDate'` Date when a bond makes its first coupon payment; used when bond has an irregular first coupon period. When `FirstCouponDate` and `LastCouponDate` are both specified, `FirstCouponDate` takes precedence in determining the coupon payment structure. Default: If you do not specify a `FirstCouponDate`, the cash flow payment dates are determined from other inputs. `'InterpMethod'` Interpolation method used to obtain points from the zero curve. Values are: `linear` — linear interpolation`cubic` — piecewise cubic spline interpolation`pchip` — piecewise cubic Hermite interpolation Default: `linear` `'IssueDate'` Bond issue date.Default: If you do not specify an `IssueDate`, the cash flow payment dates are determined from other inputs. `'LastCouponDate'` Last coupon date of a bond before the maturity date; used when bond has an irregular last coupon period. In the absence of a specified `FirstCouponDate`, a specified `LastCouponDate` determines the coupon structure of the bond. The coupon structure of a bond is truncated at the `LastCouponDate`, regardless of where it falls, and is followed only by the bond's maturity cash flow date. Default: If you do not specify a `LastCouponDate`, the cash flow payment dates are determined from other inputs. `'Period'` Number of coupon payments per year. Possible values include: `0`, `1`, `2`, `3`, `4`, `6`, `12`. Default: `2` `'StartDate'` Forward starting date of payments. Default: If you do not specify a `StartDate`, the effective start date is the `Settle` date.

## Output Arguments

 `Price` `numBonds`-by-`1` matrix of the price.

## Examples

collapse all

This example shows how to compute the agency `Price`.

```Settle = datenum('20-Jan-2010'); ZeroRates = [.07 .164 .253 1.002 1.732 2.226 2.605 3.316 ... 3.474 4.188 4.902]'/100; ZeroDates = daysadd(Settle,360*[.25 .5 1 2 3 4 5 7 10 20 30],1); ZeroData = [ZeroDates ZeroRates]; Maturity = datenum('30-Dec-2013'); CouponRate = .022; OAS = 6.53/10000; Vol = .5117; CallDate = datenum('30-Dec-2010'); Price = agencyprice(ZeroData, OAS, CouponRate, Settle, Maturity, Vol, CallDate)```
```Price = 99.4212 ```

collapse all

### Agency OAS Model

The BMA European Callable Securities Formula provides a standard methodology for computing price and option-adjusted spread for European Callable Securities (ECS).

## References

SIFMA, The BMA European Callable Securities Formula, `http://www.sifma.org`.