CARL PAULIN - DIVA PORTAL
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Option pricing models: A comparison between models with constant and stochastic volatilities as well as discontinuity jumps Carl Paulin (calle.paulin@outlook.com) Maja Lindström (majaumea@gmail.com) June 10, 2020 Thesis presented for a Bachelor degree in mathematics Supervisor Examiner Markus Ådahl Lisa Hed markus.adahl@umu.se lisa.hed@umu.se
Abstract The purpose of this thesis is to compare option pricing models. We have investigated the constant volatility models Black-Scholes-Merton (BSM) and Merton’s Jump Diffusion (MJD) as well as the stochastic volatility models Heston and Bates. The data used were option prices from Microsoft, Advanced Micro Devices Inc, Walt Disney Company, and the S&P 500 index. The data was then divided into training and testing sets, where the training data was used for parameter calibration for each model, and the testing data was used for testing the model prices against prices observed on the market. Calibration of the parameters for each model were carried out using the nonlinear least-squares method. By using the calibrated parameters the price was calculated using the method of Carr and Madan. Generally it was found that the stochastic volatility models, Heston and Bates, replicated the market option prices better than both the constant volatility models, MJD and BSM for most data sets. The mean average relative percentage error for Heston and Bates was found to be 2.26% and 2.17%, respectively. Merton and BSM had a mean average relative percentage error of 6.90% and 5.45%, respectively. We therefore suggest that a stochastic volatility model is to be preferred over a constant volatility model for pricing options. i
Sammanfattning Syftet med denna tes är att jämföra prissättningsmodeller för optioner. Vi har undersökt de konstanta volatilitetsmodellerna Black-Scholes-Merton (BSM) och Merton’s Jump Diffusion (MJD) samt de stokastiska volatilitetsmodellerna Heston och Bates. Datat vi använt är optionspriser från Microsoft, Advanced Micro Devices Inc, Walt Disney Company och S&P 500 indexet. Datat delades upp i en träningsmängd och en test- mängd. Träningsdatat användes för parameterkalibrering med hänsyn till varje modell. Testdatat användes för att jämföra modellpriser med priser som observerats på mark- naden. Parameterkalibreringen för varje modell utfördes genom att använda den icke- linjära minsta-kvadratmetoden. Med hjälp av de kalibrerade parametrarna kunde priset räknas ut genom att använda Carr och Madan-metoden. Vi kunde se att de stokastiska volatilitetsmodellerna, Heston och Bates, replikerade marknadens optionspriser bättre än båda de konstanta volatilitetsmodellerna, MJD och BSM för de flesta dataseten. Medelvärdet av det relativa medelvärdesfelet i procent för Heston och Bates beräknades till 2.26% respektive 2.17%. För Merton och BSM beräknades medelvärdet av det relativa medelvärdesfelet i procent till 6.90% respektive 5.45%. Vi anser därför att en stokastisk volatilitetsmodell är att föredra framför en konstant volatilitetsmodell för att prissätta optioner. ii
Contents 1 Introduction 1 2 Theory of financial mathematics 2 2.1 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 Pricing Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.3 Stochastic calculus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.4 Black-Scholes-Merton model . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.5 Put-Call Parity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.6 Volatility smiles and skews . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.7 Heston model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.8 Merton’s Jump Diffusion model . . . . . . . . . . . . . . . . . . . . . . . . 9 2.9 Bates model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3 Method 10 3.1 Data selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2 Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4 Results 14 4.1 Microsoft Corporation (MSFT) . . . . . . . . . . . . . . . . . . . . . . . . 14 4.2 Advanced Micro Devices, Inc (AMD) . . . . . . . . . . . . . . . . . . . . . 16 4.3 Walt Disney Company (DIS) . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.4 S&P 500 Index (SPX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5 Discussion and conclusion 22 References 24 A Calibrated parameters A-1 B More results B-3
1 Introduction An option is an agreement between an option exhibitor and an option holder that gives the holder the right, but not the obligation, in the future to buy or sell an underlying asset (often a stock) at a predetermined price. Pricing options can be very cumbersome due to the fact that the underlying stock is uncertain in the future. This measure of uncertainty is called volatility and describes how much the stock price varies over time and gives an intuition about the risk of the underlying asset. Different models can be used to describe the volatility and therefore the price of an op- tion. The most simple and popular one which is the foundation when modeling how stock prices move is the Geometric Brownian Motion (GBM) which leads to an option pric- ing formula called Black-Scholes-Merton (BSM) model. This model assumes a constant volatility and that the price of the underlying stock is log-normal (Gaussian) distributed. These assumptions are not optimal since it leads to a phenomenon called volatility smiles or skews in option prices which arises because of the market’s fear against more extreme events which grew after the crash in 1987 [1]. In the Gaussian distribution, the tails of the distribution are much smaller than in reality where the likeliness to observe these more extreme events are larger than predicted, this should produce fatter tails in the distribution. Another major disadvantage with GBM, and therefore also the BSM model, is that stock prices do not always change continuously which BSM assumes. We may have cer- tain events on the stock market (which we can not foretell) that affects the stock prices directly and give us so called discontinuity jumps. We will in this thesis provide differ- ent model extensions of the GBM including stochastic volatility as well as discontinuity jumps and compare these models to investigate what improvements can be done to more accurately price options. Due to these deficiencies in the BSM, it is interesting to see if other models could better capture the market. Therefore, the purpose of this thesis is to compare different option pricing models and investigate how good the models can replicate market data. The thesis is structured in such a way that it first introduces the subject of financial mathematics and the different option pricing models, then introduces the calibration problem of pricing options, and lastly, the results are presented. If one is proficient in the subject of financial mathematics one could skip the first parts and start at section 3 for the calibration or just jump directly to the conclusion for a brief overview of the thesis. 1
2 Theory of financial mathematics 2.1 Options European call options are options that give the holder the right, but not the obligation, to buy one share of the underlying asset at a predetermined price (strike price) and expiration date (or maturity date) [2]. If the price of the underlying asset is above the strike price at expiration the holder will exercise the option and buy one share of the underlying asset to the price of the strike. But if the value of the asset is below the strike price at expiration, the holder of the option will not exercise it because the option has no value. Therefore, the price of a European call option [3] at expiration day T is C(T ) = max[S(T ) − K, 0], (1) where K is the strike price and S(T ) is the stock price at expiration. On the other hand, European put options gives the holder the right, but not the obliga- tion, to sell one share of the underlying asset [2]. If the price of the underlying asset is below the strike price at expiration the holder will exercise the option and sell one share of the asset to the price of the strike. But if the value of the asset is above the strike price at expiration, the holder of the option will not exercise it because it has no value. The price of a European put option at expiration [3] is therefore P (T ) = max[K − S(T ), 0]. (2) We will work with both European options and American options. Compared to Euro- pean options, American options can be exercised at any time before the expiration date. However, the value of an American call option will have the same value as a European call option because it will never optimal to exercise an American call option early given that the risk-free rate is positive and assuming no dividend is paid out [2]. This can be viewed in further detail in section 2.5. Since American options and European options can be treated alike with these two assumptions, we can use the same theory for both of them. Therefore, we have from now on only considered the theory for European call options, however, one has to remember that this theory can be applied to American options as well. 2.2 Pricing Options When we have a complete market that also is arbitrage-free [4], options can be priced at any time t using the risk-neutral valuation formula [5] Vt (K) = e−r(T −t) E Q [V (T )], (3) 2
where Vt (K) is the price of the option with strike price K, r is the constant risk-free rate, V (T ) is the price of the option at expiration T, and E Q is the expectation under the risk-neutral measure (Q-measure) which can be calculated as Z ∞ Q E [V (T )] = V (T )fd (ST )dST , (4) 0 where fd (ST ) is the risk-neutral density function of the underlying asset, S, at expiration T [5]. This way of calculating option prices will always work, no matter how complex the model is. However, it could be very difficult to find the density function and it could be computationally expensive depending on the complexity of the model [1]. Therefore we often choose to work with the less frequently used characteristic function which is the Fourier transform of the density function [6] defined as Z ∞ f (φ) = eiφST fd (ST )dST (5) −∞ where i is the unit imaginary number and φ is the characteristic function variable. The Fourier transform [7] that is applied when finding the characteristic function as described above is very commonly used when we want to transfer a function from one domain to another domain (often from time to frequency). This is a very powerful tool in for example statistics and for solving differential equations. The Fourier transform of a function g that is squared integrable can be defined as Z ∞ G(w) = g(t)eiwt dt (6) −∞ and the original domain can then be recreated by its inverse which is defined as Z ∞ 1 g(t) = G(w)e−iwt dw, (7) 2π −∞ where t and w represents the time and angular frequency, respectively. If the characteristic function of the model is known, the fast Fourier transform, which is an efficient algorithm for calculating a discrete Fourier transform, can be used to value European call options. This method was introduced by Carr and Madan in 1999 [6] as follows e−αk ∞ −iuk Z Ct (k) = e Ψt (u)du π 0 (8) e−r(T −t) f (u − (α + 1)i) Ψt (u) = 2 , α + α − u2 + ui(2α + 1) 3
where Ct (k) is the price of a European call option where k = ln(K), α is the damping factor and u is the integration variable. To find this expression using the Fourier transform the authors of [6] multiplies the European call option price with an exponential factor as follows, ct (k) = eαk Ct (k). (9) If α > 0 the expression is square-integrable in k for real values. Then the authors use Fourier transform on Equation (9) and get from Equation (6), Z ∞ Ψt (u) = eiuk ct (k)dk. (10) −∞ By then using the inverse Fourier transform of Equation (7) on Equation (10) together with Equation (9), European call option prices can be written as ∞ e−αk Z Ct (k) = e−iuk Ψt (u)du. (11) π 0 This equation is true since the imaginary part of Ψt (u) is odd and the real part is even. Then an analytical expression of Equation (10) in terms of the characteristic function is found to be e−r(T −t) f (u − (α + 1)i) Ψt (u) = . (12) α2 + α − u2 + ui(2α + 1) 2.3 Stochastic calculus To be able to price options we need a model that exhibits the same stochastic behavior as a stock as well as giving us the deterministic growth (or decline) that we generally see on the stock market. One way to do this is to use diffusion processes and stochastic differential equations. From [4] we have that a stochastic process X is a diffusion process if its dynamics can be approximated as a stochastic difference equation X(t + ∆t) − X(t) = µ(t, X(t))∆t + σ(t, X(t))Z(t), (13) where Z(t) a normally distributed interference term which only depends on what happens at that point of time, t, whereas µ and σ are deterministic functions. The inherent understanding is that, over a time interval [t, t + ∆t], the diffusion process X(t) is piloted by two separate terms. The first one is the drift term µ(t, X(t)), and can be thought of 4
as a deterministic velocity. Secondly, the term σ(t, X(t))Z(t) is a stochastic Gaussian disturbance term, weighted by the diffusion function σ. This means that we have a model for financial assets using a deterministic and a stochastic term, and intuitively one can think of the asset as having a known drift term that sets the trend of the asset, as well as having a noise term that gives us the variability seen in, for example, stock prices. To model the Gaussian disturbance term, Z(t), in Equation (13) we will make use of the Wiener process. In [8] they define it and say that a stochastic process W is a Wiener process if it possesses the following characteristics 1. W (0) = 0 2. The process W has independent increments, i.e if z < q ≤ s < t then W (z) − W (q) and W (s) − W (t) are independent stochastic variables. 3. For q < s the stochastic variable W (q) − W (s) has the Gaussian distribution √ N [0, q − s]. 4. W has continuous trajectories. Replacing the Gaussian disturbance term in Equation (13) with the Wiener process yields X(t + ∆t) − X(t) = µ(t, X(t))∆t + σ(t, X(t))∆W (t), (14) where ∆W (t) is defined by ∆W (t) = W (t + ∆t) − W (t). From the definition of the Wiener process, we know that it is continuous which means intuitively that if we were to draw the process we would never have to lift our pen. However, if we were to look at the curve of W (t) on smaller and smaller scales, it would become erratic, so if we wanted to try to fit a tangent to the curve we would not be successful. This tells us an important fact about the Wiener process. The Wiener process is nowhere differentiable. So in Equation (14) we can not divide by ∆t and let it go towards zero i.e take the derivative, instead we let ∆t go towards zero without dividing with it which gives us the expression dX(t) = µ(t, X(t))dt + σ(t, X(t))dW (t), (15) X(0) = x0 , and by writing Equation (15) on integral form we end up with the following integral equation Z t Z t X(t) = x0 + µ(s, X(s))ds + σ(s, X(s))dW (s). (16) 0 0 Generally, we will refer to Equation (15) since it has a more intuitive explanation com- pared to the corresponding integral form. Equation (15) is a general form for the move- ment of a financial asset and we will now work with different ways to model the drift (µ) 5
and diffusion (σ) functions in Equation (15). Starting with the most simple case, Geomet- ric Brownian Motion (GBM) which is a very important basic concept when determining stock prices and their movements. The GBM assumes that the drift and diffusion (which also can be called volatility when we talk about stock price movements) are constant functions and can be modeled as [4] dX(t) = µX(t)dt + σX(t)dW (t), (17) X(0) = x0 , where W (t) is the Wiener process described above. The solution to Equation (17) is 1 2 )t+σW (t) X(t) = x0 e(µ− 2 σ . (18) 2.4 Black-Scholes-Merton model The Black-Scholes-Merton (BSM) model is a Nobel memorial prize-winning (1997) model that can be derived from the GBM and is used to determine the price of European call options. The BSM model, published in [9], requires some assumptions which, in a way, explain a "perfect" market. Firstly it is assumed that the price of the underlying stock is log-normal (Gaussian), secondly, there are no dividends as well as no transaction costs, thirdly it is assumed that we have a market where risk-free assets can be traded, and lastly it is assumed that we do not have arbitrage opportunities which would prevent us from making a profit that is risk-free. The bond (B) and stock (S) movements are on the following form dB(t) = rB(t)dt, dS(u) = µS(u)du + σS(u)dW (u), (19) S(t) = s, where µ is the constant drift and σ is the constant volatility. This, together with Equa- tions (1), (4), (18) and some elementary calculations that can be seen in [9] gives us the BSM equation which tells us the theoretical price of a European call option at time t with expiration date T and strike price K, C(t, s) = sN [d1 (t, s)] − e−r(T −t) KN [d2 (t, s)], 1 s 1 d1 (t, s) = √ [ln( ) + (r + σ 2 )(T − t)], (20) σ T −t K 2 √ d2 (t, s) = d1 (t, s) − σ T − t, 6
where N is the cumulative distribution function for the normal distribution with mean 0 and standard deviation 1. 2.5 Put-Call Parity Above, we have shown that the BSM model can easily be used to price European call options with expiration date T and strike price K. The corresponding European put option, with the same expiration date and strike, can be priced as well by using the so-called put-call parity which was introduced by Hans R. Stoll in 1969 [10]. It tells us the relationship between prices of European put versus call options and looks as follow P (t, s) = Ke−r(T −t) + C(t, s) − s, (21) where we assume a zero dividend yield and P (t, s) is the value of a European put option and C(t, s) is the value of a European call option. For a European call option we have that the value of the option at t = 0 is C ≥ max(S0 − Ke−rT , 0), (22) since C ≥ 0, because the worst thing that could happen to a European call option is that it is worthless at expiry. An American call option is like a European call option but has the opportunity to be exercised early. Therefore, the value of an American call option, c, is greater or equal to the value of the European call option, C, that is c ≥ C, where we assume that there are no dividends. So we also have that c ≥ max(S0 − Ke−rT , 0). (23) Assuming positive risk-free rate, r, and T > 0, it follows that c > S0 − K. So c is always larger than the intrinsic value before maturity. We can, therefore, conclude that it is never optimal to exercise an American call option early, which follows from the put-call parity, and we have that C = c [2]. From now on we will treat American call options and European call options equally and the put-call parity will hold as well. 2.6 Volatility smiles and skews The implied volatility is the market’s prognosis of a probable movement in a security’s price [2]. If we knew the option prices we could obtain the implied volatilities from the BSM equation. The BSM model assumes constant volatility which means that if we were to plot the implied volatility against multiple strike prices for the same expiration date we would get a straight line. But in reality, this is not the case. If we plot the implied 7
volatility against the strikes of real market data we will often observe so-called volatility smiles or skews. These appear because of the markets fear against sudden extreme price changes. Before the crash in 1987, we did not have these smiles or skews in the market and therefore the BSM model did a very good job replicating option prices. However, today the model is not optimal since it does not consider these volatility smiles and skews that we observe on the market [1]. Two plots of implied volatility versus strike prices can be seen in Figure 1 where the left picture shows market data and the right picture shows how the market data are predicted by the BSM model. As can be seen, we observe a volatility skew in the market data which the BSM model fails to capture and we will therefore try some other models that take these into account. 0.6 1.4 1.2 0.55 1 0.5 0.8 Implied Volatility Implied Volatility 0.45 0.6 0.4 0.4 0.2 0.35 0 0.3 -0.2 0.25 -0.4 0.2 -0.6 80 100 120 140 160 180 200 220 80 100 120 140 160 180 200 220 Strike Strike (a) (b) Figure 1 – Figure shows implied volatility plotted against strike prices, showing the volatility skew as seen on the market (a) and as predicted by the BSM pricing model (b). 2.7 Heston model The most well-known stochastic volatility model is the Heston model (1989) which un- like the BSM model assumes non-constant volatility. In this model, we also take into account the mean reversion rate and the leverage effect [11] which describes how an as- set’s volatility is correlated with its returns. The Heston model [12] can be described as p dS(t) = µS(t)dt + V (t)S(t)dW1 , p dV (t) = κ(θ − V (t))dt + σ V (t)dW2 , (24) ρdt = dW1 · dW2 , 8
where S(t) is the stock price at time t, µ is the constant drift, V (t) is the variance of the stock, θ is the long run price variance, κ is the mean reversion rate back to θ and σ is the volatility of the variance. The last row shows that we have a correlation between the two Wiener processes, W1 and W2 , with correlation parameter ρ which can vary between -1 and 1, with this we consider the leverage effect which, in the market, is often observed to be negative. If the return of the stock goes up the volatility goes down and vice versa. We want to investigate if we can calibrate these parameters to be able to replicate option prices. To calculate the prices of European call options using the Carr and Madan method, Equation (8), we use the risk-neutral characteristic function which is given in [12] fHeston (φ) = exp C + DV0 + iφln(S(t)) , κθ h 1 − ged(T −t) i C = riφ(T − t) + 2 (κ + λV olRisk − ρσiφ + d)(T − t) − 2ln , σ 1−g κ + λV olRisk − ρσiφ + d 1 − ed(T −t) D= , (25) σ2 1 − ged(T −t) κ + λV olRisk − ρσiφ + d g= , κ + λV olRisk − ρσiφ − d p d = (κ + λV olRisk − ρσiφ)2 + σ 2 (iφ + φ2 ), where r is the risk-free rate, φ=u − (α + 1)i is the characteristic function variable and λV olRisk is the volatility risk premium which is the additional reimbursement stockhold- ers require in order to hold a security that is unstable. However, for our calculations we assume it to be zero. 2.8 Merton’s Jump Diffusion model On the stock market we may observe discontinuities which can be a consequence of unexpected events that are caused by the arrival of new information. The BSM and the Heston model do not take these events into account and therefore an extension of the BSM can be done to include discontinuities or jumps. One way to do this is to use an extension of BSM called Merton’s Jump Diffusion (MJD) model [14] which assumes that the jumps are random and lognormal distributed. The risk-neutral process can be modeled as dS(t) = (r − λk)S(t)dt + σS(t)dW (t) + kS(t)dq(t), (26) where S(t) is the stock price at time t, r is the risk-free rate, dq is a Poisson process (in- dependent of the Wiener process) with an intensity of the random jump, λ, and random 9
percentage jump size conditional on the jump occuring, k. k denotes the mean of k. As can be seen, the MJD model approaches to the BSM model if λ=0. The characteristic equation of the MJD model [14], which is used to price European call options using Equation (8), is, for the risk-neutral measure given by (iφ)2 h i 2 1 fM erton (φ) = fBS (φ)exp λ(T − t)(1 + k) (1 + k)iφ eδ − 2 iφ+ 2 − 1 − λ(T − t)kiφ , h σ2 i φ2 σ 2 fBS (φ) = exp iφ ln(S(t)) + (r − )(T − t) − (T − t) , 2 2 (27) where δ is the standard deviation of ln(1 + k) and T is the expiration date. 2.9 Bates model In 1996, David S. Bates introduced the Bates model [15] where he takes into account both discontinuity jumps and stochastic volatility by combining the MJD model with the Heston model, p dS(t) = (µ − λk)S(t)dt + V (t)S(t)dW1 + kS(t)dq(t), p dV (t) = κ(θ − V (t))dt + σ V (t)dW2 , (28) ρdt = dW1 · dW2 . The characteristic equation for the risk neutral measure of the Bates model [15] is fBates (φ) = exp C + DV0 + iφln(S(t)) · h 2 − 12 iφ+ (iφ)2 i (29) · exp λ(T − t)(1 + k) (1 + k)iφ eδ 2 − 1 − λ(T − t)kiφ , where C and D are given in Equation (25). 3 Method 3.1 Data selection We used three different stocks and one index in the calibration procedure to test how well each method can replicate the market on different data sets containing option prices. The stocks used were Microsoft Corp (MSFT), Advanced Micro Devices, Inc (AMD) and 10
Walt Disney Company (DIS) which are all American options. The index we used, S&P 500 (SPX), is the same as a European option. These data sets were chosen because they are liquid which means that they are traded frequently such that the bid and ask prices agree quite well. The data we collected from the stocks and index was multiple maturity dates, ranging from 2 months up to 16 months in the future, strikes for all of the maturity dates as well as option call prices for each strike. A data set corresponds to one day of option data, we then used one data set to calibrate a set of parameters. 3.2 Calibration To be able to use the different models described above to price the index and Ameri- can call options we need to calibrate the parameters in each model by using historical data found on the market. The goal is to find parameters that are consistent with market prices. In the calibration process we used the MATLAB functions optByMertonFFT, optByHestonFFT and optByBatesFFT which applies the calculation method given by Carr and Madan [6], Equation (8), by using the characteristic functions in Equations (25), (27) and (29) for each model as well as using Fast Fourier transform (FFT). We want the cal- ibrated parameters to give prices that are as close as possible to the prices observed on the market. They were therefore estimated by minimizing the difference between market and model option prices using the nonlinear least-squares method. To do this we used the function lsqnonlin in MATLAB that solves the nonlinear least-squares curve-fitting problem of the form minx kf(x)k22 = minx f1 (x)2 + f2 (x)2 + ... + fn (x)2 , (30) where x is the model parameters and f(x) is the vector f(x) = f1 (x), f2 (x), ..., fn (x) , (31) containing the difference between the model and market call option price given a strike K and maturity T , fi (x) = Ct (K)model − Ct (K)market . (32) Since lsqnonlin looks for solutions that minimize the sum of the squared functions for all values of x we need to provide some lower and upper bounds such that we only get parameters that are compatible in an economical sense. For σ, V0 and θ we would expect the values to be between 0 and 1, since the volatility cannot be negative and a value larger than 1 is not expected (but possible) since we use an index and stocks that are rather stable, in the sense that the price or value for a share is not expected to change more than 100%. For the mean reversion rate, κ, the value should be larger than 0 and does not need an upper bound since it only tells us the speed of which the stock 11
will revert to the long run variance θ. The correlation between the Wiener processes, ρ, should be between -1 and 1 to make mathematical sense, since two processes cannot be more correlated or uncorrelated than 100%. However, on the market one usually sees that ρ is negative, which means that when the volatility goes up, the share price goes down. The risk-free rate, r, used in the calculations was the US 10 year treasury rate that varied depending on which date we downloaded the option data. The dividend was assumed to be zero for all options. The annual jump frequency, λ, is assumed to be able to take values between 0 and infinity. The mean of the magnitude of the jump, k̄, and δ is assumed to be between 0 and 1, which is based on the results by Bates in [15]. For each market data collected we got a new set of parameters which can be found in Appendix A. The optimization technique lsqnonlin is a local optimizer which means that it finds a solution that is smaller or equal than other points around it, but there might exist other minima that are not found. Using global optimization, one finds the point that is the smallest of all points at the cost of computation. There exist several arguments for both methods, however, we chose to use a local optimizer since they are often easier and faster. Nonetheless, a trade-off for using a local optimizer is that it is strongly dependent on the starting parameters used, which means that we can find multiple different solutions for the optimization Equation (30). We solved this problem by studying other papers with similar calibrations, for example [16], [17] and [18]. We then used these same initial parameters and boundaries for all data sets and models to achieve results that could be compared to each other. These parameters can be seen in Table 1. Table 1 – Initial values for parameters Parameters σ V0 θ κ ρ λ δ k̄ Value 0.1 0.05 0.1 1 -0.2 5 0.8 0.08 A comparison between four different parameters with different values can be seen in Fig- ure 2, where one can see what effect different parameters can have on the price. We can see that both ρ and k̄ have the smallest impact on the price, while σ and θ have a larger impact on the variation in the price. 12
15 15 =1 =0 =-0.5 =-1 10 10 Price Price 5 5 0 0 20 25 30 35 40 45 50 55 60 20 25 30 35 40 45 50 55 60 Strike Strike (a) (b) 15 15 =0.1 =0 =0.5 =0.2 =1.0 =0.5 =1.5 =0.75 10 10 Price Price 5 5 0 0 20 25 30 35 40 45 50 55 60 20 25 30 35 40 45 50 55 60 Strike Strike (c) (d) Figure 2 – A comparison between four different parameters and their effect on an option call price. It shows that the volatility σ and the long run variance θ have a large variation in price between different parameters. The mean of the magnitude of the jump k̄ as well as the correlation between Wiener processes ρ have a lower impact on the option price. After the calibration, we used the obtained parameters to price the index and American call options using the Carr and Madan method for the different models. Remember that the Carr and Madan method can be used to price both European call options and American call options since these can be treated the same under the assumptions of a positive risk-free rate and that the stocks pay no dividends. The data set we used when pricing the options was a completely new set of data that we did not use during the calibration. We did this practically by leaving out some of the data before calibrating the parameters, this set of data was then used when pricing the options and is called the test set. The data used when calibrating the parameters is called the training set. This method of leaving out some of the data and use this for prediction is used frequently in machine learning which is a very effective problem-solving method used in multiple fields. 13
4 Results We can now compare the prices obtained by the BSM model, Heston model, MJD model and Bates model with the prices found on the market for different stocks to see how well the methods performed in real life and how the methods performed in comparison to each other. 4.1 Microsoft Corporation (MSFT) For the Microsoft options, we have collected data from February 27, 2020 and February 28, 2020. The option prices for these data sets calculated using the different models for maturity date March 19, 2021, can be seen in Figure 3. From these figures, we can see that the BSM and Merton models, price the options higher than what is observed on the market. However, we can see that both Bates and Heston follow the market rather well. This can also be seen in Table 2 and 3, where Bates and Heston both had low average relative percentage error (arpe) while Merton and BSM had a rather high arpe. 55 55 BSM BSM 50 Bates 50 Bates Heston Heston Merton Merton 45 45 Market Market 40 40 35 35 Price Price 30 30 25 25 20 20 15 15 10 10 120 130 140 150 160 170 180 190 110 120 130 140 150 160 170 180 Strike Strike (a) (b) Figure 3 – European call option prices collected 27/02/2020 (a) and 28/02/2020 (b) of the Microsoft data plotted against the strike prices for each model at maturity date March 19, 2021. 14
Table 2 – The root mean square error (rmse), the average absolute error as a percentage of the mean price (ape), the average absolute error (aae) and the average relative percentage error (arpe) of the MSFT stock data collected 27/02/2020 for the different models. Model rmse ape aae arpe (%) Heston 0.426 0.0121 0.338 1.59% Bates 0.414 0.0121 0.339 1.55% Merton 1.15 0.0322 0.903 5.31% BSM 0.916 0.0256 0.717 4.22% Table 3 – The root mean square error (rmse), the average absolute error as a percentage of the mean price (ape), the average absolute error (aae) and the average relative percentage error (arpe) of the MSFT stock data collected 28/02/2020 for the different models. Model rmse ape aae arpe (%) Heston 0.649 0.0160 0.470 1.59% Bates 0.656 0.0156 0.457 1.57% Merton 1.32 0.0407 1.19 4.12% BSM 1.25 0.0349 1.024 3.10% This could be explained somewhat by looking at the implied volatility plot for the dif- ferent pricing models in Figure 4 which shows the data collected on 27/02/2020. In this figure, we can see a skew in the market data that is clearly visible which the stochastic volatility models seem to capture while the constant volatility model does not. From this one could conclude that Bates or Heston would fit the market best, which is also what we got. The Merton model is the worst performing one of the four tested on the MSFT data, even though it is a more complicated model than BSM, it still is not able to perform better. 15
0.3 BSM Bates 0.29 Heston Merton Market 0.28 Implied Volatility 0.27 0.26 0.25 0.24 120 130 140 150 160 170 180 190 Strike Figure 4 – Implied volatility for Microsoft using BSM, Heston, Bates, Merton pricing models for data collected on 27/02/2020. 4.2 Advanced Micro Devices, Inc (AMD) For the AMD options we have collected data from February 27, 2020 and February 28, 2020. The option prices for these data sets calculated using the different models for maturity date March 19, 2021, can be seen in Figure 5. In Figure 5(a) we can see that Bates and Heston follow the market better than BSM and Merton, while in Figure 5(b) all the pricing models follow the market very well. However, in Tables 4 and 5 we can once again see that Bates and Heston are the two best performing models, where Heston is the best one for the data collected on 27/02/2020 and Bates is the best for the second data set collected on 02/03/2020. This could mean that either Bates or Heston is sufficient for pricing the AMD stock, but it depends on the data which one fits the market best. 16
30 35 BSM BSM Bates Bates Heston 30 Heston 25 Merton Merton Market Market Price 25 20 20 Price Price 15 15 10 10 5 5 0 0 20 30 40 50 60 70 80 10 20 30 40 50 60 70 Strike Strike (a) (b) Figure 5 – European call option prices collected 27/02/2020 (a) and 28/02/2020 (b) of the AMD data plotted against the strike prices for each model at maturity date March 19, 2021. Table 4 – The root mean square error (rmse), the average absolute error as a percentage of the mean price (ape), the average absolute error (aae) and the average relative percentage error (arpe) of the AMD stock data collected 27/02/2020 for the different models. Model rmse ape aae arpe (%) Heston 0.389 0.0239 0.314 2.51% Bates 0.385 0.0280 0.367 4.13% Merton 0.775 0.0529 0.695 10.7% BSM 0.703 0.0477 0.627 9.53% Table 5 – The root mean square error (rmse), the average absolute error as a percentage of the mean price (ape), the average absolute error (aae) and the average relative percentage error (arpe) of the AMD stock data collected 02/03/2020 for the different models. Model rmse ape aae arpe (%) Heston 0.339 0.0196 0.276 2.48% Bates 0.338 0.0193 0.272 2.29% Merton 0.471 0.0303 0.426 4.23% BSM 0.472 0.0300 0.422 4.05% The implied volatility for the different models plotted against the strike price for the first data set can be seen in Figure 6. As for the Microsoft data, the market seems to have a skew that Heston and Bates can capture and therefore give better pricing models than Merton and BSM. Here we can observe that both Bates and Heston give lower implied 17
volatility than what is observed on the market, this means that the two models will value the option lower than the market. We can also see that Heston is the one that closest follows the implied volatility, which could mean that it will best match the market. 0.75 BSM Bates Heston 0.7 Merton Market Implied Volatility 0.65 0.6 0.55 0.5 20 30 40 50 60 70 80 Strike Figure 6 – Implied volatility for AMD using BSM, Heston, Bates, Merton pricing model for data collected on 27/02/2020. 4.3 Walt Disney Company (DIS) For the DIS options, we have collected data from February 28, 2020 and March 2, 2020. The option prices for these data sets calculated using the different models for maturity date January 15, 2021, can be seen in Figure 7. In these figures, we once again see that BSM and Merton overvalue the option, while Bates and Heston follow the market rather closely. In Tables 6 and 7 we can see that Bates get the lowest error, with Heston as a close second. 18
50 50 BSM BSM 45 Bates 45 Bates Heston Heston Merton Merton 40 40 Market Market 35 35 30 30 Price Price 25 25 20 20 15 15 10 10 5 5 80 90 100 110 120 130 140 70 80 90 100 110 120 130 140 Strike Strike (a) (b) Figure 7 – European call option prices collected 27/02/2020 (a) and 02/03/2020 (b) of the Disney data plotted against the strike prices for each model at maturity date January 15, 2021. Table 6 – The root mean square error (rmse), the average absolute error as a percentage of the mean price (ape), the average absolute error (aae) and the average relative percentage error (arpe) of the DIS stock data collected 27/02/2020 for the different models. Model rmse ape aae arpe (%) Heston 0.517 0.0211 0.472 2.90% Bates 0.469 0.0192 0.428 2.77% Merton 0.946 0.0346 0.774 7.35% BSM 0.759 0.0280 0.625 5.91% Table 7 – The root mean square error (rmse), the average absolute error as a percentage of the mean price (ape), the average absolute error (aae) and the average relative percentage error (arpe) of the DIS stock data collected 02/03/2020 for the different models. Model rmse ape aae arpe (%) Heston 1.212 0.0193 1.16 2.36% Bates 0.911 0.0136 0.816 1.56% Merton 4.50 0.0674 4.05 9.30% BSM 3.68 0.0599 3.60 6.46% The implied volatility for the different models plotted against the strike price for the first data set can be seen in Figure 8. Also here, a skew appears in the market data that Merton or BSM cannot capture. Bates and Heston follow the pattern but not closely. 19
0.32 BSM 0.31 Bates Heston 0.3 Merton Market 0.29 Implied Volatility 0.28 0.27 0.26 0.25 0.24 0.23 0.22 80 90 100 110 120 130 140 Strike Figure 8 – Implied volatility for Disney using BSM, Heston, Bates, Merton pricing model for data collected on 27/02/2020. 4.4 S&P 500 Index (SPX) We collected the SPX data from February 13, 2020 and March 2, 2020. In Figure 9 we can see the prices of SPX European call options for maturity date September 18, 2020. In Tables 8 and 9 we can see that Heston and Bates perform the best for the first data set, while BSM has the lowest errors in the second data set. One can observe that the errors observed in the second data set are generally higher than the first data set. One possible explanation for this is that the market that day was very volatile and dropped unexpectedly, which made it so that no model was able to capture the volatility of the market. 20
320 400 BSM BSM Bates Bates 300 Heston Heston Merton Merton Market Market 280 350 260 240 300 Price Price 220 200 250 180 160 200 140 120 150 3150 3200 3250 3300 3350 3400 2700 2750 2800 2850 2900 2950 Strike Strike (a) (b) Figure 9 – European call option prices collected 13/02/2020 (a) and 02/03/2020 (b) of the S&P 500 data plotted against the strike prices for each model at maturity date September 18, 2020. Table 8 – The root mean square error (rmse), the average absolute error as a percentage of the mean price (ape), the average absolute error (aae) and the average relative percentage error (arpe) of the S&P 500 data collected 13/02/2020 for the different models. Model rmse ape aae arpe (%) Heston 2.24 0.00920 2.04 0.980% Bates 2.12 0.00850 1.88 0.940% Merton 6.30 0.0274 6.07 2.74% BSM 8.91 0.0352 7.79 3.23% Table 9 – The root mean square error (rmse), the average absolute error as a percentage of the mean price (ape), the average absolute error (aae) and the average relative percentage error (arpe) of the S&P 500 data collected 02/03/2020 for the different models. Model rmse ape aae arpe (%) Heston 16.9 0.0524 14.6 5.30% Bates 16.3 0.0496 13.8 4.84% Merton 25.0 0.0835 23.3 8.02% BSM 14.7 0.0427 11.9 4.01% The implied volatility for the different models plotted against the strike price for the first data set can be seen in Figure 10. This data set also confirms a skew in the market which Bates and Heston capture but not Merton and BSM. 21
0.15 BSM Bates Heston 0.145 Merton Market 0.14 Implied volatility 0.135 0.13 0.125 0.12 0.115 3150 3200 3250 3300 3350 3400 Strike Figure 10 – Implied volatility for S&P 500 using BSM, Heston, Bates, Merton pricing model for data collected on 13/02/2020. 5 Discussion and conclusion Our results suggest that Heston and Bates give the lowest errors and should be used when pricing options with our methods. They result in a mean average relative percent- age error of 2.26% and 2.17%, respectively. Merton and BSM only have a mean average relative percentage error of 6.90% and 5.45%, respectively. However, the BSM model performs the best on the second SPX data which is not in agreement with the results from the other data sets. Overall we got that Heston and Bates perform the best and this was also confirmed when we tested on other data sets including Apple which can be found in Appendix B. Further, our calibration procedure does not work very good when calibrating the jumps in the Merton model which can be seen in our results where Merton always performs worse than all the other models. Our findings are in agreement with Bates in his paper [15] where he calibrates multiple stochastic jump diffusion models and comes to the conclusion that parameter instability is one of the major shortcomings of these models. This was also our biggest problem when working on this thesis, not only for the jump diffusion model but for the other models as well. We had a very hard time calibrating the parameters in an optimal way which mainly was because the initial parameters and boundaries were very sensitive to small changes. The parameters obtained from the calibration for each model was the optimal ones using 22
least squares for the training data, however, they are not optimal for the test data. This is because the test data was not used during the calibration. To optimize the parameters even more one could have used more training data than we did but it was not very easy to obtain option prices for a lot of maturity dates which was why we became limited. There exist a lot of other methods to optimize the parameters, for example, neural networks as in [16] where they use Keras to train pricing models on market data. We used a local optimization method, but there also exist several global optimization methods that could be used. For example, in [19] they use Particle Swarm and Genetic algorithm to find a global solution to the calibration problem. During our work with this thesis it was a major market crash due to the Coronavirus disease (COVID-19) which had a strong impact on the market as a whole. The most visible part of the crash happened in the later part of February to early March 2020 which was around the time when we collected some of our data. For example, this is noticeable in the SPX data where the first data set collected in the middle of February performed as expected while the other data set that we collected at the beginning of March gave us larger errors and worse performance from the stochastic volatility models. The BSM model actually priced the option better than the other models which probably was due to the fact that no model could anticipate that large of a crash so no model did a very good job pricing the options. The Coronavirus may have affected our results in even larger scales but we do not think it disturbed our work too much due to the fact that we used liquid stocks and index. Some improvements that could be done for future work is to collect more data which should include more options over a longer time period. Some other calibration methods might also be studied, including global optimization methods. The work can also be extended to examine other types of options for example Asian options, barrier options, and other exotic options. Furthermore, in this thesis we studied some of the most com- monly used methods for pricing options but there are a lot more that could be examined for example the stochastic model SABR, the discontinuity jump model called CGMY or some combined models like the Barndorff-Nielsen-Shephard model, Blacher’s model or Lipton’s model. One might also investigate models that deal with stochastic times, for example, the NIG-OUΓ model or the VG-CIR model. All these methods are described a bit more in detail in [1]. In conclusion, it seems like the stochastic volatility models, Bates and Heston, does a better job pricing European options than Merton and BSM do. This seems logical since the data we used all had a skew in the implied volatility plots which Merton and BSM could not capture due to their constant volatilities. Unfortunately with our calibration method and market data, the discontinuity jumps models seemed to not make that big of a difference. 23
References [1] E. Magnusson, Implied Volatility Surface Construction (Master thesis). Umeå univer- sitet, Teknisk-naturvetenskapliga fakulteten, Institutionen för fysik (2018). Available at http://www.diva-portal.se/smash/get/diva2:1191887/FULLTEXT01.pdf. [2] John C. Hull, Options, Futures and Other Derivatives, Ninth edition, Pearson Edu- cated Limited 2018. [3] P. Glasserman, Monte Carlo Methods in Financial Engineering, Springer Science + Buisness Media, Inc 2003. [4] T.Björk, Arbitrage Theory in Continuous Time, Third edition, OXFORD University Press, 2009. [5] R. Crisóstomo, An Analysis of the Heston Stochastic Volatility Model: Implementa- tion and Calibration using Matlab. CNMV Working papers, no. 58. (2014). [6] P. Carr and F.B. Madan. Option valuation using the fast Fourier transform. Journal of Computational Finance, 2:61–73, 1999. [7] G.B. Folland, Fourier analysis and its applications, University of Washington, Brook- s/Cole Publishing Company A Division of Wadsworth, Inc (1992). [8] Y.V. Prokhorov & A.N. Shiryaev (1998) Probability Theory III Stochastic Calculus, 1st ed. 1998. Berlin, Heidelberg: Springer Berlin Heidelberg. [9] F. Black and M. Scholes. The Pricing of Options and Corporate Liabilities. The Journal of Political Economy, Vol. 81, No. 3 (May - Jun., 1973), pp. 637-654. [10] H.R. Stoll. The relationship between put and call option prices. The Journal of Fi- nance, Vol. XXIV, No. 5. (December 1969), pp. 801-824. [11] Y. Aıt-Sahalia, J.Fan and Y. Li, The Leverage Effect Puzzle: Disentangling Sources of Bias at High Frequency. Princeton University and Hong Kong University of Sci- ence and Technology (2013). Available at https://www.princeton.edu/~yacine/ leverage.pdf. [12] S. Heston, (1993), A closed-form solution for options with stochastic volatility with applications to bond and currency options, Review of Financial Studies, volume 6, number 2, pp. 327-343. Available at: http://citeseerx.ist.psu.edu/viewdoc/ download?doi=10.1.1.139.3204&rep=rep1&type=pdf. [13] H. Albrecher, P. Mayer, W. Schoutens, and J. Tistaert. The little Heston trap. Radon Institute, Austrian Academy of Sciences, Linz and Graz University of Technology (2006). [14] R.C. Merton. Option pricing when underlying stock returns are discontinuous. Jour- nal of Financial Economics, Volume 3 (January–March 1976), Issues 1–2, Pages 125- 144. 24
[15] D.S. Bates. Jumps and Stochastic Volatility: Exchange Rate Processes Implicit in Phlx Deutschemark Options. The Review of Financial Studies Spring 1996, Vol.9, No.1, pp.69-107. [16] O. Pironneau. Calibration of Heston Model with Keras (2019). hal-02273889. Avail- able at: https://hal.sorbonne-universite.fr/hal-02273889/document. [17] G. Balaraman, Heston Model Calibration Using QuantLib Python and Scipy Optimize (2016). Available at: http://gouthamanbalaraman.com/blog/ heston-calibration-scipy-optimize-quantlib-python.html [18] S. Mikhailov, U. Nögel, Heston’s Stochastic Volatility Model Implementation, Calibration and Some Extensions, Fraunhofer Institute for Industrial Mathemat- ics, Kaiserslautern, Germany, Wilmott magazine. Available at: https://pdfs. semanticscholar.org/2646/51a3435bed02885ef892d8e4d5a749f7fefd.pdf [19] Y. Kovachev. Calibration of Stochastic Volatility Models. Departments of math- ematics, Uppsala University (2014). Available at: https://uu.diva-portal.org/ smash/get/diva2:729886/FULLTEXT01.pdf 25
A Calibrated parameters Table A.1 – The calibrated parameters for the Microsoft data for the data collected 27/02/2020 for each model using the Carr and Madan method. Parameters σ V0 θ κ ρ λ δ k̄ Heston 1.00 0.141 0.0641 10.4 -0.999 - - - Merton 0.283 - - - - 0.0221 4.46e-5 0 Bates 1.00 0.125 0.0478 9.38 -0.999 0.437 0.199 0 BSM 0.283 - - - - - - - Table A.2 – The calibrated parameters for the Microsoft data for the data collected 28/02/2020 for each model using the Carr and Madan method. Parameters σ V0 θ κ ρ λ δ k̄ Heston 0.490 0.0777 0.0536 6.88 0.999 - - - Merton 0.249 - - - - 0 0 0 Bates 0.263 0.0360 0.0271 1.38 0.789 1.43 0.0260 0.138 BSM 0.249 - - - - - - - Table A.3 – The calibrated parameters for the AMD data for the data collected 27/02/2020 for each model using the Carr and Madan method. Parameters σ V0 θ κ ρ λ δ k̄ Heston 0.645 0.467 0.280 6.44 -0.951 - - - Merton 0.579 - - - - 0.236 0.0318 0.0013 Bates 0.943 0.318 0.124 0.754 -0.781 1.90 0.191 0.129 BSM 0.579 - - - - - - - Table A.4 – The calibrated parameters for the AMD data for the data collected 28/02/2020 for each model using the Carr and Madan method. Parameters σ V0 θ κ ρ λ δ k̄ Heston 0.555 0.375 0.224 10.9 0.996 - - - Merton 0.518 - - - - 0 0 0 Bates 0.397 0.212 0.0688 9.22 0.784 6.48 0.0054 0.161 BSM 0.518 - - - - - - - A-1
Table A.5 – The calibrated parameters for the Disney data for the data collected 28/02/2020 for each model using the Carr and Madan method. Parameters σ V0 θ κ ρ λ δ k̄ Heston 0.769 0.145 0.0414 4.00 -0.468 - - - Merton 0.307 - - - - 0.0562 2.89e-5 2.34e-5 Bates 0.576 0.135 0.0234 3.68 -0.649 0.816 0.112 0.0154 BSM 0.307 - - - - - - - Table A.6 – The calibrated parameters for the Disney data for the data collected 02/03/2020 for each model using the Carr and Madan method. Parameters σ V0 θ κ ρ λ δ k̄ Heston 0.242 0.101 0.0130 2.68 0.856 - - - Merton 0.275 - - - - 0.0274 1.92e-5 6.48e-5 Bates 0.205 0.0774 0.0128 8.36 0.344 2.82 4.93e-4 0.112 BSM 0.275 - - - - - - - Table A.7 – The calibrated parameters for S&P 500 for the data collected 13/2/2020 for each model using the Carr and Madan method. Parameters σ V0 θ κ ρ λ δ k̄ Heston 0.134 0 0.0148 16.2 0.998 - - - Merton 0.121 - - - - 0.0488 0 0 Bates 0.143 0.001 0.0136 14.3 0.999 0.875 0.0285 0.0229 BSM 0.121 - - - - - - - Table A.8 – The calibrated parameters for S&P 500 for the data collected 02/03/2020 for each model using the Carr and Madan method. Parameters σ V0 θ κ ρ λ δ k̄ Heston 0.662 0 0.116 0.176 0.240 - - - Merton 0.107 - - - - 0 0 0 Bates 0.204 0 0.0443 0.443 0.391 0.001 0.001 0.001 BSM 0.107 - - - - - - - A-2
B More results Table B.1 – The root mean square error (rmse), the average absolute error as a per- centage of the mean price (ape), the average absolute error (aae) and the average relative percentage error (arpe) of the Apple data collected 28/02/2020 for the different models. Model rmse ape aae arpe (%) Heston 0.481 0.0061 0.354 0.91% Bates 0.816 0.0110 0.640 0.94% Merton 3.59 0.0555 3.21 7.83% BSM 3.83 0.0655 3.80 7.49% Table B.2 – The root mean square error (rmse), the average absolute error as a per- centage of the mean price (ape), the average absolute error (aae) and the average relative percentage error (arpe) of the Apple data collected 02/03/2020 for the different models. Model rmse ape aae arpe (%) Heston 1.07 0.0170 1.02 1.99% Bates 0.743 0.0106 0.634 1.11% Merton 4.49 0.0674 4.05 9.35% BSM 3.68 0.0599 3.59 6.46% B-3
You can also read