This action might not be possible to undo. Are you sure you want to continue?

# LONDON SCHOOL OF ECONOMICS AND POLITICAL SCIENCE

An Investigation of Heston

and SVJ model during

Financial Crises

FM408 Financial Engineering

MSc Finance (Full-Time)

2012-2013

Candidate Number: 82751

Word Count: 5752

The copyright of this dissertation rests with the author and no quotation from it or information derived

from it may be published without prior written consent of the author.

1

Table of Contents

Abstract ........................................................................................................................... 2

1. Literature review and Introduction ............................................................................... 2

2. Description for the Market Data ................................................................................... 4

2.1 Data Source and its Selection .............................................................................................. 4

2.2 Normality Test of the data .................................................................................................. 6

3. Black Scholes Model ..................................................................................................... 9

4. Heston Stochastic Volatility Pricing Model .................................................................. 11

4.1 The Heston Model ............................................................................................................ 11

4.2 Calibration of the Heston Model ....................................................................................... 12

5. An Extension of Heston Model .................................................................................... 16

5.1 Add Jumps ....................................................................................................................... 16

5.2 Calibration of the SVJ Model ............................................................................................. 16

6. Financial Crises Analysis with the SVJ model ............................................................... 19

7. Conclusion .................................................................................................................. 22

Acknowledgement ......................................................................................................... 23

References ..................................................................................................................... 23

Appendix ........................................................................................................................ 24

2

Abstract

After the crash of the stock market in the 20

th

century, the implied volatility surface of the stock

market exhibits a ‘smile’ shape. That aroused the interests of researchers to develop more

sophisticated models beyond the basic Black-Scholes model. In this study, two stochastic models were

studied – the Heston model and the Stochastic Volatility Jump model. They were used to analyze the

implied volatility surface for S&P 500 index options during two typical financial crises – 2000 Dot

com bubble crisis and 2008 US Subprime Mortgage crisis. The results from this study show that the

parameters of these two models capture the volatility and stock crash, yet these models are still

imperfect at pricing options.

1. Literature review and Introduction

In 1973, the paper published by Black and Scholes (1973) introduced an option pricing model

based on the assumptions that the return of the stock is log normal and the volatility is

constant across all options with different maturities. After the stock crash in 1987, the market

implied volatility was observed to perform a smile-like shape, i.e. the implied volatility is

higher for the lower end of the strike price. This smile feature of the volatility surface

suggests that the Black –Scholes model is no longer good enough as an option pricing model.

In particular, for equities, the volatility smile is noticed to be right skewed. Thus for equities,

Black Scholes model would tend to under price the in the money puts while over estimating

the out of the money calls. Figure 1.1 by C.Chen (2007) reveals the crashing impact of the

stock market on the implied volatility surface. We can easily see that before the crash, the

implied volatility surface roughly exhibited a table top shape. This suggests that the Black-

Scholes model indeed shall give a good prediction before the crash in the 20

th

century.

However, things have changed after the crash, the implied volatility surface has become more

skewed (See Figure 1.1:Right). Moreover, the price for the out of the money puts (in the

money calls) shoots up drastically due to the over demand of the put options from the

investors in the market.

Figure 1.1: Left: the Implied volatility smile curves for pre and post the crash in the 20

th

century (1987);

Right: A skewed surface for low strike and short maturity options by C. Chen (2007).

3

Since then, a significant amount of studies have been done on developing more sophisticated

option pricing models. In 1987, Hull and White proposed a stochastic volatility (SV) model

to capture the smile effect in the stock, among which the Heston model is seen as the most

widely accepted one. The Heston model corrects various restrictions imposed by the Black-

Scholes model. It allows the volatility to be stochastic; addresses the leverage effect (a price

drop normally is accompanied by an increase in the volatility); includes the non log return

character of the stock; moreover, the Heston model also imposes a boundary restriction to

exclude negative volatilities while at the same allows a volatility mean reverting property.

Furthermore, the Heston model is also well - known for this computational advantage among

other SV models. It has a closed loop formula as was derived by Heston (1993), which could

be solved easily by using computational method whereas other SV models require complex

numerical methods. To conclude, the SV model could be regarded as an extension of the

basic Black-Scholes model. In this model, it resolves some limitations imposed by the Black-

Scholes model and gives an improved representation of the implied volatility surface.

Although it is an improvement over the BS model, the SV model still does not fully capture

the smile feature. It mirrors the implied volatility surface for mid and long - term maturities

but not for the short-term maturities options. The high implied volatility for the out of the

money puts with shorter maturities would be under priced under this model. This leads to the

development of the SVJ model by Bakshi, Cao and Chen (1997). The jump feature of this

more advanced model could be used to explain the smile shape of the surface better than the

previous two models. Yet empirical study shows that neither SV (Heston) nor SVJ alone

could give an accurate estimation of the market. SVJ still has its own drawbacks. It excludes

the relationship between the size of a market crash and its impact on the quantity that the

volatility could be increased. Researchers have been dedicated to develop more advanced

models to address these issues, which is beyond the scope of this study.

This dissertation aims to find how the implied volatility surface changes during different

financial crises period. In particular, the 2000 Dot com bubble crisis and the 2008 US

Subprime Mortgage crisis were studied in this dissertation. A time period extending from

1999 to 2010 was selected, covering the two crises periods.

This study consists of five main chapters, starting with the raw data analysis in Chapter 2, in

which the normality test was conducted for several selected time horizons. Followed by

Chapter 3 - a brief introduction on the basic Black Scholes model and how the implied

volatility surface from the Black Scholes model could be used to benchmark other more

advanced models. In Chapter 4, the Heston model without jumps was computed, and the

calibration method was employed to give the best fit of the market data. In the next chapter,

based on the Heston model built in Chapter 4, a stochastic volatility jump (SVJ) model was

developed to address the shortcomings of the Heston model. Again, the SVJ model was

calibrated by employing a least square non - linear optimisation method in Matlab. In the last

chapter – Chapter 6, I have discussed some findings by comparing the implied volatility

surfaces using the developed models. All the Matlab codes used in this dissertation were

attached in the Appendix for future reference.

4

2. Description for the Market Data

The main purpose of this study is to investigate how the implied volatility surface changes in

and out of the financial crisis by using the Heston and the SVJ model. To give a good

overview of change of the implied volatility surface over several financial crises periods, the

data used in this dissertation is based on the daily closing price of S&P 500 index options

from 1999 to 2010, retrieved from Wharton Database. It would have been good to compare

the data of today with that of the 1980s where very few jumps could be observed in the stock

market. However, due the limited data that I could import from Wharton Database, the time

horizon of the data investigated in this study is from 1999 to 2010.

2.1 Data Source and its Selection

For this study, I have chosen the S&P 500 index options data. This index has been

investigated in many literature, such as Madan and Chang(1996) and Bakshi, Cao and Chen

(1997) etc. S&P 500 index options is one of the many indices that have been studied in the

past due to its larg trading volumes and big open interest. On top of that, because S&P 500

index options exhibit a European exercise style, it eliminates the complication of the model

building due to early exercise problems.

S&P 500 Index Time Series

