# optstockbybjs

Price American options using Bjerksund-Stensland 2002 option pricing model

## Syntax

``Price = optstockbybjs(RateSpec,StockSpec,Settle,Maturity,OptSpec,Strike)``

## Description

example

````Price = optstockbybjs(RateSpec,StockSpec,Settle,Maturity,OptSpec,Strike)` computes American option prices with continuous dividend yield using the Bjerksund-Stensland 2002 option pricing model. Note`optstockbybjs` computes prices of American options with continuous dividend yield using the Bjerksund-Stensland option pricing model. ```

## Examples

collapse all

This example shows how to compute the American option prices with continuous dividend yield using the Bjerksund-Stensland 2002 option pricing model. Consider two American stock options (a call and a put) with an exercise price of \$100. The options expire on April 1, 2008. Assume the underlying stock pays a continuous dividend yield of 4% as of January 1, 2008. The stock has a volatility of 20% per annum and the annualized continuously compounded risk-free rate is 8% per annum. Using this data, calculate the price of the American call and put, assuming the following current prices of the stock: \$90 (for the call) and \$120 (for the put).

```Settle = 'Jan-1-2008'; Maturity = 'April-1-2008'; Strike = 100; AssetPrice = [90;120]; DivYield = 0.04; Rate = 0.08; Sigma = 0.20; % define the RateSpec and StockSpec StockSpec = stockspec(Sigma, AssetPrice, {'continuous'}, DivYield); RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle,... 'EndDates', Maturity, 'Rates', Rate, 'Compounding', -1); % define the option type OptSpec = {'call'; 'put'}; Price = optstockbybjs(RateSpec, StockSpec, Settle, Maturity, OptSpec, Strike)```
```Price = 2×1 0.8420 0.1108 ```

The first element of the `Price` vector represents the price of the call (\$0.84); the second element represents the price of the put option (\$0.11).

## 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, specified as serial date number or date character vector using a `NINST`-by-`1` vector.

Data Types: `double` | `char`

Maturity date for option, specified as serial date number or date character vector using a `NINST`-by-`1` vector.

Data Types: `double` | `char`

Definition of the option as `'call'` or `'put'`, specified as a `NINST`-by-`1` cell array of character vectors with values `'call'` or `'put'`.

Data Types: `char` | `cell`

Option strike price value, specified as a nonnegative `NINST`-by-`1` vector.

Data Types: `double`

## Output Arguments

collapse all

Expected option prices, returned as a `NINST`-by-`1` vector.

Data Types: `double`

collapse all

### Vanilla Option

A vanilla option is a category of options that includes only the most standard components.

A vanilla option has an expiration date and straightforward strike price. American-style options and European-style options are both categorized as vanilla options.

The payoff for a vanilla option is as follows:

• For a call: $\mathrm{max}\left(St-K,0\right)$

• For a put: $\mathrm{max}\left(K-St,0\right)$

where:

St is the price of the underlying asset at time t.

K is the strike price.