Main Content

These toolbox functions compute prices, sensitivities, and profits for portfolios of options or other equity derivatives. They use the Black-Scholes model for European options and the binomial model for American options. Such measures are useful for managing portfolios and for executing collars, hedges, and straddles:

A

*collar*is an interest-rate option that guarantees that the rate on a floating-rate loan will not exceed a certain upper level nor fall below a lower level. It is designed to protect an investor against wide fluctuations in interest rates.A

*hedge*is a securities transaction that reduces or offsets the risk on an existing investment position.A

*straddle*is a strategy used in trading options or futures. It involves simultaneously purchasing put and call options with the same exercise price and expiration date, and it is most profitable when the price of the underlying security is very volatile.

There are six basic sensitivity measures associated with option pricing: delta, gamma, lambda, rho, theta, and vega — the “greeks.” The toolbox provides functions for calculating each sensitivity and for implied volatility.

*Delta* of a derivative security is the rate of change of its
price relative to the price of the underlying asset. It is the first derivative of the
curve that relates the price of the derivative to the price of the underlying security.
When delta is large, the price of the derivative is sensitive to small changes in the
price of the underlying security.

*Gamma* of a derivative security is the rate of change of delta
relative to the price of the underlying asset; that is, the second derivative of the
option price relative to the security price. When gamma is small, the change in delta is
small. This sensitivity measure is important for deciding how much to adjust a hedge
position.

*Lambda*, also known as the elasticity of an option, represents
the percentage change in the price of an option relative to a 1% change in the price of
the underlying security.

*Rho* is the rate of change in option price relative to the
risk-free interest rate.

*Theta* is the rate of change in the price of a derivative
security relative to time. Theta is usually small or negative since the value of an option
tends to drop as it approaches maturity.

*Vega* is the rate of change in the price of a derivative
security relative to the volatility of the underlying security. When vega is large the
security is sensitive to small changes in volatility. For example, options traders often
must decide whether to buy an option to hedge against vega or gamma. The hedge selected
usually depends upon how frequently one rebalances a hedge position and also upon the
standard deviation of the price of the underlying asset (the volatility). If the standard
deviation is changing rapidly, balancing against vega is preferable.

The *implied volatility* of an option is the standard deviation
that makes an option price equal to the market price. It helps determine a market estimate
for the future volatility of a stock and provides the input volatility (when needed) to
the other Black-Scholes functions.

Toolbox functions for analyzing equity derivatives use the Black-Scholes model for
European options and the binomial model for American options. The *Black-Scholes
model *makes several assumptions about the underlying securities and their
behavior. The Black-Scholes model was the first complete mathematical model for pricing
options, developed by Fischer Black and Myron Scholes. It examines market price, strike
price, volatility, time to expiration, and interest rates. It is limited to only certain
kinds of options.

The *binomial model*, on the other hand, makes far fewer
assumptions about the processes underlying an option. A binomial model is a method of
pricing options or other equity derivatives in which the probability over time of each
possible price follows a binomial distribution. The basic assumption is that prices can move
to only two values (one higher and one lower) over any short time period. For further
explanation, see Options, Futures, and Other Derivatives by John Hull in Bibliography.

Using the Black-Scholes model entails several assumptions:

The prices of the underlying asset follow an Ito process. (See Hull, page 222.)

The option can be exercised only on its expiration date (European option).

Short selling is permitted.

There are no transaction costs.

All securities are divisible.

There is no riskless arbitrage (where

*arbitrage*is the purchase of securities on one market for immediate resale on another market to profit from a price or currency discrepancy).Trading is a continuous process.

The risk-free interest rate is constant and remains the same for all maturities.

If any of these assumptions is untrue, Black-Scholes may not be an appropriate model.

To illustrate toolbox Black-Scholes functions, this example computes the call and put prices of a European option and its delta, gamma, lambda, and implied volatility. The asset price is $100.00, the exercise price is $95.00, the risk-free interest rate is 10%, the time to maturity is 0.25 years, the volatility is 0.50, and the dividend rate is 0. Simply executing the toolbox functions

[OptCall, OptPut] = blsprice(100, 95, 0.10, 0.25, 0.50, 0) [CallVal, PutVal] = blsdelta(100, 95, 0.10, 0.25, 0.50, 0) GammaVal = blsgamma(100, 95, 0.10, 0.25, 0.50, 0) VegaVal = blsvega(100, 95, 0.10, 0.25, 0.50, 0) [LamCall, LamPut] = blslambda(100, 95, 0.10, 0.25, 0.50, 0)

OptCall = 13.6953 OptPut = 6.3497 CallVal = 0.6665 PutVal = -0.3335 GammaVal = 0.0145 VegaVal = 18.1843 LamCall = 4.8664 LamPut = -5.2528

To summarize:

The option call price

`OptCall`

= $13.70The option put price

`OptPut`

= $6.35delta for a call

`CallVal`

= 0.6665 and delta for a put`PutVal`

= -0.3335gamma

`GammaVal`

= 0.0145vega

`VegaVal`

= 18.1843lambda for a call

`LamCall`

= 4.8664 and lambda for a put`LamPut`

= –5.2528

Now as a computation check, find the implied volatility of the option using the call
option price from `blsprice`

.

Volatility = blsimpv(100, 95, 0.10, 0.25, OptCall)

Volatility = 0.5000

The function returns an implied volatility of 0.500, the original `blsprice`

input.

The binomial model for pricing options or other equity derivatives assumes that the probability over time of each possible price follows a binomial distribution. The basic assumption is that prices can move to only two values, one up and one down, over any short time period. Plotting the two values, and then the subsequent two values each, and then the subsequent two values each, and so on over time, is known as “building a binomial tree.”. This model applies to American options, which can be exercised any time up to and including their expiration date.

This example prices an American call option using a binomial model. Again, the asset
price is $100.00, the exercise price is $95.00, the risk-free interest rate is 10%, and
the time to maturity is 0.25 years. It computes the tree in increments of 0.05 years, so
there are 0.25/0.05 = 5 periods in the example. The volatility is 0.50, this is a call
(`flag = 1`

), the dividend rate is 0, and it pays a dividend of $5.00
after three periods (an ex-dividend date). Executing the toolbox function

[StockPrice, OptionPrice] = binprice(100, 95, 0.10, 0.25,... 0.05, 0.50, 1, 0, 5.0, 3)

returns the tree of prices of the underlying asset

StockPrice = 100.0000 111.2713 123.8732 137.9629 148.6915 166.2807 0 89.9677 100.0495 111.3211 118.8981 132.9629 0 0 80.9994 90.0175 95.0744 106.3211 0 0 0 72.9825 76.0243 85.0175 0 0 0 0 60.7913 67.9825 0 0 0 0 0 54.3608

and the tree of option values.

OptionPrice = 12.1011 19.1708 29.3470 42.9629 54.1653 71.2807 0 5.3068 9.4081 16.3211 24.3719 37.9629 0 0 1.3481 2.7402 5.5698 11.3211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

The output from the binomial function is a binary tree. Read the
`StockPrice`

matrix this way: column 1 shows the price for period 0,
column 2 shows the up and down prices for period 1, column 3 shows the up-up, up-down, and
down-down prices for period 2, and so on. Ignore the zeros. The
`OptionPrice`

matrix gives the associated option value for each node in
the price tree. Ignore the zeros that correspond to a zero in the price tree.

`blsprice`

| `binprice`

| `blkimpv`

| `blkprice`

| `blsdelta`

| `blsgamma`

| `blsimpv`

| `blslambda`

| `blsrho`

| `blstheta`

| `blsvega`

| `opprofit`