Figure 2.1: Times Series for S&P 500 index

The underlying stock (S&P 500 index) of the options was collected using the historical

adjusted closing price from Yahoo Finance. The whole time series studied in this dissertation

mainly covers two recent financial crises in the history, namely, 2002 Dotcom Bubble crisis,

2008 the US Subprime Mortgage Crisis. Figure 2.1 depicts the whole time series, from which

we observe that the stock price experienced drastic drops during periods 2003 and end of

2008. A similar pattern could also be found for the return statistics – we see the daily returns

of S&P 500 index becomes more volatile, dropping significantly to negative levels. The

-15.00%

-10.00%

-5.00%

0.00%

5.00%

10.00%

15.00%

0

200

400

600

800

1000

1200

1400

1600

1800

7/24/98 4/19/01 1/14/04 10/10/06 7/6/09 4/1/12 12/27/14

S&P 500 index Time Series S&P 500 index return

5

returns are also observed to have more clustering during the crisis periods, especially around

2000-2001 and 2008.

S&P 500 Index Options Data:

The data source extracted from Wharton Database has the following format (Table 2.1). The

Strike price in the data has been scaled by a notional number of 1000. The Impl_volatility was

computed by reverse-engineering the Black-Scholes formula, taking the option price as the

average of the Best_bid and Best _offer.

Date Exdate CP_flag Strike Best_bid Best_offer Volume Impl_Volatility

19990601 19990717 C 1475 0.875 1 43 0.188725

19990601 19990619 C 1275 37.75 39.75 5 0.249485

19990601 19990619 P 675 0 0.0625 0

19990601 20000617 P 1350 138.25 142.25 0 0.275875

19990601 20000617 C 750 581.125 585.125 0 0.39934

19990601 20000318 C 1450 68.25 70.25 100 0.242048

Table 2.1: Historical Data of S&P 500 Index Options - source from Wharton Database

According to the paper published by the International Monetary Fund (IMF), the crisis dates for

Dot com and US Subprime Mortgage were defined as follows:

Crisis Name Crisis Date Period

Dot com 28/02/2000 – 07/06/2000

US Subprime 26/07/2007 – 31/12/2008

Table 2.2: Crisis dates defined by IMF (2010)

Following a paper written by Mo Chaudhury (2011), I have further specified the crisis into

pre, in and later crisis periods. In particular, the US Subprime Mortgage crisis in 2008 was

divided into three sub-periods – pre-crisis period starting from 01/01/2007 to 31/08/2007,

early crisis period from 01/09/2007 to 14/07/2008, and lastly the later crisis period from

15/07/2008 until 31/12/2008. Figure 2.2(a) plots the smile curves for the 2008 US Subprime

Mortgage crisis in particular, we can see that the plot (green dots) before the crisis, the IV

(implied volatility) exhibits a smile curve, reaching a minimum point at Moneyness equals 1.

Figure 2.2(a) also plots the implied volatility curves in periods during and after the financial

crisis. The curve during 2008 US Subprime crisis became more right skewed, gradually

losing its smile-like curve shape.

Similar results were observed for the Dot com crisis in 2000. The crisis periods were split

into several sub periods. Pre-crisis period starts from 01/06/1999 to 27/02/2008; the actual

Dot com crisis period starts from 28/02/2000 to 15/06/2000; finally, the later crisis period

was defined to be from 16/06/2000 – 31/12/2000. We see that the implied volatility curves

become right- skewed significantly during the crisis period, indicating a change of the risk

appetite of the investors. People are more worried about more crashes in the stock market,

buying put options to hedge their portfolios, pushing up the prices for out-the-money puts.

After 2000 - the Dot com crisis, we see the implied volatility on 01/06/2001 for example, has

recovered its smile shape.

6

Figure 2.2 (a): 2008 US Subprime Crisis: The smile curves for S&P 500 index Call options for pre, in and later

crisis periods. *Notice that the discontinuity of the points is due to the incompletion of the data

Figure 2.2 (b): 2000 Dot com Crisis: The smile curves for S&P 500 index Call options for pre, in and later crisis

periods

2.2 Normality Test of the data

The normality test was conducted on the return of the S&P 500 index. The following figures

display the results from the normality tests conducted for S&P 500 stock returns studied in

this paper. During the sample period extending from 1999 to 2010, we can see that the stock

return does not follow a perfect uniform normal distribution shape as depicted in the Black

Scholes model - it has kurtosis and fat tails. The effect becomes more pronounced for periods

0 0.5 1 1.5 2 2.5

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

Moneyness = K/s0

I

V

2006/12/01

2008/08/01

2008/01/02

2008/12/01

0.2 0.4 0.6 0.8 1 1.2 1.4 1.6

0.2

0.25

0.3

0.35

0.4

0.45

0.5

0.55

0.6

0.65

Moneyness = K/s0

I

V

2000/02/28

2000/06/01

2000/12/15

2001/06/01

7

2001- 2004 and 2007 – 2008, which are the time periods covering the Doc.com and the US

Subprime Mortgage crisis. During 2001–2004, we observe a right skewness in the

distribution, accompanied by a few more spikes occurring in the left tail. A similar pattern

was observed again during the 2008 crisis. The kutosis (peakness) of the distribution

increased during the crisis periods, spreading into both tails. However, since investors

demand more puts than the calls to hedge their portfolios in crisis, the whole distribution,

therefore, is skewed towards the right, squeezing the right tail more.

This phenomenon seems counterfactual in a Black-Scholes world, where the return is

assumed to be normally distributed, and the instant volatility is considered to be constant.

Thus, if Black Scholes model’s assumption is valid, we should not observe any of the

patterns described above. However, Black Scholes does not hold in the real market, the

market data tells us that the implied volatility against the strikes shows a smile pattern

(Figure 2.2), and furthermore this ‘smile’ curve becomes right skewed during the crisis.

More recent studies have been focusing on stochastic volatility and jump diffusion models,

which was further discussed in Chapter 3.

0

10

20

30

40

-7% -6% -5% -4% -3% -2% -1% 0% 1% 2% 3% 4% 5% 6% 7%

F

r

e

q

u

e

n

c

y

(a) 1999 - 2000

0

10

20

30

40

-5.00% -4.00% -3.00% -2.00% -1.00% 0.00% 1.00% 2.00% 3.00% 4.00% 5.00%

F

r

e

q

u

e

n

c

y

(b) 2001 - 2004

8

Figure 2.3: Normality test on the return of the S&P500 index for period from 1999 to 2010: (a) Pre financial

period: 1999 – 2000; (b) Dot com Bubble: 2001 – 2004; (c) After Doc.com before US Subprime Mortgage crisis

period: 2004 – 2007; (d) In US Subprime Mortgage crisis: 2007 -2008; (e) After US crisis and during Eurozone

crisis: 2009 -2010.

0

10

20

30

40

-4.00% -3.00% -2.00% -1.00% 0.00% 1.00% 2.00% 3.00% 4.00%

F

r

e

q

u

e

n

c

y

(c) 2004 - 2007

0

10

20

30

40

-12.00% -9.50% -7.00% -4.50% -2.00% 0.50% 3.00% 5.50% 8.00% 10.50%

