Price fixed-rate note from 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-2005'; Maturity = '01-Jan-2006';

Use `fixedbybk`

to compute the price of the note.

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

Warning: Fixed rate notes are valued at Tree ValuationDate rather than Settle

Price = 103.5126

`BKTree`

— Interest-rate structurestructure

Interest-rate tree structure, created by `bktree`

**Data Types: **`struct`

`CouponRate`

— Coupon annual ratedecimal

Coupon annual rate, specified as a `NINST`

-by-`1`

vector.

**Data Types: **`double`

`Settle`

— Settlement dateserial 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 dateserial 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`

Specify optional
comma-separated pairs of `Name,Value`

arguments. `Name`

is
the argument name and `Value`

is the corresponding value.
`Name`

must appear inside quotes. You can specify several name and value
pair arguments in any order as
`Name1,Value1,...,NameN,ValueN`

.

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

`'FixedReset'`

— Frequency of payments per year`1`

(default) | vectorFrequency 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 arrayNotional 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 structurestructure

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 daysif not specified, the default is to use

`holidays.m`

(default) | MATLABHolidays 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 vectorsBusiness 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`

`Price`

— Expected fixed-rate note prices at time 0vector

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

-by-`1`

vector.

`PriceTree`

— Tree structure of instrument pricesstructure

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.

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.

A modified version of this example exists on your system. Do you want to open this version instead?

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.

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: .

Select web siteYou can also select a web site from the following list:

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

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

- 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)