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.
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 binomial model, on the other hand, makes far fewer assumptions about the processes underlying an option. 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.
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);
The option call price
The option put price
OptPut = $6.35
delta for a call
CallVal = 0.6665
and delta for a put
PutVal = -0.3335
GammaVal = 0.0145
VegaVal = 18.1843
lambda 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
Volatility = blsimpv(100, 95, 0.10, 0.25, OptCall);
The function returns an implied volatility of 0.500, the original
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.00 111.27 123.87 137.96 148.69 166.28 0 89.97 100.05 111.32 118.90 132.96 0 0 81.00 90.02 95.07 106.32 0 0 0 72.98 76.02 85.02 0 0 0 0 60.79 67.98 0 0 0 0 0 54.36
and the tree of option values.
OptionPrice = 12.10 19.17 29.35 42.96 54.17 71.28 0 5.31 9.41 16.32 24.37 37.96 0 0 1.35 2.74 5.57 11.32 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
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
gives the associated option value for each node in the price tree.
Ignore the zeros that correspond to a zero in the price tree.