F

r

e

q

u

e

n

c

y

(d) 2007 - 2008

9

3. Black Scholes Model

The model was first published in Black and Scholes (1973), in which the stock price was

assumed to be a Geometric Brownian motion process.

(3.1)

(3.2)

where μ is the instantaneous rate of return and σ is the volatility of the stock price. Then by

ItÔ’s lemma using a replicated portfolio, Black and Scholes reached the following equations

for the price for European style call options. Then the put price could be computed by using

Put-Call Parity.

( ) (

) (

)

()

(3.3)

√

[(

) (

)( )] (3.4)

√

[(

) (

)( )] (3.5)

As discussed before, the Black-Scholes model alone would not be used as a tool to price the

securities in the market. However, we can use Black-Scholes model as a benchmark to

reverse engineer the implied volatility of an option for a specific strike and maturity given its

option price observed in the market. Therefore, the implied volatility surface computed by

this method could be used as a reference to benchmark more advanced models such as the

Heston and SVJ models.

By reverse engineering the raw data from Wharton Database and making assumptions that

the option price would be calculated as the average of the best-bid and best-ask prices in the

market, the implied volatility surface is calculated’. Figure 3.1(a), (b) shows one of the

implied volatility surface plotted by reverse engineering the call prices observed in the

market. The Matlab code used to plot the surface was written by Rodolphe Sitter (2009).

However, one drawback of this Matlab function is that for maturity and moneyness points

where no option price data data is given, the Gaussian function would provide an

extrapolated value which might be inaccurate. Thus this Matlab function should not be used

with incomplete data sets to plot the implied volatility surface.

By comparing Figure 3.2 (a) and (b) – one in the financial crisis (2008) and one out of the

financial crisis (2005), we can see that the 2008 plot is more skewed, whereas the 2005 plot

looks more smile shaped. Note that the Moneyness (M) is defined as K/S

0

, and time to

maturity (T) is in years.

10

Figure 3.1 (a): In 2008 US financial crisis period: Implied Volatility Surface on 01/10/2008

Figure 3.2 (b): Out of the crisis period: Implied Volatility Surface on 03/01/2005

11

4. Heston Stochastic Volatility Pricing Model

4.1 The Heston Model

The Black-Scholes model is limited in real practice due to its restrictive assumptions. One

way to model the stock price and volatility is to adopt a stochastic volatility model. More

recent studies have been focusing on developing these stochastic models. In 1993, Steven

Heston published his first paper on the Heston model. In the paper, the stochastic volatility

Heston model was defined by the following stochastic differential equation:

√

(4.6)

(

) √

(4.7)

Unlike the Black-Scholes model, the Heston model assumes that the volatility term is

stochastic. The diffusion term in Equation 4.6 depends on the instantaneous volatility V

t

instead of a constant volatility. The Heston model also includes the mean-reversion feature,

which the Black-Scholes model does not have. In Equation 4.7, κ denotes the mean reverting

speed, θ is the long-run mean, σ is the volatility of volatility. Lastly, dZ

1t

and dZ

2t

are two

Brownian motions, which are related to each other by Equation 4.8. The log-return of the

stock and the volatility is correlated to each other by a coefficient ρ. This additional

coefficient resolves the limitation of the Black-Scholes model on modelling non-log normal

return stocks.

(4.8)

Therefore, the Heston model could be regarded as an extension of the Black-Scholes model.

It captures other features that a basic Black-Scholes model does not have; for example, it

takes into account of the non-normal distribution feature of the stock return, the mean

reverting property of the volatility as well as the leverage effect. Beside these, one principle

advantage of Heston model is that, unlike other stochastic volatility models (SV), the Heston

model yields to a closed-loop form solution – no need of heavy numerical computation. In the

paper by Heston (1993), it derived the price of a European call option has the following form:

(

)

()

(4.9)

By Put-Call Parity, we can reach Equation (3.10) for a European put option price:

(

) (

)

()

(4.10)

where, P

1

and P

2

are the time and state dependent conditional probabilities that a call to be in-

the-money (ITM).

(

)

