# cashsensbybls

Determine price or sensitivities of cash-or-nothing digital options using Black-Scholes model

## Syntax

``PriceSens = cashsensbybls(RateSpec,StockSpec,Settle,Maturity,OptSpec,Strike,Payoff)``
``PriceSens = cashsensbybls(___,Name,Value)``

## Description

example

````PriceSens = cashsensbybls(RateSpec,StockSpec,Settle,Maturity,OptSpec,Strike,Payoff)` computes the price or sensitivities for cash-or-nothing European digital options using the Black-Scholes option pricing model.```

example

````PriceSens = cashsensbybls(___,Name,Value)` specifies options using one or more name-value pair arguments in addition to the input arguments in the previous syntax.```

## Examples

collapse all

Consider a European call and put cash-or-nothing options on a futures contract with an exercise price of \$90, and a fixed payoff of \$10 that expires on October 1, 2008. Assume that on January 1, 2008 the contract trades at \$110, and has a volatility of 25% per annum and the risk-free rate is 4.5% per annum. Using this data, calculate the price and sensitivity of the call and put cash-or-nothing options on the futures contract. First, create the `RateSpec`:

```Settle = 'Jan-1-2008'; Maturity = 'Oct-1-2008'; Rates = 0.045; Compounding = -1; Basis = 1; RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle,... 'EndDates', Maturity, 'Rates', Rates, 'Compounding', Compounding, 'Basis', Basis)```
```RateSpec = struct with fields: FinObj: 'RateSpec' Compounding: -1 Disc: 0.9668 Rates: 0.0450 EndTimes: 0.7500 StartTimes: 0 EndDates: 733682 StartDates: 733408 ValuationDate: 733408 Basis: 1 EndMonthRule: 1 ```

Define the `StockSpec`.

```AssetPrice = 110; Sigma = .25; DivType = 'Continuous'; DivAmount = Rates; StockSpec = stockspec(Sigma, AssetPrice, DivType, DivAmount)```
```StockSpec = struct with fields: FinObj: 'StockSpec' Sigma: 0.2500 AssetPrice: 110 DividendType: {'continuous'} DividendAmounts: 0.0450 ExDividendDates: [] ```

Define the call and put options.

```OptSpec = {'call'; 'put'}; Strike = 90; Payoff = 10;```

Compute the gamma, theta, and price.

```OutSpec = { 'gamma';'theta';'price'}; [Gamma, Theta, Price] = cashsensbybls(RateSpec, StockSpec,... Settle, Maturity, OptSpec, Strike, Payoff, 'OutSpec', OutSpec)```
```Gamma = 2×1 -0.0050 0.0050 ```
```Theta = 2×1 -2.2489 1.8139 ```
```Price = 2×1 7.6716 1.9965 ```

## Input Arguments

collapse all

Interest-rate term structure (annualized and continuously compounded), specified by the `RateSpec` obtained from `intenvset`. For information on the interest-rate specification, see `intenvset`.

Data Types: `struct`

Stock specification for the underlying asset. For information on the stock specification, see `stockspec`.

`stockspec` handles several types of underlying assets. For example, for physical commodities the price is `StockSpec.Asset`, the volatility is `StockSpec.Sigma`, and the convenience yield is `StockSpec.DividendAmounts`.

Data Types: `struct`

Settlement or trade date for the basket option, specified as an `NINST`-by-`1` vector of serial date numbers or date character vectors.

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

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

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

Definition of the option as `'call'` or `'put'`, specified as an `NINST`-by-`1` vector.

Data Types: `char` | `cell`

Strike price value, specified as an `NINST`-by-`1` vector.

Data Types: `double`

Payoff values (or the amount to be paid at expiration), specified as an `NINST`-by-`1` vector.

Data Types: `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: ```[Gamma,Theta,Price] = cashsensbybls(RateSpec,StockSpec,Settle,Maturity,OptSpec,Strike,Payoff,'OutSpec',{'gamma';'theta';'price'})```

Define outputs, specified as the comma-separated pair consisting of `'OutSpec'` and a `NOUT`- by-`1` or a `1`-by-`NOUT` cell array of character vectors with possible values of `'Price'`, `'Delta'`, `'Gamma'`, `'Vega'`, `'Lambda'`, `'Rho'`, `'Theta'`, and `'All'`.

`OutSpec = {'All'}` specifies that the output is `Delta`, `Gamma`, `Vega`, `Lambda`, `Rho`, `Theta`, and `Price`, in that order. This is the same as specifying `OutSpec` to include each sensitivity.

Example: ```OutSpec = {'delta','gamma','vega','lambda','rho','theta','price'}```

Data Types: `char` | `cell`

## Output Arguments

collapse all

Expected prices or sensitivities (defined using `OutSpec`) for cash-or-nothing option, returned as a `NINST`-by-`1` vector.

## Version History

Introduced in R2009a