/hedging

Hedging a portfolio of S&P 100 call options

Primary LanguagePythonMIT LicenseMIT

Hedging

We consider the problem of hedging a portfolio of European at-the-money call options on the S&P 100 index against the Greeks delta and vega on market data from the year 2010. This repository contains an implementation of a CLI tool to compare the performance of delta -and delta-vega hedging of portfolios of different sizes and with different hedging schedules. concurrent.futures is leveraged for parallel execution. This work is related to an assignment from the Aalto University course Financial Engineering I. The data was provided by the course personnel.


Theoretical Background

The source for this section is Options futures and other derivatives, ninth edition by John C. Hull.

The well-known Black-Scholes-Merton model provides a closed-form expression describing the price of a European call option for an underlying admitting the typically-assumed geometric Brownian motion dynamics:

where $t$ denotes the current time, $S_t$ the price of the underlying at time $t$, $E$ the strike price, $T$ the time to maturity, $\sigma$ the volatility, and $r$ the risk-free interest rate. We assume this as the pricing model of call options in this context.

The Greeks are a collection of partial derivatives of the function $C$. We consider the Greeks delta and vega. The delta of a European call option with an underlying that pays no dividends is defined as

In essence, the delta of an option quantifies the sensitivity of the price of the option with respect to change in the underlying. In delta hedging, we compensate for this risk by entering into a short position in the underlying, as we are long in the call(s).

The vega of a European call option with an underlying that pays no dividends is defined as

The vega of an option captures the price risk related to changes in volatility. In delta-vega hedging, one seeks risk neutrality with respect to both delta and vega. Since the vega of the underlying is zero, taking further option positions is required to achieve vega neutrality.


Running Locally

  1. Install the required libraries with pip install -r requirements.txt
  2. For usage information, do python main.py --help, and proceed as you see fit

Results

One may notice that delta-vega hedging is superior to delta hedging as it provides smaller mean squared error for the hedging period with smaller hedging costs.


Note

It turns out the provided data contains erroneous price action information in some of its sheets (e.g., the option price increasing 1000-fold in a single day). As such, with certain sheets the reported mean squared errors explode to non-sensical levels.


Authors

Miro Kaarela (mkaarela), Roope Kausiala (AdmiralBulldog), Tatu Timonen (tatutimonen)