∫ {

()

(

}

(4.11)

(

)

(

) ( ) ( )

12

( )

[(

) (

)]

( )

(

)

√(

)

(

)

For j =1, 2 we have

Note that λ denotes the market price of the volatility, which becomes zero under the risk

neutral world . Therefore, by pricing under , we can eliminate the parameter λ in the

equation, i.e. λ = 0, leaving only five unknown parameters κ*, θ*, σ*, V

0

*, ρ*

1

. These

unknown parameters could be computed by calibrating them against market data, which is

discussed in the next chapter – Chapter 5.

(

)

→

(

)

The above equations look intimidating but they can actually be solved very easily using

numerical methods. There are several ways to reach the pricing solutions for a Heston model.

F D Rouah & G Vainberg (2007) explains two separate computational methods by using the

full valuation approach (Monte Carlo) as well as the closed loop-form approach. A third

method – Fast Fourier Transform (FFT), which was proposed by Carr & Madan (1999),

proved to be considerably faster than most other existing numerical methods.

I have adopted the closed-loop method based on the following considerations. Monte Carlo

approach is the most mathematically clear way to simulate the process. However, the

accuracy of the model depends on the number of paths included in the model – increasing the

number of paths could be computationally expensive. Secondly, although the Fast Fourier

Transform method is the fastest, my attempts at it were unsuccessful. However, the closed

form approach was promising and the results of using this model is thus reported in this

dissertation. The Matlab code HestonCall by Moeti Ncube (2010) was employed to

calculate the Heston option price.

4.2 Calibration of the Heston Model

Calibration is an important concept in the Heston model. In the previous section we have

defined six unknown parameters (κ, θ, σ, V

0

, ρ, λ), which are not observed directly in the

market. We have further addressed that under the risk neutral probability world , one

parameter λ could be eliminated, leaving only five parameters which are to be determined.

1

Parameters with * means pricing under

13

The calibration method is based on the idea that there is minimum error between price

computed from a mathematical model and the price, which is observed in the market.

Therefore, we start from a set of guessing parameters, compute the Heston option price

indicated by these guessing parameters, and then compare the obtained Heston price with the

actual market price. By iteratively changing the parameters to minimise the errors between

the Heston model price and the actual market price, we can calibrate the parmeters for the

Heston model, which can be used to price the securities in the market. Nevertheless, this

calibration approach relies strongly on the assumption that the market price is traded at a fair

price. It captures all the information used to predict the unknown stock.

The Matlab function called HestonCalibration written by Moeti Ncube (2010) was

employed to calibrate the Heston model for the entire time horizon covered in this

dissertation. HestonCalibration contains a Matlab least square non-linear optimisation

function lsqnonlin. It calibrates the data by searching for an optimum set of parameters (V

0

,

κ, θ, σ, ρ), which would give the best fit for the price observed in the market.

Table 4.1 displays one set of calibrated parameters on September 15, 2005 for SPX. The right

column, shows the calibration results obtained from Gatheral (2006) for a non-jump Heston

model. We can see that these two sets of data are comparable.

Calibration result Gatheral (2006)

V

0

0.0162 0.0174

κ 1.2933 1.3252

θ 0.0399 0.0354

σ 0.4243 0.3877

ρ -0.6833 -0.7165

Table 4.1: Heston calibration to S&P 500 index option surface on 15/09/2005

Figure 4.1(a) shows the daily calibrated surfaces by Heston model. The top surface is the

implied volatility surface obtained from the market data, and the flatter surface below is the

calibrated Heston model. We can see that the simple calibrated Heston model implied

volatility surface does not reveal the actual market implied volatility surface perfectly.

Nevertheless, it shows a more skewed smile shape in comparison with the table top surface

plotted from the Black-Scholes model. It could be concluded that the Heston model is an

improvement from the simple Black-Scholes model by introducing non-log normal return and

stochastic volatility characteristics of the underlying. On top of that, it is shown in Figure

4.1(a) in particular, the daily calibrated Heston model could predict the market implied

volatility better for longer maturities T > 2 years, but for short maturities (T < 1.5 years),

Heston model deviates from the actual implied volatility surface significantly. This feature

for the Heston model was discussed in more details in Zhang and Shu J (2003),

Last but not least, Figure 4.1(a) is a plot of the implied volatility surface during the 2008 US

Subprime crisis. The actual surface lost its smile shape, and becomes skewed as discussed in

Chapter 2.1. The calibrated Heston surface follows this skewed pattern. However, the surface

fit is not satisfactory for options which are deeply in-the-money and out-of-the money. This

14

characteristic reveals one of the shortcomings of the Heston model – a simple Heston does

not capture the jumps, which is especially considered as an important feature during the

crisis.

Figure 4.1(a): Daily Basis: calibrated Surface on 2008/11/03 by using parameters from 2008/11/03

Figure 4.1(b): 15-day Basis: calibrated Surface on 2008/11/03 by using parameters from 2008/10/15

15

Figure 4.1(c): Monthly Basis: calibrated Surface on 2008/11/03 by using parameters from 2008/10/01

The remaining issue is how frequently the data should be calibrated. In Figure 4.1, the

calibrated surfaces by Heston model based on three different calibration windows are plotted.

As discussed before, the daily calibrated Heston model does not mirror the actual market data

perfectly, yet it still gives a good representation for mid and long term maturities. However,

the monthly calibrated surface in Figure 4.1(c), notably deviates from the actual market

implied volatility. By looking at the daily calibrated surface with the surface calibrated on a

15-day interval in Figure 4.1(a) and (b), no significant difference was observed. Therefore, to

simplify the computation method in this report, the parameters were calibrated every 15 days.

The following table shows a list of calibrated parameters.

V

0

κ θ σ ρ

2005/01/03 0.01971 1.38512 0.03492 0.40540 -0.62959

2005/09/15 0.01594 1.14916 0.04165 0.39069 -0.71728

2008/01/02 0.06142 0.49913 0.08582 0.43720 -0.73465

2008/08/01 0.04595 0.80769 0.07529 0.38107 -0.73625

2008/10/01 0.10939 0.67064 0.08086 0.49670 -0.76216

2008/10/15 0.30641 2.43717 0.05022 0.5000 -0.89999

2008/11/03 0.21221 1.15175 0.10446 0.50000 0.90000

2008/12/01 0.39647 2.83012 0.08625 0.50000 -0.89995

Table 4.2: Calibration results

16

5. An Extension of Heston Model

5.1 Add Jumps

In this Chapter, a more advanced stochastic diffusion jump model (SVJ) was investigated to

create a better option pricing model. The development of the model was based on Bakshi,

Cao, and Chen (1997), in which a stochastic jump model was modified into the equations on

top of the basic Heston model. Notice that the notations were changed from the original paper

in order to be consistent with the Heston model developed in Chapter 4.

√

(3.6)

(

) √

(3.7)

All the parameters have the same meanings as that were defined in Chapter 4 except J

t

which is a jump percentage defined by Equation 3.8. The log normal of J

t

follows a normal

distribution with a mean of ln(1+µ

J

) – (½)σ

J

2

, and a standard deviation of σ

J

. The jump is

defined by a Poisson process, Equation 3.9, which follows the same definition in Bakshi,

Cao, and Chen (1997).

[ ()] ((

)

) (3.8)

{

(3.9)

The stochastic volatility jump model (SVJ) was coded into a Matlab function named

SJVCall. The algorithm followed to compute a SVJ call price is based on the equations

presented in Bakshi, Cao, and Chen (1997).

Comparing the basic Heston model and Black-Scholes model, SVJ model completes the

Heston model by including a jump feature of the stock market into the model. However, one

drawback of the SVJ model is that it assumes an independent relationship between large price

movements (jumps) with the implied volatility indicated by the model. This seems

counterfactual, as a big price crash should results in an increase of the volatility. This

shortcoming of the SVJ model was addressed in the SVCJ model, in which it includes an

additional parameter ρ

j

compensating for the shortcoming of the SVJ model. Here in this

study, the SVCJ was not included.

5.2 Calibration of the SVJ Model

The calibration method used for the SVJ model follows a similar Matlab routine as was for

the Heston model. It employs a Matlab optimisation function lsqnonlin – the least square

non-linear optimisation function to search for an optimal solution which could minimise the

error between the call price from a SVJ model and that of a market call price. Again this

17

calibration approach is based on the assumptions that the market is efficient and contains all

the available which could be used to price the options. The Matlab function called

‘SVJcalibrationNplot’ written by the author would calibrate and plot the SVJ model.

Figure 5.1: Comparison between Heston model and SVJ model on 2005/09/15

Figure 5.1 illustrates one example of the calibrated SVJ surface. In addition, it also plots the

actual implied volatility surface (the most top surface), and the simple Heston surface (most

bottom surface) which was computed from Chapter 4. The advantage of the SVJ model was

very obvious. By adding an additional jump diffusion term into the model, the fitting of the

model to the market data was improved notably, fixing the limitations of the Heston model in

pricing the short-term maturity options.

V

0

κ θ σ ρ µJ σJ λJ

Heston 0.0159 1.1492 0.0416 0.3907 -0.7173

SVJ 0.0675 5.3800 0.0400 0.3800 -0.5700 -0.0530 0.0967 0.1308

Gatheral 0.0174 1.3252 0.0354 0.3877 -0.7165

BCC 0.5394 0.0439 0.3038 -0.6974

Table 5.1: Calibrated parameters for SVJ and the Heston model on 2005/09/15

* BCC parameters are the results obtained from Bakshi, Cao, and Chen (1997); Gatheral parameters are from Gatheral (2006).

The calibrated parameters are displayed in Table 5.1, for comparison, Table 5.1 also lists the

calibrated parameters for the Heston model on the same day. To examine the results, it was

noticed that the mean reverting speed (κ = 5.3800) increased dramatically for a SVJ model

studied in this dissertation, while the rest of the parameters remain approximately unchanged.

The calibrated results for SVJ model are comparable with what was found in literature, apart

from the mean reverting speed κ. This deviation is due to the limitation of the calibration

code. Although the SVJ model is of a closed form, the equations are highly non-linear.

Besides, there are 8 parameters to calibrate. The code works by searching for a combination

of the 8 parameters that give the least error. Due to the non-linearity and high number of

0

0.5

1

1.5

2

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

Time t o Mat ut it y T

I mplied Volat ilit y Surface

Moneyness M =

K

S

I

m

p

l

i

e

d

V

o

l

a

t

i

l

i

t

y

<

(

T

;

M

)

0.2

0.3

0.4

0.5

0.6

0.7

18

dimensions, it is possible that the code found a combination of parameters that are within a

“local optimum” point. A better “global” optimum point may exist. This search method is

inherently depended on the provided initial guess and limits. Thus to best achieve this global

optimum point, the variables were initially set off from points that are close to textbook

values or stable financial periods values.

19

6. Financial Crises Analysis with the SVJ model

In this chapter, the SVJ model developed in Chapter 5, is calibrated on a 15-day basis for two

particular financial crises – the 2000 Dot com crisis and the 2008 US Subprime Mortgage

crisis. The computational method behind the calibration method is based on the numerical

optimisation approach to search for a local minimum that minimising the error between the

implied volatility surfaces over the 15-day period with that implied by the market. The

Matlab code called SVJcalibration_15Day developed by the author was attached in the

Appendix.

Below are two plots of the historical index price for S&P 500 during the two crises periods.

The S&P500 index had a large drop in July, 2002 and another significant drop in Oct, 2008.

According to the IMF, the crisis period for Dot com should start from February, 2000. Yet,

the stock crash only occurred in 2002, which should correspond to a drastic change of the

volatility surface. Therefore, only 2001 and 2002 periods were considered for Dot com crisis

in this chapter.

Figure 6.1 (a): S&P 500 index historical price during 2008 US crisis

Figure 6.1 (b): S&P 500 index historical price during 2000 Dot com crisis

The SVJ parameters (V

0

, κ, θ, σ, ρ, µ

J

, σ

J

, λ

J

), were calibrated on a 15-day interval, and the

calibrated results for these two financial crisis periods are included in the Appendix (Table I

& II). The following figures – Figure 6.2 and Figure 6.3, are the plots for the calibrated

parameters for the two financial crises periods studied in this dissertation, where all the

symbols have their usual meanings as defined in Chapter 4 and Chapter 5. Table 6.1 shows

some statistics of the calibrated parameters over the sample period.

i) V

0

is the instantaneous volatility

ii) κ is the rate at which V

