Abstract

Contents

1 Introduction

1.1 What is an Option?

Stock prices follow stochastic processes in time and an investor has to buy and sell at suitable time points to make a profit. An option on stocks allows an improvement in this process by allowing the investor to buy a stock at less than the market price (call option) or sell a stock at higher than market price (put option). The investor pockets the difference between the actual stock price and this other advantageous price. This advantageous price which is different from the market price of the stock is codified in the option contract and is called the Strike Price. The option has an expiration date beyond which it is null and void. This is also codified in the option contract.

The investor naturally has to buy this option contract from an option seller before he can exercise it and so has to pay a fee for it. This is called the price of the option which is what we want to determine.

Mathematically, let \(K\) denote the Strike price and \(S\) denote the stock price the payoff in case of Call Option is \(\max(S-K, 0)\) and in case of Put option it is \(\max(K-S, 0)\). K is the constant codified in the contract and the S is the stock price at the exercise time. In each case we are taking a max with zero because the option is only exercised if the transaction brings positive payoff. It is after all an “option”.

One detail to note here is that the above simple payoff ie the difference between the Stock Price and the Strike Price is not the only possible payoff function and there can be more complicated payoffs codified in the option contract. Eg the Digital or Binary option has the payoff \(\sign(max(S-K, 0))\) but in this report we concern ourselves with Put and Call options only.

Another relevant detail to note related to Put and Call Options is that the \(S\) in the payoff function ie the Stock Price may not always be the Stock Price at the time of exercise and nor does it have to be the expiration date of the option contract. For a certain flavour of Call/Put options called the European options this is true. In European options the exercise time is fixed and equal to the expiration date of the option. But For American Call/Put options the investor has the freedom to exercise it at any time point up until the expiry date and the payoff will be calculated using the value of \(S\) at that exercise time. For Asian Call/Put options the \(S\) in the payoff may be replaced by the average value of the Stock Price over the lifetime of the option. For Lookback Call/Put options \(S\) may be replaced by max/min of the Stock Price over the lifetime of the option.

In this report the focus is on European Call/Put options only.

1.2 What is Option Pricing

In order to determine the fee or price of option we must take the present value of the expected payoff. For European options the present value can be calculated using the compound interest formula and the risk free rate of interest but the expectation is not possible because the distribution of the stock price at the time of expiration is not known. In the case of American option even the time to exercise is not known.

Black-Scholes-Merton circumvented the problem of unknown distribution by deducing that there must exist a unique price for the option irrespective of the distribution because any other price than this particular unique price will allow an investor to earn riskless profit which the laws of economics would not allow thereby ruling out the validity of any such price. This is known as the risk neutral argument or risk neutral pricing. Interestingly this price could be interpreted as the expectation over some probability distribution which is not the real distribution of the stock price. This other distribution is called the risk-neutral probability distribution. It is an artificial probability distribution.

But indeed there were some assumptions for Black-Scholes formula to be derived. Firstly it can be derived only for European options ie the simple payoff described in the previous section and a fixed time of exercise. So it cannot be derived for American options also. Secondly it also assumes “constant volatlity” of the underlying Stock Price movement. The volatility is a parameter in the Brownian motion governing the Stock Price movement and having it as constant is required to derive the Black-Scholes formula.

Then Cox Ross Rubinstein solved this problem by taking the risk neutral pricing argument onto a discrete time scale instead of continuous. Also they approximate the logarithm of the stock price to be a random walk ie take only two possible values at each new time step thereby generating a binomial tree. This tree will have \(2^n\) leaves after \(n\) time steps ie it will grow exponentially. Then they start to back-calculate the option price at each node starting from the leaf nodes where the payoffs are known one time step at a time using the risk neutral pricing argument. This way they obtain the option price at each node including the root node where it is required.

The only problem is that of the exponential number of calculations required but that is not an issue because of the random walk is assumed to increase or decrease by equal increments (but not necessarily with equal probabilities). This ensures that there are actually much less than \(2^n\) unique leaves for any value of n. In fact there are only \({n+1}\) unique leaves. Thus the tree grows linearly and not exponentially and the computation is manageable for large \(n\). We can see this. Let \(n\) be the number of time steps and let \(n_1\) be the number of up moves of the stock price and the \(n_2\) be the number of down moves of the stock price and let \(S_0\) be the initial value of the stock then after \(n\) steps the stock price is \({S_0}{u^{n_1}}{d^{n_2}}\) where \(u\) and \(d\) are the factors by which the stock Price can get multiplied in the up or down direction at each step. Now as \({n_1}+{n_2}=n\) the stock price after \(n\) steps is uniquely determined by \(n_1\) and \(n_1\) can take only \(n+1\) unique values from \(0\) to \(n\). So the number of unique stock prices after \(n\) steps is \(n+1\).In effect the particular order of the up and down moves do not matter but only their total numbers matter. This is called the “recombination” property of the binomial tree.

This also enables the pricing of American options because we can compare the value of the European option at each node with the actual payoff by exercising at that time point and whichever is bigger can be taken to be the value of that American option at that node.

1.3 Extending the tree method to non-constant volatility

