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.
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
The Greeks are a collection of partial derivatives of the function
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.
- Install the required libraries with
pip install -r requirements.txt
- For usage information, do
python main.py --help
, and proceed as you see fit
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.
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.
Miro Kaarela (mkaarela), Roope Kausiala (AdmiralBulldog), Tatu Timonen (tatutimonen)