t

reverts

20

iii) Θ is the long run mean of volatility

iv) σ is the volatility of volatility

v) ρ is the correlation between the two Brownian motions

vi) µ

J

is the mean percentage of the jump size

vii) σ

J

is the standard deviation of jump expressed in percentage

viii) λ

J

is the expected jump per year that follows a Poisson distribution

2000 Dotcom Bubble Crisis

V

0

κ θ σ ρ µ

J

σ

J

λ

J

mean 0.23995 104.87104 0.81617 1.52002 0.45205 -0.11955 0.12179 1.28784

median 0.17323 53.94200 0.39646 1.03025 0.56142 -0.10200 0.12310 1.34950

S.D. 0.18975 103.81724 1.07117 1.19997 0.52777 0.07578 0.04340 0.70104

2008 US Subprime

mean 0.24429 7.76785 0.08568 1.01763 -0.38855 -0.24022 0.23573 0.57624

median 0.12695 6.81904 0.02149 0.73434 -0.37930 -0.18640 0.21993 0.55795

S.D. 0.27252 7.42190 0.22505 0.74371 0.26504 0.09298 0.11613 0.22679

Table 6.1: Statistic analysis of the calibrated parameters over the sample period

The calibrated parameters over the selected crises time horizon are presented in the following

figures. For the 2008 US crisis in Figure 6.2(a), σ shot up massively around Oct, 2008, which

could be explained by the crash observed in Figure 6.1 (a). The same pattern was observed in

parameter V

0

, implying a big increase in the volatility of the stock accompanies by a sharp

reduction in the stock price. On contrary, the mean percentage of the jump size µ

J

and the

correlation coefficient ρ went down to more negative values. A negative ρ indicates the return

of the stock is left skewed. Therefore, the increase in the magnitude of ρ

while still keeping a

negative sign implies the stock return becomes more skewed to the left after the crash. As

could be expected, the expected jumps per year λ

J

increased accordingly with the increase of

σ and V

0

. The value for κ changed drastically from 10 before the crash to plus 30 at the crash

as shown in Figure 6.2(b).

Figure 6.2 (a): 2008 US Subprime Mortgage Crisis for calibrated SVJ model parameters V0, κ, θ, σ, ρ, µJ , σJ , λJ

-2.0

-1.0

0.0

1.0

2.0

3.0

4.0

2008 US Subprime Mortgage Crisis

V0

σ

ρ

µJ

σJ

λ

21

Figure 6.2 (b): 2008 US Subprime Mortgage Crisis for calibrated SVJ model parameters V0, κ, θ, σ, ρ, µJ , σJ , λJ

A similar pattern could be seen for the Dot com crisis. Significant fluctuations were

witnessed for the calibrated SVJ parameters in year 2001 and 2002

2

, in which the stock

market crashed. In particular, we see the κ value has increased by more than 3 folds to 290.

Figure 6.3 (a): 2000 Dot com bubble crisis for calibrated SVJ model parameters V0, κ, θ, σ, ρ, µJ , σJ , λJ

Figure 6.3 (b): 2000 Dot com bubble crisis for calibrated SVJ model parameters V0, κ, θ, σ, ρ, µJ , σJ , λJ

2

The discontinuity of the plot is due to missing data

-0.2

0.0

0.2

0.4

0.6

0.8

1.0

0

10

20

30

40

2008 US Subprime Mortgage Crisis

κ

θ

-1.0

0.0

1.0

2.0

3.0

4.0

2000 Dot com Bubble Crisis

V0

σ

ρ

µJ

σJ

λ

-1.0

0.0

1.0

2.0

3.0

4.0

-10

90

190

290

390

2000 Dot com Bubble Crisis

κ

θ

22

7. Conclusion

In my study, I have discussed the different option pricing models that were proposed by the

existing literature, namely, the Black-Scholes model, Stochastic Volatility (SV) model and

lastly the Stochastic Volatility Jump (SVJ) model. In the first part of my study, I have briefly

discussed the smile feature of the stock implied volatility and how it was changed after the

crashed in the 20

th

century, reflecting a change of the risk appetite for the investors. This

leads to a discussion of how to improve the basic Black-Scholes model to capture more

characteristics of the market data. In particular two more advanced models - the Heston

model and the SVJ model, were investigated in this study.

I have developed the model using Matlab by following the algorithm by Heston (1993) and

Bakshi, Cao, and Chen (1997). The calibrations for the Heston and SVJ models are based on

the least square non-linear numerical Matlab optimisation routine. The calibrated parameters

for both Hesotn and SVJ models were compared with the results from Gatheral (2006). In

general, it shows a consistency apart from parameter κ. However, this might due to the

limitation of the calibration method. The closed form of the Heston and SVJ model are highly

non linear, which results in complications when calibrating the model parameters.

