Portfolio hedging: offsetting risk

Quantitative Risk Management in Python

Jamsheed Shorish

Computational Economist

Portfolio stability

  • VaR/CVaR: potential portfolio loss for given confidence level
  • Portfolio optimization: 'best' portfolio weights
    • But volatility is still present!
  • Institutional investors: stability of portfolio against volatile changes
    • Pension funds: c. USD 20 trillion
Quantitative Risk Management in Python

Rainy days, sunny days

  • Investment portfolio: sunglasses company
    • Risk factor: weather

Image of sunglasses on a yellow flotation raft

Quantitative Risk Management in Python

Rainy days, sunny days

  • Investment portfolio: sunglasses company
    • Risk factor: weather (rain)
    • More rain => lower company value
    • Lower company value => lower stock price
    • Lower stock price => lower portfolio value

Image of sunglasses on a yellow flotation raft   Image of raindrops on a glass pane

Quantitative Risk Management in Python

Rainy days, sunny days

  • Investment portfolio: sunglasses company
    • Risk factor: weather (rain)
    • More rain => lower company value
    • Lower company value => lower stock price
    • Lower stock price => lower portfolio value
  • Second opportunity: umbrella company
    • More rain => more value!

Image of multicolored folded umbrellas in a stand

Quantitative Risk Management in Python

Rainy days, sunny days

  • Investment portfolio: sunglasses company
    • Risk factor: weather (rain)
    • More rain => lower company value
    • Lower company value => lower stock price
    • Lower stock price => lower portfolio value
  • Second opportunity: umbrella company
    • More rain => more value!
  • Portfolio: sunglasses & umbrellas, more stable
    • Volatility of rain is offset

Image of sunglasses on a yellow flotation raft   Image of multicolored folded umbrellas in a stand

Quantitative Risk Management in Python

Hedging

  • Hedging: offset volatility with another asset
  • Crucial for institutional investor risk management
  • Additional return stream moving opposite to portfolio
  • Used in pension funds, ForEx, futures, derivatives...
    • 2019: hedge fund market c. USD 3.6 trillion
Quantitative Risk Management in Python

Hedge instruments: options

  • Derivative: hedge instrument
  • European option: very popular derivative
    • European call option: right (not obligation) to purchase stock at fixed price $X$ on date $M$
    • European put option: right (not obligation) to sell stock at fixed price $X$ on date $M$
    • Stock = "underlying" of the option
      • Current market price $S$ = spot price
    • $X$ = strike price
    • $M$ = maturity date
Quantitative Risk Management in Python

Black-Scholes option pricing

  • Option value changes when price of underlying changes => can be used to hedge risk
  • Need to value option: requires assumptions about market, underlying, interest rate, etc.
  • Black-Scholes option pricing formula: Fisher Black & Nobel Laureate Myron Scholes (1973)
    • Requires for each time $t$:
      • spot price $S$
      • strike price $X$
      • time to maturity $T := M - t$
      • risk-free interest rate $r$
      • volatility of underlying returns $\sigma$ (standard deviation)
1 Black, F. and M. Scholes (1973). "The Pricing of Options and Corporate Liabilities", Journal of Political Economy vol 81 no. 3, pp. 637–654.{{3}}
Quantitative Risk Management in Python

Black-Scholes formula assumptions

  • Market structure
    • Efficient markets
    • No transactions costs
    • Risk-free interest rate
  • Underlying stock
    • No dividends
    • Normally distributed returns
  • Online calculator: https://www.math.drexel.edu/~pg/fin/VanillaCalculator.html
  • Python function black_scholes(): source code link available in the exercises
Quantitative Risk Management in Python

Computing the Black-Scholes option value

  • Black-Scholes option pricing formula black_scholes()
  • Required parameters: $S$, $X$, $T$ (in fractions of a year), $r$, $\sigma$
  • Use the desired option_type ('call' or 'put')

 

S = 70; X = 80; T = 0.5; r = 0.02; sigma = 0.2

option_value = black_scholes(S, X, T, r, sigma, option_type = "put")
print(option_value)
10.31222171237868
Quantitative Risk Management in Python

Hedging a stock position with an option

  • Hedge stock with European put option: underlying is same as stock in portfolio
  • Spot price $S$ falls ($\Delta S < 0$) => option value $V$ rises ($\Delta V > 0$)
  • Delta of an option: $\Delta := \frac{\partial V}{\partial S}$
  • Hedge one share with $\frac{1}{\Delta}$ options
  • Delta neutral: $\Delta S + \frac{\Delta V}{\Delta} = 0$; stock is hedged!
  • Python function bs_delta(): computes the option delta
    • Link to source available in the exercises
Quantitative Risk Management in Python

Let's practice!

Quantitative Risk Management in Python

Preparing Video For Download...