# instcap

Construct cap instrument

## Syntax

``InstSet = instcap(Strike,Settle,Maturity)``
``InstSet = instcap(InstSet,Strike,Settle,Maturity)``
``InstSet = instcap(___,CapReset,Basis,Principal)``
``[FieldList,ClassList,TypeString] = instcap``

## Description

example

````InstSet = instcap(Strike,Settle,Maturity)` creates a new instrument set containing Cap instruments.```

example

````InstSet = instcap(InstSet,Strike,Settle,Maturity)` adds Cap instruments to an existing instrument set.```

example

````InstSet = instcap(___,CapReset,Basis,Principal)` adds optional arguments.```

example

````[FieldList,ClassList,TypeString] = instcap` lists field meta-data for the Cap instrument.```

## Examples

collapse all

Create a new instrument variable with the following information:

```Strike = [0.035; 0.045]; Settle= 'Jan-1-2013'; Maturity = 'Jan-1-2014'; Reset = 1; Basis = 1; Principal = 1000;```

Create the new cap instruments.

`InstSet = instcap(Strike, Settle, Maturity, Reset, Basis, Principal)`
```InstSet = struct with fields: FinObj: 'Instruments' IndexTable: [1x1 struct] Type: {'Cap'} FieldName: {{6x1 cell}} FieldClass: {{6x1 cell}} FieldData: {{6x1 cell}} ```

Display the cap instruments.

`instdisp(InstSet)`
```Index Type Strike Settle Maturity CapReset Basis Principal 1 Cap 0.035 01-Jan-2013 01-Jan-2014 1 1 1000 2 Cap 0.045 01-Jan-2013 01-Jan-2014 1 1 1000 ```

## Input Arguments

collapse all

Instrument variable, specified only when adding Cap instruments to an existing instrument set. For more information on the `InstSet` variable, see `instget`.

Data Types: `struct`

Rate at which the Cap is exercised, specified as a scalar or an `NINST`-by-`1` vector of decimal values.

Data Types: `double`

Settlement dates, specified as scalar or an `NINST`-by-`1` vector using serial date numbers or date character vectors.

Note

`Settle` must be earlier than `Maturity`.

Data Types: `double` | `char`

Maturity dates, specified as scalar or an `NINST`-by-`1` vector using serial date numbers or date character vectors.

Data Types: `double` | `char`

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

Data Types: `double`

(Optional) Day-count basis, specified as scalar or an `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

Data Types: `double`

(Optional) Notional principal amount, specified as a scalar or an `NINST`-by-`1` of notional principal amounts, or an `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 Cap.

Data Types: `double` | `cell`

## Output Arguments

collapse all

Variable containing a collection of instruments, returned as a structure. Instruments are broken down by type and each type can have different data fields. Each stored data field has a row vector or string for each instrument. For more information on the `InstSet` variable, see `instget`.

Name of each data field for a Cap instrument, returned as an `NFIELDS`-by-`1` cell array of character vectors.

Data class for each field, returned as an `NFIELDS`-by-`1` cell array of character vectors. The class determines how arguments are parsed. Valid character vectors are `'dble'`, `'date'`, and `'char'`.

Type of instrument, returned as a character vector. For a Cap option instrument, `TypeString = 'Cap'`.

collapse all

### Cap

A cap is a contract that includes a guarantee that sets the maximum interest rate to be paid by the holder, based on an otherwise floating interest rate.

The payoff for a cap is:

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