The model studied was based on a 15-day calibration period, which was discussed in Chapter

4. Two financial crises – the 2000 Dot com bubble crisis and the 2008 US Subprime

Mortgage crisis were examined in Chapter 6. It was found that the changes in the calibrated

parameters from the developed model are consistent with the response of the stock market.

Last but not least, neither SV nor SVJ model alone are good enough to predict the market

successfully. They still have their limitations and more sophisticated models such as SVCJ

and SVSCJ models could be used to correct some restrictions of the SVJ model, however,

this is beyond the scope of this study.

23

Acknowledgement

I would like to thank my lecturer Dr Jean-Pierre Zigrand, Reader in Finance of London

School of Economics, for his guidance in this dissertation.

References

Bakshi, G., Cao, C. & Chen, Z., 1997. Empirical performance of alternative option pricing models.

Journal of Finance, LII(5), pp. 2003-2049.

Bakshi, G., Cao, C. & Chen, Z., 2000. Pricing and hedging long-term options. Journal of Econometrics,

Volume 94, pp. 277-318.

Black, F. & Scholes, M., 1973. The pricing of options and Corporate Liabilities. Journal of Political

Economy, Volume 81, pp. 637-59.

Carr, P. & Madan, D. B., 1999. Option evaluation the using fast fourier transform. Journal of

Computational Finance, 2(4), pp. 61-73.

Chaudhury, M., 2011. The Financial Crisis and the Behavior of Stock Prices. [Online]

Available at: http://dx.doi.org/10.2139/ssrn.1802826

Chen, B., 2007. Calibration of the Heston Model with Application in Derivative Pricing and Hedging.

[Online]

Available at: http://ta.twi.tudelft.nl/mf/users/oosterle/oosterlee/chen.pdf

Dungey, M. et al., 2010. Are Financial Crises Alike?, s.l.: International Monetary Fund .

Gatheral, J., 2006. The Volatility Surface: A Practitioner's Guide. s.l.:Wiley Finance.

Heston, S., 1993. A closed-form solutions for options with stochastic volatility. Review of Financial

Studies, Volume 6, pp. 327-343.

Hull, J. & White, A., 1987. The pricing of options on assets with stochastic volatilities. Journal of

Finance, Volume 42, pp. 281-300.

Madan, D. B., Carr, P. P. & Chang, E. C., 1998. The Variance Gamma Process and Option Pricing.

European Finance Review, Volume 2, p. 79–105.

Ncube, M., n.d. Matlab code for Heston Model Calibration and Simulation. [Online]

Available at: http://www.mathworks.com/matlabcentral/fileexchange/29446-heston-model-

calibration-and-simulation/content/HestonCalibration/hestoncalibrationexample.m

Rouah, F. D. & Vainberg, G., 2007. Option Pricing Models & Volatility Using Excel – VBA. s.l.:Wiley.

Sitter, R., 2009. Volatility Surface. [Online]

Available at: http://www.mathworks.com/matlabcentral/fileexchange/23316-volatility-surface

Zhang, J. E. & Shu, J., 2003. Pricing S&P 500 Index Options with Heston’s Model. Hong Kong, 2003

IEEE International Conference on Computational; Intelligence for Financial Engineering CIFEr.

24

Appendix

Table I: 2008 US Subprime Mortgage Crisis

Date V

0

κ θ σ ρ µJ σJ λJ

01/07/2008 0.077881 7.120439 0.020448 0.672074 -0.202065 -0.174200 0.225967 0.585758

16/07/2008 0.084512 6.941103 0.026897 0.757024 -0.150375 -0.175033 0.231080 0.506767

01/08/2008 0.064522 7.530875 0.012819 0.709939 -0.065269 -0.146095 0.185138 0.792894

16/08/2008 0.068887 7.132403 0.019893 0.711664 -0.139355 -0.156610 0.212680 0.635086

01/09/2008 0.089576 6.696984 0.031021 0.626640 -0.273779 -0.186350 0.295827 0.405111

16/09/2008 0.125151 4.474113 0.046114 1.216326 -0.120257 -0.186458 0.305267 0.385285

01/10/2008 1.035481 30.542564 0.799236 2.999874 -0.583049 -0.368511 0.521949 0.151498

16/10/2008 0.346185 4.851679 0.019181 1.884473 -0.660408 -0.176315 0.206577 1.036884

01/11/2008 0.296841 7.504689 0.027985 0.953251 -0.484823 -0.265669 0.248717 0.790265

16/11/2008 0.273603 5.352539 0.000000 0.246616 -0.899972 -0.397555 0.015736 0.533627

01/12/2008 0.340085 4.029946 0.022527 0.884058 -0.538575 -0.372619 0.165967 0.509428

16/12/2008 0.128756 1.036877 0.002099 0.549610 -0.544710 -0.277224 0.213895 0.582263

Table II: 2000 Dot com Bubble Crisis

Date V

0

κ θ σ ρ µ

J

σ

J

λJ

01/08/2001 0.1015 52.8381 0.0100 0.4352 0.6917 -0.0721 0.1039 2.3307

16/08/2001 0.0775 31.0964 0.0100 0.3899 0.4278 -0.0771 0.0998 2.3939

01/09/2001 0.3004 66.1583 0.0119 0.6337 0.2968 -0.0854 0.1068 2.2859

16/09/2001 0.0920 8.7910 0.0102 0.8413 -0.1693 -0.1391 0.0573 1.8325

01/10/2001 0.0881 8.0689 0.0100 0.5538 -0.2824 -0.0995 0.1118 1.7117

16/10/2001 0.0954 9.7037 0.0101 0.7015 -0.3545 -0.0891 0.1256 1.7133

01/11/2001 0.0887 8.2906 0.0174 0.4793 -0.1386 -0.1429 0.1862 0.7813

16/11/2001 0.8155 184.5115 3.0000 3.0000 -0.4214 -0.2877 0.2378 0.2506

01/12/2001 0.0776 6.9532 0.0156 0.5417 -0.0966 -0.1809 0.2198 0.5702

16/12/2001 0.6910 188.1630 3.0000 3.0000 -0.1009 -0.3088 0.1926 0.2623

01/01/2002 0.1092 46.3055 0.7346 0.0947 -0.9000 -0.2277 0.1752 0.3763

16/01/2002 0.2514 148.5651 0.9765 2.9999 0.8932 -0.1305 0.1243 1.0476

01/02/2002 0.6324 300.4410 3.0000 3.0000 0.2088 -0.1769 0.1445 0.5555

16/02/2002 0.1732 62.1793 0.3965 2.9996 0.4785 -0.1396 0.1306 0.9134

01/03/2002 0.4107 325.9699 2.9744 3.0000 0.9000 -0.1352 0.1253 0.8026

16/03/2002 0.0769 23.8455 0.0809 1.0303 0.9000 -0.0941 0.1354 1.0336

01/04/2002 0.0782 25.1994 0.0474 0.8883 0.8995 -0.0769 0.1231 1.3495

16/04/2002 0.4344 279.1500 1.5077 3.0000 0.9000 -0.0881 0.0961 1.5601

01/05/2002 0.3564 193.3800 0.8869 3.0000 0.8999 -0.1020 0.1019 1.3838