There have been many methods developed to price options when the constant volatlity assumption does not hold because in such a scenario the above methods fail. Particularly in the tree method the value of \(u\) and \(d\) above will not remain constant. Higher volatility will mean the Stock price jumps can be bigger. Similarly lower volatility levels will mean stock price jumps can be smaller in magnitude. One way is to extend the tree method above to work with some modifications on the tree. In this project I consider the volatlity to follow a two-state Markov chain instead of remainng a constant value. In such a situation the number of possible states in the tree above increases by a lot however the principle of risk neutral pricing still works at each node and can be used to do our pricing. In fact there is also significant “recombination” in this tree that keeps the computing complexity at much less than exponential. We can see this as follows. Suppose there are a total of \(n\) time steps where \(n_H\) steps were spent in a high volatility state and \(n_L\) steps were spent in a low volatility state so \({n_H}+{n_L}=n\). Also let the magnitude of up move factor and down move factor in the high volatility regime be \(u_H\) and \(d_H\). Similarly let \(u_L\) and \(d_L\) denote the corresponding factors in the low volatility regime. Naturally \({u_H}>{u_L}>1\) and \({d_H}<{d_L}<1\) as higher volatility means higher jumps in stock price. However \(n_1+n_2=n_H\) and \(n_3+n_4=n_L\) where \(n_1\) and \(n_2\) denote the number of up and down moves in the high volatility state and \(n_3\) and \(n_4\) denote the up and down moves in the low volatility state and \(n_1+n_2+n_3+n_4=n\). Again here the order of high and low regimes will not matter and only their total numbers will matter and inside each state the the order of up and down moves won’t matter only their total numbers will matter thus achieving significant recombination.

2 Algorithm

In order to represent the state of the system after \(n\) time steps we need the four numbers \(n_1\), \(n_2\), \(n_3\) and \(n_3\). In fact only the first three suffice as then the fourth one is uniquely determined. Equivalently, \(n_H\) along with \(n_1\) and \(n_2\) are also sufficient to represent the state. For a particular value of \(n\), \(n_H\) can take \(n+1\) values from \(0\) to \(n\) and for each value of \(n_H\) a particular state can be represented by the ordered pair \((n_1,n_3)\) where \(n_1\) can take \(n_H+1\) values from \(0\) to \(n_H\) and \(n_3\) can take \(n_L+1\) values from \(0\) to \(n_L\). So for a particular value of \(n_H\) a matrix of dimensions \(n_H+1,n_L+1\) can represent all states. So we can represent all possible states for a given \(n\) by a list of \(n_H+1\) matrices each corresponding to a particular value of \(n_H\). To incorporate the two volatility states we can have two such lists.

With the above structure in place to store all possible states at each value of \(n\) we just have to start from the leaf nodes exactly as the CRR pricer works. The only difference here is that from each node there are four nodes emanating instead of two because the there are two possible states the Markov chain can take besides the up and down move in the stock price. So instead of the binomial we have a double bibomial tree and the four possible probablities are simply the old risk neutral artificial probabilities multiplied by the relevant transition probability of the Markov chain.

3.1 Constant Volatlity

First we price the option with following set of parameter values for increasing n where n is the number of time steps. We obtain the following values as plotted below. The option price calculated using Black-Scholes formula is 2.133.

library(EBImage)
library(imager)
## Loading required package: magrittr
## 
## Attaching package: 'imager'
## The following object is masked from 'package:magrittr':
## 
##     add
## The following objects are masked from 'package:EBImage':
## 
##     channel, dilate, display, erode, resize, watershed
## The following objects are masked from 'package:stats':
## 
##     convolve, spectrum
## The following object is masked from 'package:graphics':
## 
##     frame
## The following object is masked from 'package:base':
## 
##     save.image
library(jpeg)
img1 = readImage("cv convergence.jpeg")
image(img1)
## Missing frame index for an image stack, assuming 'i = 1'

For large n the values hover around the correct price.

3.2 Constant Volatility (Runtime)

We see log of runtime has following graph versus number of time steps. This is concave shape so it is better than exponential.

img2 = readImage("cv runtime.jpeg")
image(img2)
## Missing frame index for an image stack, assuming 'i = 1'

3.3 Checking the Option price under Non-Constant Volatility

For initial Volatility High and the following parameters we obtain Option price from simulation as 14.4 to which our pricer converges.

img3 = readImage("ncv convergence high.jpeg")
image(img3)
## Missing frame index for an image stack, assuming 'i = 1'

For initial Volatility Low and the following parameters we obtain Option price from simulation as 5.64 to which our pricer converges.

img4 = readImage("ncv convergence low.jpeg")
image(img4)
## Missing frame index for an image stack, assuming 'i = 1'

3.4 Runtime with Non Constant Volatlity

We see log of runtime has following graph versus number of time steps. This is concave shape so it is better than exponential.

img5 = readImage("ncv runtime.jpeg")
image(img5)
## Missing frame index for an image stack, assuming 'i = 1'

4 Plan ahead

  1. Extend to other types of options such as American, Asian and Lookback options.
  2. Understand dependence of Option price on underlying parameters by varying the parameters.
  3. Check robustness of the pricer when underlying model is altered.

References