Greek-Neutral Portfolios of European Stock Options
The option sensitivity measures familiar to most option traders are often referred to as the greeks: delta, gamma, vega, lambda, rho, and theta. Delta is the price sensitivity of an option with respect to changes in the price of the underlying asset. It represents a first-order sensitivity measure analogous to duration in fixed income markets. Gamma is the sensitivity of an option's delta to changes in the price of the underlying asset, and represents a second-order price sensitivity analogous to convexity in fixed income markets. Vega is the price sensitivity of an option with respect to changes in the volatility of the underlying asset. For more information, see Pricing and Analyzing Equity Derivatives.
The greeks of a particular option are a function of the model used to price the option. However, given enough different options to work with, a trader can construct a portfolio with any desired values for its greeks. For example, to insulate the value of an option portfolio from small changes in the price of the underlying asset, one trader might construct an option portfolio whose delta is zero. Such a portfolio is then said to be “delta neutral.” Another trader may want to protect an option portfolio from larger changes in the price of the underlying asset, and so might construct a portfolio whose delta and gamma are both zero. Such a portfolio is both delta and gamma neutral. A third trader may want to construct a portfolio insulated from small changes in the volatility of the underlying asset in addition to delta and gamma neutrality. Such a portfolio is then delta, gamma, and vega neutral.
Using the Black-Scholes model for European options, this example creates an equity option portfolio that is simultaneously delta, gamma, and vega neutral. The value of a particular greek of an option portfolio is a weighted average of the corresponding greek of each individual option. The weights are the quantity of each option in the portfolio. Hedging an option portfolio thus involves solving a system of linear equations, an easy process in MATLAB®.
Step 1
Create an input data matrix to summarize the relevant information. Each row of the matrix contains the standard inputs to Financial Toolbox™ Black-Scholes suite of functions: column 1 contains the current price of the underlying stock; column 2 the strike price of each option; column 3 the time to-expiry of each option in years; column 4 the annualized stock price volatility; and column 5 the annualized dividend rate of the underlying asset. Rows 1 and 3 are data related to call options, while rows 2 and 4 are data related to put options.
DataMatrix = [100.000 100 0.2 0.3 0 % Call 119.100 125 0.2 0.2 0.025 % Put 87.200 85 0.1 0.23 0 % Call 301.125 315 0.5 0.25 0.0333]; % Put
Also, assume that the annualized risk-free rate is 10% and is constant for all maturities of interest.
RiskFreeRate = 0.10;
For clarity, assign each column of DataMatrix
to a column vector
whose name reflects the type of financial data in the column.
StockPrice = DataMatrix(:,1); StrikePrice = DataMatrix(:,2); ExpiryTime = DataMatrix(:,3); Volatility = DataMatrix(:,4); DividendRate = DataMatrix(:,5);
Step 2
Based on the Black-Scholes model, compute the prices, and the delta, gamma, and vega
sensitivity greeks of each of the four options. The functions blsprice
and blsdelta
have two outputs, while blsgamma
and blsvega
have only one. The price and delta of a
call option differ from the price and delta of an otherwise equivalent put option, in
contrast to the gamma and vega sensitivities, which are valid for both calls and
puts.
[CallPrices, PutPrices] = blsprice(StockPrice, StrikePrice,... RiskFreeRate, ExpiryTime, Volatility, DividendRate); [CallDeltas, PutDeltas] = blsdelta(StockPrice,... StrikePrice, RiskFreeRate, ExpiryTime, Volatility,... DividendRate); Gammas = blsgamma(StockPrice, StrikePrice, RiskFreeRate,... ExpiryTime, Volatility , DividendRate)' Vegas = blsvega(StockPrice, StrikePrice, RiskFreeRate,... ExpiryTime, Volatility , DividendRate)'
Gammas = 0.0290 0.0353 0.0548 0.0074 Vegas = 17.4293 20.0347 9.5837 83.5225
Extract the prices and deltas of interest to account for the distinction between call and puts.
Prices = [CallPrices(1) PutPrices(2) CallPrices(3)... PutPrices(4)] Deltas = [CallDeltas(1) PutDeltas(2) CallDeltas(3)... PutDeltas(4)]
Prices = 6.3441 6.6035 4.2993 22.7694 Deltas = 0.5856 -0.6255 0.7003 -0.4830
Step 3
Now, assuming an arbitrary portfolio value of $17,000, set up and solve the linear
system of equations such that the overall option portfolio is simultaneously delta, gamma,
and vega-neutral. The solution computes the value of a particular greek of a portfolio of
options as a weighted average of the corresponding greek of each individual option in the
portfolio. The system of equations is solved using the back slash (\
)
operator discussed in Solving Simultaneous Linear Equations.
A = [Deltas; Gammas; Vegas; Prices];
b = [0; 0; 0; 17000];
OptionQuantities = A\b % Quantity (number) of each option.
OptionQuantities = 1.0e+04 * 2.2333 0.6864 -1.5655 -0.4511
Step 4
Finally, compute the market value, delta, gamma, and vega of the overall portfolio as a weighted average of the corresponding parameters of the component options. The weighted average is computed as an inner product of two vectors.
PortfolioValue = Prices * OptionQuantities PortfolioDelta = Deltas * OptionQuantities PortfolioGamma = Gammas * OptionQuantities PortfolioVega = Vegas * OptionQuantities
PortfolioValue = 17000 PortfolioDelta = 1.8190e-12 PortfolioGamma = 0 PortfolioVega = 0
The output for these computations is:
Option Price Delta Gamma Vega Quantity 1 6.3441 0.5856 0.0290 17.4293 22332.6131 2 6.6035 -0.6255 0.0353 20.0347 6864.0731 3 4.2993 0.7003 0.0548 9.5837 -15654.8657 4 22.7694 -0.4830 0.0074 83.5225 -4510.5153
You can verify that the portfolio value is $17,000 and that the option portfolio is indeed delta, gamma, and vega neutral, as desired. Hedges based on these measures are effective only for small changes in the underlying variables.
See Also
bnddury
| bndconvy
| bndprice
| bndkrdur
| blsprice
| blsdelta
| blsgamma
| blsvega
| zbtprice
| zero2fwd
| zero2disc
Related Topics
- Pricing and Analyzing Equity Derivatives
- Sensitivity of Bond Prices to Interest Rates
- Bond Portfolio for Hedging Duration and Convexity
- Bond Prices and Yield Curve Parallel Shifts
- Bond Prices and Yield Curve Nonparallel Shifts
- Term Structure Analysis and Interest-Rate Swaps
- Plotting Sensitivities of an Option
- Plotting Sensitivities of a Portfolio of Options