# floorbybk

Price floor instrument from Black-Karasinski interest-rate tree

## Syntax

``````[Price,PriceTree] = floorbybk(BKTree,Strike,Settle,Maturity)``````
``````[Price,PriceTree] = floorbybk(___,Reset,Basis,Principal,Options)``````

## Description

example

``````[Price,PriceTree] = floorbybk(BKTree,Strike,Settle,Maturity)``` computes the price of a floor instrument from a Black-Karasinski interest-rate tree. `floorbybk` computes prices of vanilla floors and amortizing floors.```

example

``````[Price,PriceTree] = floorbybk(___,Reset,Basis,Principal,Options)``` adds optional arguments.```

## Examples

collapse all

Load the file `deriv.mat`, which provides `BKTree`. The `BKTree` structure contains the time and interest rate information needed to price the floor instrument.

`load deriv.mat;`

Set the required values. Other arguments will use defaults.

```Strike = 0.03; Settle = '01-Jan-2004'; Maturity = '01-Jan-2007';```

Use `floorbybk` to compute the price of the floor instrument.

`Price = floorbybk(BKTree, Strike, Settle, Maturity)`
```Price = 0.2061 ```

Load `deriv.mat` to specify the `BKTree` and then define the floor instrument.

```load deriv.mat; Settle = '01-Jan-2004'; Maturity = '01-Jan-2008'; Strike = 0.045; Reset = 1; Principal ={{'01-Jan-2005' 100;'01-Jan-2006' 60;'01-Jan-2007' 30;'01-Jan-2008' 30};... 100};```

Price the amortizing and vanilla floors.

```Basis = 1; Price = floorbybk(BKTree, Strike, Settle, Maturity, Reset, Basis, Principal)```
```Price = 2×1 2.2000 2.5564 ```

## Input Arguments

collapse all

Interest-rate tree structure, specified by using `bktree`.

Data Types: `struct`

Rate at which cap is exercised, specified as a `NINST`-by-`1` vector of decimal values.

Data Types: `double`

Settlement date for the floor, specified as a `NINST`-by-`1` vector of serial date numbers or date character vectors. The `Settle` date for every floor is set to the `ValuationDate` of the BK tree. The floor argument `Settle` is ignored.

Data Types: `double` | `char` | `cell`

Maturity date for the floor, specified as a `NINST`-by-`1` vector of serial date numbers or date character vectors.

Data Types: `double` | `char` | `cell`

(Optional) Reset frequency payment per year, specified as a `NINST`-by-`1` vector.

Data Types: `double`

(Optional) Day-count basis representing the basis used when annualizing the input forward rate, specified as a `NINST`-by-`1` vector of integers.

• 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

Data Types: `double`

(Optional) Notional principal amount, specified as a `NINST`-by-`1` of notional principal amounts, or a `NINST`-by-`1` cell array, where each element is a `NumDates`-by-`2` cell array where the first column is dates and the second column is associated principal amount. The date indicates the last day that the principal value is valid.

Use `Principal` to pass a schedule to compute the price for an amortizing floor.

Data Types: `double` | `cell`

(Optional) Derivatives pricing options structure, specified using `derivset`.

Data Types: `struct`

## Output Arguments

collapse all

Expected price of the floor at time 0, returned as a `NINST`-by-`1` vector.

Tree structure with values of the floor at each node, returned as a MATLAB® structure of trees containing vectors of instrument prices and a vector of observation times for each node:

• `PriceTree.PTree` contains floor prices.

• `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.

collapse all

### Floor

A floor is a contract that includes a guarantee setting the minimum interest rate to be received by the holder, based on an otherwise floating interest rate.

The payoff for a floor is:

$\mathrm{max}\left(FloorRate-CurrentRate,0\right)$

## Version History

Introduced before R2006a