16/05/2002 0.0526 29.6190 0.0116 0.4930 0.8999 -0.0606 0.0976 2.5000

01/06/2002 0.0659 18.1300 0.0102 0.3943 0.9000 -0.0779 0.0920 2.6288

16/06/2002 0.1411 44.1400 0.0100 0.2838 0.8579 -0.0710 0.1046 2.4369

01/07/2002 0.3123 53.9420 0.0100 0.3592 -0.0716 -0.0905 0.1190 1.8924

16/07/2002 0.1246 11.2630 0.0100 0.5676 -0.2121 -0.1473 0.0371 1.5193

25

Matlab Code

Note that the following Matlab codes were all coded by the author of this dissertation.

I) SVJcall

function callPrice=SVJcall(spot,K,r,tau,V,kappaV,thetaV,sigmaV,rho,NuJ, NsigmaJ, lambda)

%--------------------------------------------------------------------------

%PURPOSE: computes the option price using SVJ model from Bakshi, Cao, Chen 1997.

%--------------------------------------------------------------------------

%USAGE: C=SVJcall(spot,K,r,tau,V,kappaV,thetaV,sigmaV,rho,uJ, sigmaJ, lambda)

%--------------------------------------------------------------------------

%INPUT: spot - scalar or vector, price of underlying at time t

% K - scalar or vector, strike price

% r - scalar or vector, continuously compound risk free rate expressed as a

% positive decimal number.

% sigmaV- scalar or vector, volatility of the volatility of the

% underlying(same time units as for r)

% tau - scalar or vector, time to maturity (same time units as for r)

% V - scalar or vector, instantaneous volatility

% kappaV - scalar or vector, is the rate at which vt reverts to th

% thetaV - scalar or vector, is the long vol, or long run average price

% volatility; as t tends to infinity, the expected value of ?t tends to ?

% lambda - scalar or vector, risk premium for volatility

% rho - scalar or vector, correlation between underlying and

% volatility (rho<0 generates the leverage effect)

% NuJ = mean percentage jump size, 100% is 1

% NsigmaJ = standard deviation of percentage jump size, 100% is 1

% over spot price

% Lambda = poisson intensity for jumps

%--------------------------------------------------------------------------

%OUTPUT: C - scalar or vector, Heston's model call option price

%--------------------------------------------------------------------------

% integral discretisation points, assume 50 is infinity

dphi=0.01;

maxphi=50;

phi=(eps:dphi:maxphi)';

uJ = NuJ;

sigmaJ = NsigmaJ;

discountFactor = exp(-r*tau);

sigmaVsquared = sigmaV*sigmaV;

rho_sigmaV = rho*sigmaV;

iPhi = i*phi;

iPhiRhoSigmaV = iPhi*rho_sigmaV;

etaV = sqrt((kappaV-(1+iPhi)*rho_sigmaV).*(kappaV-(1+iPhi)*rho_sigmaV)-

iPhi.*(iPhi+1)*sigmaVsquared);

etaVstar = sqrt((kappaV-iPhiRhoSigmaV).*(kappaV-iPhiRhoSigmaV)-iPhi.*(iPhi-1)*sigmaVsquared);

expEtaV = exp(-etaV*tau);

expEtaVstar = exp(-etaVstar*tau);

A = -1*iPhi*log(discountFactor);

B = -1*thetaV*(1/(sigmaVsquared))*2*log(1-(etaV-kappaV+(1+iPhi)*rho_sigmaV.*(1-

expEtaV)).*(1./(2*etaV)));

C = -1*thetaV*(1/sigmaVsquared)*(etaV-kappaV+(1+iPhi)*rho_sigmaV)*tau;

D = iPhi*log(spot);

E = lambda*(1+uJ)*tau*(((1+uJ).^(iPhi)).*exp(i.*phi.*0.5.*(1+i.*phi).*sigmaJ.*sigmaJ)-1);

%sum(E)

F = -1*lambda*iPhi*uJ*tau;

G = (iPhi).*(iPhi+1).*(1-expEtaV).*(1./(2*etaV-(etaV-kappaV+(1+iPhi)*rho_sigmaV).*(1-

expEtaV)))*V;

f1 = exp(A+B+C+D+E+F+G);

Bstar = -1*thetaV*(1./(sigmaVsquared))*2*log(1-(etaVstar-kappaV+iPhiRhoSigmaV.*(1-

expEtaVstar))).*(1./(2*etaVstar));

Cstar = -1*thetaV*(1./sigmaVsquared)*(etaVstar-kappaV+iPhiRhoSigmaV)*tau;

E2 = lambda*tau*(((1+uJ).^(iPhi)).*exp(iPhi*0.5.*(iPhi-1)*sigmaJ*sigmaJ)-1);

%sum(E2)

Gstar = (iPhi).*(iPhi-1).*(1-expEtaVstar).*(1./(2*etaVstar-(etaVstar-

kappaV+iPhiRhoSigmaV).*(1-expEtaVstar)))*V;

26

f2 = exp(A+Bstar+Cstar+D+E2+F+Gstar);

P1 = 0.5+(1/pi)*sum(real(exp(-iPhi*log(K)).*f1./(iPhi))*dphi);

P2 = 0.5+(1/pi)*sum(real(exp(-iPhi*log(K)).*f2./(iPhi))*dphi);

callPrice = spot*P1 -K*discountFactor*P2;

II) SVJcalibration_15Day

function x = SVJcalibration_15Day(Year, FullDateStart, FullDateEnd)

tic

if(Year<2006)

marketData = csvread('RawData1.csv', 1, 0);

else

if(Year<2009)

marketData = csvread('RawData2.csv', 1, 0);

else

marketData = csvread('RawData3.csv', 1, 0);

end

end

T = marketData(1:end, 2)/365;

Strike = marketData(1:end, 4)/1000;

Volume = marketData(1:end, 7);

IV = marketData(1:end, 8);

Date = marketData(1:end, 1);

isCall = marketData(1:end, 3);

r = 0.01;

marketData = csvread('RawDataSPX.csv', 1, 0);

dateSPX = marketData(1:end, 1);

s0SPX = marketData(1:end, 7);

toc

x = SVJcalibration_15DayCubic( Date, T, Strike, IV, Volume, isCall, r, dateSPX, s0SPX,

FullDateStart, FullDateEnd )

end

%*************************************************************************%

function [x] = SVJcalibration_15DayCubic( Date1, mats1, strike1, impvol1, Volume1, isCall1,

r, dateSPX1, s0SPX1, FullDateStart, FullDateEnd )

global impvol; global moneyness; global T; global F0; global r;

%88888888888888888888888888888888888888888888

% load and prepare the data

%88888888888888888888888888888888888888888888

matsAll = [];

moneynessAll = [];

impvolAll = [];

DateAll = [];

VolumeAll = [];

isCallAll = [];

for j=FullDateStart: FullDateEnd

Date = Date1;

mats = mats1;

strike =strike1;

impvol = impvol1;

Volume = Volume1;

isCall = isCall1;

dateSPX = dateSPX1;

s0SPX = s0SPX1;

