# fixedbybk

Price fixed-rate note from Black-Karasinski interest-rate tree

## Syntax

## Description

## Examples

### Price a 5% Fixed-Rate Note Using a Black-Karasinski Interest-Rate Tree

Load the file `deriv.mat`

, which provides `BKTree`

. The `BKTree`

structure contains the time and interest-rate information needed to price the note.

`load deriv.mat;`

Set the required values. Other arguments will use defaults.

CouponRate = 0.05; Settle = '01-Jan-2004'; Maturity = '01-Jan-2006';

Use `fixedbybk`

to compute the price of the note.

Price = fixedbybk(BKTree, CouponRate, Settle, Maturity)

Price = 103.5126

## Input Arguments

`BKTree`

— Interest-rate structure

structure

Interest-rate tree structure, created by `bktree`

**Data Types: **`struct`

`CouponRate`

— Coupon annual rate

decimal

Coupon annual rate, specified as a `NINST`

-by-`1`

vector.

**Data Types: **`double`

`Settle`

— Settlement date

serial date number | character vector

Settlement date, specified either as a scalar or `NINST`

-by-`1`

vector
of serial date numbers or date character vectors.

The `Settle`

date for every fixed-rate note
is set to the `ValuationDate`

of the BK Tree. The
fixed-rate note argument `Settle`

is ignored.

**Data Types: **`char`

| `double`

`Maturity`

— Maturity date

serial date number | character vector

Maturity date, specified as a `NINST`

-by-`1`

vector of
serial date numbers or date character vectors representing the maturity date for each
fixed-rate note.

**Data Types: **`char`

| `double`

### Name-Value Arguments

Specify optional pairs of arguments as
`Name1=Value1,...,NameN=ValueN`

, where `Name`

is
the argument name and `Value`

is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.

*
Before R2021a, use commas to separate each name and value, and enclose*
`Name`

*in quotes.*

**Example: **```
[Price,PriceTree] =
fixedbybk(BKTree,CouponRate,Settle,Maturity,'FixedReset',4)
```

`FixedReset`

— Frequency of payments per year

`1`

(default) | vector

Frequency of payments per year, specified as
the comma-separated pair consisting of
`'FixedReset'`

and a
`NINST`

-by-`1`

vector.

**Data Types: **`double`

`Basis`

— Day count basis

`0`

(actual/actual) (default) | integer from `0`

to `13`

Day count basis representing the basis used when annualizing the input forward rate tree,
specified as the comma-separated pair consisting
of `'Basis'`

and a
`NINST`

-by-`1`

vector.

0 = actual/actual

1 = 30/360 (SIA)

2 = actual/360

3 = actual/365

4 = 30/360 (PSA)

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.

**Data Types: **`double`

`Principal`

— Notional principal amounts or principal value schedules

`100`

(default) | vector or cell array

Notional principal amounts, specified as the comma-separated pair consisting of
`'Principal'`

and a vector or
cell array.

`Principal`

accepts a `NINST`

-by-`1`

vector
or `NINST`

-by-`1`

cell array, where
each element of the cell array is a `NumDates`

-by-`2`

cell
array and the first column is dates and the second column is its associated
notional principal value. The date indicates the last day that the
principal value is valid.

**Data Types: **`cell`

| `double`

`Options`

— Derivatives pricing options structure

structure

Derivatives pricing options structure, specified as the comma-separated pair consisting of
`'Options'`

and a structure using
`derivset`

.

**Data Types: **`struct`

`EndMonthRule`

— End-of-month rule flag for generating dates when `Maturity`

is end-of-month date for month having 30 or fewer days

`1`

(in effect) (default) | nonnegative integer `[0,1]`

End-of-month rule flag for generating dates when `Maturity`

is an
end-of-month date for a month having 30 or fewer
days, specified as the comma-separated pair
consisting of `'EndMonthRule'`

