binprice

Binomial put and call pricing

Syntax

```[AssetPrice, OptionValue] = binprice(Price, Strike, Rate, Time,Increment, Volatility, Flag, DividendRate, Dividend, ExDiv)
```

Arguments

 `Price` Underlying asset price. A scalar. `Strike` Option exercise price. A scalar. `Rate` Risk-free interest rate. A scalar. Enter as a decimal fraction. `Time` Option time until maturity in years. A scalar. `Increment` Time increment. A scalar. `Increment` is adjusted so that the length of each interval is consistent with the maturity time of the option. (`Increment` is adjusted so that `Time` divided by `Increment` equals an integer number of increments.) `Volatility` Asset volatility. A scalar. `Flag` Specifies whether the option is a call (```Flag = 1```) or a put (`Flag = 0`). A scalar. `DividendRate` (Optional) The dividend rate, as a decimal fraction. A scalar. Default = `0`. If you enter a value for `DividendRate`, set `Dividend` and `ExDiv` = `0` or do not enter them. If you enter values for `Dividend` and `ExDiv`, set `DividendRate` = `0`. `Dividend` (Optional) The dividend payment at an ex-dividend date, `ExDiv`. A row vector. For each dividend payment, there must be a corresponding ex-dividend date. Default = `0`. If you enter values for `Dividend` and `ExDiv`, set `DividendRate` = `0`. `ExDiv` (Optional) Ex-dividend date, specified in number of periods. A row vector. Default = `0`.

Description

```[AssetPrice, OptionValue] = binprice(Price, Strike, Rate, Time, Increment, Volatility, Flag, DividendRate, Dividend, ExDiv)``` prices an American option using the Cox-Ross-Rubinstein binomial pricing model.

Examples

collapse all

Price an American Option Using the Cox-Ross-Rubinstein Binomial Pricing Model

This example shows how to price an American put option with an exercise price of \$50 that matures in 5 months. The current asset price is \$52, the risk-free interest rate is 10%, and the volatility is 40%. There is one dividend payment of \$2.06 in 3-1/2 months. When specifying the input argument `ExDiv` in terms of number of periods, divide the ex-dividend date, specified in years, by the time `Increment`.

ExDiv = ( 3.5/12) / (1/12) = 3.5

```[Price, Option] = binprice(52, 50, 0.1, 5/12, 1/12, 0.4, 0, 0, 2.06, 3.5) ```
```Price = 52.0000 58.1367 65.0226 72.7494 79.3515 89.0642 0 46.5642 52.0336 58.1706 62.9882 70.6980 0 0 41.7231 46.5981 49.9992 56.1192 0 0 0 37.4120 39.6887 44.5467 0 0 0 0 31.5044 35.3606 0 0 0 0 0 28.0688 Option = 4.4404 2.1627 0.6361 0 0 0 0 6.8611 3.7715 1.3018 0 0 0 0 10.1591 6.3785 2.6645 0 0 0 0 14.2245 10.3113 5.4533 0 0 0 0 18.4956 14.6394 0 0 0 0 0 21.9312 ```

The output returned is the asset price and American option value at each node of the binary tree.

References

Cox, J., S. Ross, and M. Rubenstein, "Option Pricing: A Simplified Approach", Journal of Financial Economics 7, Sept. 1979, pp. 229–263.

Hull, John C., Options, Futures, and Other Derivative Securities, 2nd edition, Chapter 14.