% narraw down to the date we want

index = (Date~=j);

mats(index) = [];

strike(index) = [];

Volume(index) = [];

27

impvol(index) = [];

isCall(index) = [];

Date(index) = [];

% delete zero impliedVol

index = (impvol==0);

mats(index) = [];

strike(index) = [];

Volume(index) = [];

impvol(index) = [];

isCall(index) = [];

Date(index) = [];

% delete puts

index = (isCall==0);

mats(index) = [];

strike(index) = [];

Volume(index) = [];

impvol(index) = [];

isCall(index) = [];

Date(index) = [];

% delete T>2

index = (mats>1.6);

mats(index) = [];

strike(index) = [];

Volume(index) = [];

impvol(index) = [];

isCall(index) = [];

Date(index) = [];

% delete T<0.1

index = (mats<0.1);

mats(index) = [];

strike(index) = [];

Volume(index) = [];

impvol(index) = [];

isCall(index) = [];

Date(index) = [];

% find the s0

index = (dateSPX~=j);

s0 = s0SPX;

s0(index) = [];

% delete moneyness>1.2

index = (strike>1.6*s0);

mats(index) = [];

strike(index) = [];

Volume(index) = [];

impvol(index) = [];

isCall(index) = [];

Date(index) = [];

matsAll = [matsAll; mats];

moneynessAll = [moneynessAll; strike/s0];

impvolAll = [impvolAll; impvol];

DateAll = [DateAll;Date];

VolumeAll = [VolumeAll;Volume];

isCallAll = [isCallAll;isCall];

end

T = matsAll;

impvol = impvolAll;

moneyness = moneynessAll;

%88888888888888888888888888888888888888888888

% cubic interpolation

%88888888888888888888888888888888888888888888

resolution = 12;

% allocate variables to to interpolate the marketdata.xls data into a

28

% uniformly spaced grid

BSmats = linspace(min(T), max(T), resolution);

BSmoneyness = linspace(min(moneyness), max(moneyness), resolution);

BSIV = nan(resolution, resolution);

Mcubic = nan(resolution*resolution);

IVcubic = nan(resolution*resolution);

Tcubic = nan(resolution*resolution);

% interpolate the data from marketdata.xls unto the uniformly spaced grid

for i = 1:resolution

for j = 1:resolution

BSIV(i,j) = griddata(T,moneyness,impvol,BSmats(j),BSmoneyness(i), 'cubic');

Mcubic(30*(i-1)+j)=BSmoneyness(i);

IVcubic(30*(i-1)+j)= BSIV(i,j);

Tcubic(30*(i-1)+j)= BSmats(j);

end

disp(sprintf('Cubic interpolation on marketDataIV %d of %d', i, resolution ))

end

T = Tcubic;

impvol = IVcubic;

moneyness = Mcubic;

h = figure;

[BSmats BSmoneyness] = meshgrid(BSmats, BSmoneyness);

surf(BSmoneyness, BSmats,BSIV)

view(10,60)

title(sprintf('IV on %d to %d',FullDateStart,FullDateEnd

),'Fontsize',16,'FontWeight','Bold','interpreter','latex');

ylabel('Time $T$','Fontsize',14,'FontWeight','Bold','interpreter','latex');

xlabel('Moneyness $M=\frac{K}{S}$','Fontsize',14,'FontWeight','Bold','interpreter','latex');

zlabel('Implied Volatility

$\sigma(T,M)$','Fontsize',14,'FontWeight','Bold','interpreter','latex');

index = isnan(impvol);

T(index) = [];

impvol(index) = [];

moneyness(index) = [];

% remove negative data

index = (impvol<=0);

T(index) = [];

impvol(index) = [];

moneyness(index) = [];

%88888888888888888888888888888888888888888888

% calibration section

%88888888888888888888888888888888888888888888

% initial guess

x0=[0.08, 5, 0.02, 0.5, -0.2,-0.2,0.2, 0.5];

% limits

lb = [0.05, 3, 0.01, 0, -0.9, -1, 0, 0];

ub = [3, 500, 3, 3, 0.9, 1, 1, 5];

%optimization

tic

x = lsqnonlin(@SVJandBScostCubic,x0,lb,ub);

x

toc

%88888888888888888888888888888888888888888888

% plot SVJ section

%88888888888888888888888888888888888888888888

resolution = 20;

strike = moneyness;

mats = T;

BSmats = linspace(min(mats), max(mats), resolution);

BSstrike = linspace(min(strike), max(strike), resolution);

BSIV = nan(resolution, resolution);

V = x(1);

kappaV = x(2);

29

thetaV = x(3);

sigmaV = x(4);

rho = x(5);

NuJ = x(6);

NsigmaJ = x(7);

lambda =x(8);

%calculate IV

for i = 1:resolution

for j = 1:resolution

price(i,j) = SVJcall(1,BSstrike(i), r, BSmats(j),V,kappaV,thetaV,sigmaV,rho,NuJ,

NsigmaJ, lambda);

price(price<0) = 0 ;

BSIV(i,j) = blsimpv(1, BSstrike(i), r ,BSmats(j), price(i,j));

end

disp(sprintf('Cubic interpolation on marketDataIV %d of %d', i, resolution ))

end

[BSstrike BSmats ] = meshgrid(BSstrike, BSmats);

hold on

surf(BSstrike,BSmats,BSIV),xlabel('Maturity(years)'),ylabel('Strike'),zlabel('Implied

Volatility');

view(10,60)

axis tight;

grid on;

title(sprintf('IV on %d to %d',FullDateStart,FullDateEnd

),'Fontsize',16,'FontWeight','Bold','interpreter','latex');

ylabel('Time $T$','Fontsize',14,'FontWeight','Bold','interpreter','latex');

xlabel('Moneyness $M=\frac{K}{S}$','Fontsize',14,'FontWeight','Bold','interpreter','latex');

zlabel('Implied Volatility

$\sigma(T,M)$','Fontsize',14,'FontWeight','Bold','interpreter','latex');

set(gca,'Fontsize',12,'FontWeight','Bold','LineWidth',2);

set(0, 'defaultfigureunits', 'centimeters')

set(0, 'defaultfigureposition', [0 0 45 20])

set(0, 'defaultaxesposition', [0.15 0.14 0.76 0.75])

colorbar

set(gcf, 'paperpositionmode', 'auto')

saveas(h,sprintf('IV_%d_SVJ 15day calib',FullDateStart),'fig')

saveas(h,sprintf('IV_%d_SVJ 15day calib',FullDateStart),'jpg')

end

%88888888888888888888888888888888888888888888888888888888888888888888888888888888

function [cost]=SVJandBScostCubic(x)

global impvol; global moneyness; global T; global F0; global r;

disp(sprintf('Currently: using SVJandBScost' ))

for i=1:length(T)

BSprice = blsprice(1,moneyness(i),r,T(i),impvol(i));

VSJprice = SVJcall(1,moneyness(i),r,T(i),x(1),x(2),x(3),x(4),x(5),x(6),x(7),x(8));

cost(i)=abs(BSprice-VSJprice);

end

end

%88888888888888888888888888888888888888888888888888888888888888888888888888888888