and a nonnegative integer [`0`

,
`1`

] using a
`NINST`

-by-`1`

vector.

`0`

= Ignore rule, meaning that a payment date is always the same numerical day of the month.`1`

= Set rule on, meaning that a payment date is always the last actual day of the month.

**Data Types: **`logical`

`AdjustCashFlowsBasis`

— Flag to adjust cash flows based on actual period day count

`false`

(default) | value of `0`

(false) or `1`

(true)

Flag to adjust cash flows based on actual period day count, specified as the comma-separated
pair consisting of
`'AdjustCashFlowsBasis'`

and a
`NINST`

-by-`1`

vector of logicals with values of
`0`

(false) or
`1`

(true).

**Data Types: **`logical`

`Holidays`

— Holidays used in computing business days

if not specified, the default is to use `holidays.m`

(default) | MATLAB^{®} date numbers

Holidays used in computing business days, specified as the comma-separated pair consisting of
`'Holidays'`

and MATLAB date numbers using a
`NHolidays`

-by-`1`

vector.

**Data Types: **`double`

`BusinessDayConvention`

— Business day conventions

`actual`

(default) | character vector | cell array of character vectors

Business day conventions, specified as the comma-separated pair consisting of
`'BusinessDayConvention'`

and a
character vector or a
`N`

-by-`1`

cell
array of character vectors of business day
conventions. The selection for business day
convention determines how non-business days are
treated. Non-business days are defined as weekends
plus any other date that businesses are not open
(e.g. statutory holidays). Values are:

`actual`

— Non-business days are effectively ignored. Cash flows that fall on non-business days are assumed to be distributed on the actual date.`follow`

— Cash flows that fall on a non-business day are assumed to be distributed on the following business day.`modifiedfollow`

— Cash flows that fall on a non-business day are assumed to be distributed on the following business day. However if the following business day is in a different month, the previous business day is adopted instead.`previous`

— Cash flows that fall on a non-business day are assumed to be distributed on the previous business day.`modifiedprevious`

— Cash flows that fall on a non-business day are assumed to be distributed on the previous business day. However if the previous business day is in a different month, the following business day is adopted instead.

**Data Types: **`char`

| `cell`

## Output Arguments

`Price`

— Expected fixed-rate note prices at time 0

vector

Expected fixed-rate note prices at time 0, returned as a `NINST`

-by-`1`

vector.

`PriceTree`

— Tree structure of instrument prices

structure

Tree structure of instrument prices, returned as a MATLAB structure
of trees containing vectors of instrument prices and accrued interest,
and a vector of observation times for each node. Within `PriceTree`

:

`PriceTree.PTree`

contains the clean prices.`PriceTree.AITree`

contains the accrued interest.`PriceTree.tObs`

contains the observation times.`PriceTree.Connect`

contains the connectivity vectors. Each element in the cell array describes how nodes in that level connect to the next. For a given tree level, there are`NumNodes`

elements in the vector, and they contain the index of the node at the next level that the middle branch connects to. Subtracting 1 from that value indicates where the up-branch connects to, and adding 1 indicated where the down branch connects to.`PriceTree.Probs`

contains the probability arrays. Each element of the cell array contains the up, middle, and down transition probabilities for each node of the level.

## More About

### Fixed-Rate Note

A *fixed-rate
note* is a long-term debt security with
a preset interest rate and maturity, by which the
interest must be paid.

The principal may or may not be paid at maturity. In Financial Instruments Toolbox™, the principal is always paid at maturity. For more information, see Fixed-Rate Note.

## Version History

**Introduced before R2006a**

## Open Example

You have a modified version of this example. Do you want to open this example with your edits?

## MATLAB Command

You clicked a link that corresponds to this MATLAB command:

Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.

# Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

## How to Get Best Site Performance

Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.

### Americas

- América Latina (Español)
- Canada (English)
- United States (English)

### Europe

- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)

- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)