Using options for hedging

Suppose that you have an investment portfolio with one asset, IBM. You'll hedge the portfolio's risk using delta hedging with a European put option on IBM.

First, value the European put option using the Black-Scholes option pricing formula, with a strike X of 80 and a time to maturity T of 1/2 a year. The risk-free interest rate is 2% and the spot S is initially 70.

Then create a delta hedge by computing the delta of the option with the bs_delta() function, and use it to hedge against a change in the stock price to 69.5. The result is a delta neutral portfolio of both the option and the stock.

Both of the functions black_scholes() and bs_delta() are available in your workspace.

You can find the source code of the black_scholes() and bs_delta() functions here.

This is a part of the course

“Quantitative Risk Management in Python”

View Course

Exercise instructions

  • Compute the price of a European put option at the spot price 70.
  • Find the delta of the option using the provided bs_delta() function at the spot price 70.
  • Compute the value_change of the option when the spot price falls to 69.5.
  • Show that the sum of the spot price change and the value_change weighted by 1/delta is (close to) zero.

Hands-on interactive exercise

Have a go at this exercise by completing this sample code.

# Compute the annualized standard deviation of `IBM` returns
sigma = np.sqrt(252) * IBM_returns.std()

# Compute the Black-Scholes value at IBM spot price 70
value = black_scholes(S = ____, X = 80, T = 0.5, r = 0.02, 
                      sigma = sigma, option_type = "put")
# Find the delta of the option at IBM spot price 70
delta = bs_delta(S = ____, X = 80, T = 0.5, r = 0.02, 
                 sigma = sigma, option_type = "put")

# Find the option value change when the price of IBM falls to 69.5
value_change = ____(S = 69.5, X = 80, T = 0.5, r = 0.02, 
                             sigma = sigma, option_type = "put") - ____

print( (69.5 - 70) + (1/delta) * ____ )