Final Year Project

62
The Valuation of American Option Contracts Yajing ZHU ID: 09114536 Supervisor: Dr. Stephen James Shaw

Transcript of Final Year Project

The Valuation of American

Option Contracts

Yajing ZHU

ID: 09114536

Supervisor: Dr. Stephen James Shaw

1

Contents

Abstract ........................................................................................................ 0

1. Introduction ............................................................................................. 1

2. Literature Review ..................................................................................... 3

3. Methodology ............................................................................................ 9

3.1 Model Derivation ............................................................................. 10

3.2 Finite Difference Method .................................................................. 16

3.3 Computational Methods ................................................................... 23

3.4 Moving Boundary Method ................................................................ 27

4. Validation of Methodology ....................................................................... 31

4.1 Evaluation of Three Numerical Schemes on European put options .... 31

4.2 Evaluation of the moving boundary method on American put options 35

5. Empirical Analysis ................................................................................... 38

5.1 Data Collection .............................................................................. 38

5.2 Parameter Estimation ..................................................................... 38

5.3 Results .......................................................................................... 39

6. More about the model and algorithm ....................................................... 42

6.1 Assumption on the behaviour stock price ........................................ 42

6.2 Taking dividend payment into account ............................................ 44

6.3 Optimization of the relaxation factor in SOR .................................... 44

6.4 Computational efficiency of the numerical algorithm ........................ 45

7. Limitations and future improvements ....................................................... 45

8. Conclusion ............................................................................................. 47

Appendix .................................................................................................... 49

A.1: MATLAB codes for explicit finite difference scheme .......................... 49

A.2: MATLAB codes for implicit finite difference scheme (LU) ................... 50

A.3: MATLAB codes for implicit finite difference scheme (SOR) ................ 51

A.4: MATLAB codes for Crank-Nicolson finite difference scheme (SOR) ..... 53

A.5: MATLAB codes for moving boundary method ................................... 55

References .................................................................................................. 58

The Valuation of American Option

Contracts

Abstract

This report focuses on solving the problem of pricing American put options in a

numerical way. After a rigorous derivation of the Black-Scholes equation through an

extensive use of Taylor’s expansion, the formula is further modified to be an inequality

such that it accounts for the early-exercise property of the American option. Numerical

methods, namely the finite difference method and the moving boundary method are

employed to solve for the option price. In terms of the finite mesh discretisation in

stock price and time, three schemes, namely the explicit, implicit and Crank-Nicolson

scheme are developed and a comparison of the schemes is performed based on an

illustrative example.

Apparently, finite difference schemes are capable of solving European option prices

with fixed boundaries. After discretisation and the application of Taylor’s expansion for

one more time, a system of linear equations is derived by using linear differences to

approximate the derivatives in the Black-Scholes formula. The moving boundary

technique is, however, appropriate to solve for the American option price as the best

exercise boundary is unknown. It is effectively a combination of the boundary

updating process and the finite difference method with fixed boundaries. Starting from

an initial boundary, the basic idea is to solve a set of fixed boundary problems in order

to get updates for the boundary. A comparison of the traditional approach and the

moving boundary approach shows that the latter is superior, especially in terms of the

reduced computation time and the output of the boundary price as a by-product.

1

To assess the effectiveness of the model, empirical analysis on the pricing of American

put options is performed using the adapted moving boundary method. Statistical

analysis proves the explanatory power of this method. The slight difference between

option values estimated by the model and that from actual data is partly due to the

ill-posed assumptions. To further improve the model, stability analysis on the explicit

scheme is performed; the non-dividend-payment assumption is relaxed and the value

of the relaxation factor in the successive over-relaxation algorithm is optimized to

minimize the convergence time. Replacement of the distribution of stock price and

time-varying volatilities are two possible areas remaining open for future discussion.

1. Introduction

An option contract is a financial derivative and trading these contracts is a

cost-effective alternative to trading directly on the stock market. In financial

engineering, option pricing is a core topic since options are widely used for hedging

and speculation. Currently, there are various option contracts available on the market,

such as the European option, American option and path-dependent options. In brief,

all stock options are based on companies’ stocks and hence, the behaviour of option

prices closely follows the corresponding stock price movements. With an option, an

investor can decide whether or not to exercise the option at the pre-specified price.

The holder of a European option can only exercise it on the expiration date while the

American option holder can exercise the contract any time no later than the expiry

date. A path-dependent option is different as it is priced depending on the previous

price movements of the underlying asset, for instance, the Asian option. In addition,

there is an attractive asymmetry between the right and obligation of both trading

parties. To be specific, an option buyer bears no obligation but the right to exercise the

contract. However, his counterparty has no right but the responsibility to complete the

transaction. Thus, a proper option price is essential to satisfy the needs of both sides

2

of the transaction.

In terms of the option valuation, European options are easy to price since the exercise

boundary is fixed on the expiration date. In particular, for a non-dividend-paying

European option, analytical solutions can be derived from Black and Scholes (1973)

and Merton’s (1973) option pricing model. For the American option, owing to the

flexibility of executing time, there is an inherent possibility for traders to get a higher

payoff. That is why it is currently the major option contract traded on most large

exchanges across the globe. Hence in an efficient market, it is crucial for the seller to

charge a fair premium for the contract to make it a sensible investment for the buyer.

Moreover, an investor should make careful calculations to exercise the American

option at the right time when the payoff is the highest. The premium, also known as

the option price, is what needs to be carefully modelled for real-world trading. This is

the original motivation of carrying out this particular research.

However, because of its early-exercise characteristic, more research efforts are

required to correctly price the American option. Under the non-dividend-paying

assumption, the American call option can be regarded as a European-style option and

can therefore be valued by the standard Black-Scholes formula. The rationale is

straightforward: When the price is higher than the exercise price, instead of exercising

the option and get the intrinsic value only, an investor would rather sell the call option

and get a premium higher than the intrinsic value. Hence, there is no economic benefit

to exercise the American call early. As a result, this narrows the focus of this research

to pricing American put options. For these options, early-excising may lead to a higher

payoff, which complicates the pricing formula. Specifically, the famous Black-Scholes

formula should be adapted since the expected payoff relies on the path of price

movement of the underlying asset. In addition, there is no fixed exercise boundary in

the American put option, leading to no closed-form analytical solutions. For this reason,

3

it is essential to find a good approximation to the option price. Recently, advances in

computer technology have made it possible for various numerical methods to

approximately solve for the price. For example, the finite difference method, finite

element method, Monte Carlo simulation and the binomial method are all possible

candidates.

After a critical review of the past literature, Section 3 will cover a detailed explanation

of the methodology used in terms of the derivation of the formulae and the

construction of numerical algorithms. Following that, algorithms used in this

dissertation will be validated by testing them on an illustrative example. In Section 5,

an empirical analysis is performed to assess the explanatory power of the model.

Briefly, option prices derived from the adapted Black-Scholes formula will be compared

against real values quoted on the market. Finally, a detailed discussion of the

additional issues relevant to the improvement of the model and the algorithm is

presented in Section 6. Limitations and suggestions for the direction of future studies

are summarised in Section 7. Section 8 summarises the entire research project.

2. Literature Review

There are various factors which influence the price of an option: The difference

between current price of the underlying stock and the strike price is essential as it

determines the final payoff; market volatility has a significant impact on option prices

as it reflects the potential risk of quick price changes in the market; the interest rate is

the return on risk-free investments. Investors would regard it as the benchmark to

decide the level of premiums they are willing to pay for the protection against market

risk. To find an optimal option price associated with these risk factors, extensive

research efforts have been devoted to derive a compact option pricing formula.

4

At the beginning of the last century, the stock price was assumed by researchers to

follow a Brownian motion and the drift term is equal to zero (Bachelier, 1900).

However, this model suffers from two major drawbacks: The first one is, by assuming

that investors were all risk-neutral, Bachelier did not take investors’ risk preference

into consideration. The other one is that the stock price might become negative based

on his latter assumption. During the 1960s, a number of academics have modified the

model of Bachelier by stating that the return of stock, rather than the stock price itself

followed a Brownian motion (Sprenkle ,1961). This assertion was also supported later

by Boness (1964) and Samuelson (1965). Furthermore, they incorporated risk

tolerance level and the corresponding different expected rate of return into the model.

However, parameters used in their model were not specifically defined, which made it

impossible for practical use. Nevertheless, this work laid the foundation for the

Black-Scholes model, which was published in 1973 (Black & Scholes). In that paper,

Black and Scholes derived an explicit formula to price the non-dividend-paying

European option by constructing a riskless portfolio. Though their model was based on

a set of theoretical assumptions which have been constantly criticised, it does not

undermine its significance in the scientific literature. To solve the Black-Scholes

formula, the original partial differential equation (PDE) was transformed into a

standard heat equation given the fixed exercise boundaries and the prescribed

assumptions. In this way, an exact analytical solution to the approximation to the

option price was derived. The formula suggests that option price will not be affected

by individual’s risk tolerance level and hence, expected return of the stock is not

included in this model. Another marked feature of the formula is that it can be easily

applied to empirical data as all the model inputs, such as the volatility and interest rate,

can be estimated from historical data. Starting from the Brownian process and Ito’s

Lemma, full details of the derivation are shown in Hull’s book (2006). In spite of the

advantages, the Black-Scholes model has a number of flaws in terms of its weak

assumptions. For instance, the capital market is not frictionless as there exists

5

non-negligible tax and transaction costs. In addition, trading is not continuous,

especially at the opening of the market. It therefore undermines the accuracy of

theoretical option prices generated by the model. To account for the dividend-paying

property of certain common stocks, Merton (1973) extended the Black-Scholes model

to fit into the rational pricing theory. However, empirical evidence shows that the

distribution of asset returns have fatter tails than assumed, challenging the initial

assumptions which their models lie on. Furthermore, the Black-Scholes model is based

on the assumption that the behaviour of stock price follows a Markov process. It is

argued that the formula will not be valid should this assumption be flawed (Bates,

1995).

Considering this, risk neutrality is an alternative to derive the Black-Scholes formula

since it does not necessarily require the Markov property assumption to hold. In Cox

and Ross’ paper (1976) and Harrison and Pliska’s contribution (1981), the expected

value of an option was calculated by assigning probabilities to the intrinsic option

values from the next time step. In a risk neutral world, stock price was discounted at

the risk neutral rate and the probability was used to reflect the volatility of the

underlying stock price. This derivation is systematic but the martingale pricing

technique involved is more complicated than the no-arbitrage strategy proposed by

Black and Scholes. A discussion of various relevant methods introduced in the past

several decades was summarised by Andreasen et al. (1999). To further account for

the observed volatility smile of option price, Kou (2002) introduced a

double-exponential jump diffusion model by adding a probability measure of return

jumps into the formula. One major drawback of this extended model is that riskless

hedging can no longer be conducted due to the introduced return jumps.

In terms of the valuation of American options, the original Black-Scholes formula

should be adapted by replacing the equality in the equation with an inequality

6

(Wilmott et al., 1995). The rationale is straightforward since in a riskless portfolio, the

American option is valued higher than its European counterpart due to its

early-exercise premium. Owing to the arbitrary exercise boundary, however, no

analytical solution is available to explicitly solve for the price. Numerical methods have

therefore been introduced to find an approximation to the exact solution of the

Black-Scholes formula. In 1977, a finite difference method was proposed to

approximate the value of American put options (Brennan and Schwartz). In essence,

the domain of continuous stock price and time can be discretised into a fine mesh with

a finite number of price and time steps. The key idea is to use linear finite difference

approximations to approximate the partial derivatives in the adapted Black-Scholes

equation. Approximating the approximation can be realized using Taylor’s series

expansions. Through this conversion, at each mesh point, the PDE can therefore be

rewritten in terms of discrete linear differences. Hence, we have a system of linear

equations to solve for the option price on each grid point. To solve the explicit scheme,

the direct LU-factorization method can be easily applied. To solve the implicit scheme,

both the LU-factorization and Gauss-Seidel iteration method are possible candidates

whereas the latter is more efficient. In particular, when the large system is sparse, the

iterative successive over-relaxation (SOR) can speed up the convergence of the

Gauss-Seidel method (Kreyszig, 2006). Using the finite difference method, option

values can be obtained on each grid point. For pricing American options, this method

should accompany the techniques aimed at solving for the exercise boundary.

According to Mitchell and Griffiths (1980), this method has a high level of convergence

and is accurate as long as it is stable. However, instability and time-consuming

computation are two major shortcomings of this method if the mesh is not properly

established.

In 1979, as an alternative, Cox et al. (1979) constructed a binomial model to value the

option. In effect, the explicit finite difference method is equivalent to its trinomial

7

variant. The binomial model is widely used by practitioners due to the simple concept

behind the model. However, while valuing the path-dependent options, there is one

apparent shortcoming in this technique. The model parameters would grow

exponentially as the number of steps increases and so would the associated error

term.

In terms of analytical approximations to the price of American options, Geske and

Johnson (1984) proposed a quadratic approximation formula. One major merit of this

analytical approximation method lies in the relative accuracy as it is free from the

truncation error arising from numerical discretisation. In their model, an American

option price could be divided into several price units. Each of the units was treated as

a stand-alone European option which could be only exercised at a fixed time point.

The value of an American option on any exercise date could therefore be obtained by

extrapolation using prices of two neighbouring units. Despite the merits, this method

is still an approximation to the price of an American put. It could not determine the

best exercise boundary and extrapolation might impair the model’s accuracy.

An alternative to solve for the price of an American put was proposed by Carr et al.

(1992). They equated the value of an American option to the value of its

European-style counterpart plus a premium of the time value of money. As the

premium is related to the exercise boundary, it can be analytically expressed in terms

of an integral. Numerical integration methods were then directly employed to finally

solve for the exercise boundary and the associated option price. Other kinds of

contemporary numerical methods were broadly discussed by Broadie and Detemple

(1996). In 2001, Longstaff and Schwartz (2001) initiated a least-square Monte Carlo

simulation method to approximately solve for the value of an American option. This

method can be applied to an option with multiple risk factors and is easy to implement.

Nonetheless, it is time-consuming to simulate a large number of paths to ensure the

8

accuracy of the ultimate estimator. As an alternative, Memon (2012) proposed a

penalty approach to accompany the finite element method. In this paper, the

inequality was firstly transformed back into the equality using the penalty approach

and an exercise region was truncated. The finite element method was afterwards used

to find the highest payoff at a certain time point within the region. This algorithm can

solve for the price and the executing time of an American option simultaneously but a

truncation error is inevitable. A careful convergence analysis is therefore required.

Nonetheless, the above mentioned literature fails to predict well the best exercise

price for put option holders. Moreover, boundary conditions are pre-specified in the

European option. For American options, the exercise boundary is unknown so that the

technique of boundary searching is crucial to accompany the finite difference method.

Muthuraman (2006) proposed a moving boundary method to approximately generate

the best exercise price at each time point. Briefly, it is an iterative process. An initial

boundary is imposed by making a guess, ensuring that it is below the best exercise

price. The next step is to update the boundary following the no-arbitrage argument. It

has been proved that by so doing, the updated boundaries will converge to the best

exercise boundary in a monotonic way. Thus, the moving boundary problem is

successfully converted to a set of fixed boundary problems. One major virtue of this

approach is that it significantly reduces the computation time as it would only take

several steps to reach the pre-specified degree of convergence. It also helps to

complete the pricing function by producing the boundary exercise prices so that it has

directive significance to real-world option traders. Despite the merits, this method is

difficult to program due to its complex logic. One should also be careful in choosing

the right convergence criterion as there might be a chance that the optimal boundary

is either not reached or skipped.

9

3. Methodology

The purpose of this dissertation is firstly, to derive the formula for pricing the American

put option and secondly, to understand how numerical methods can be applied to

value American put options. In a real market, investors are exposed to various risks

and have different risk preferences. In the model, not all risk factors can be accounted

for. Indifference to risk is an essential assumption as it makes the valuation of the

portfolio independent of investors’ personal risk preferences. In this sense, investors

will not be compensated for bearing extra risk and the expected return of the portfolio

is equal to the risk-free interest rate. Thus, the only risk accessible in the model is

reflected by the so-called risk-neutral probability, which is an abstract summary of risk

factors existing in the market. The basic idea of option pricing lies in the

approximation to the value changes in related factors. In other words, Black-Scholes

model is in essence a result of re-arranging after an extensive use of Taylor’s

expansion. To price the American put option numerically, an in-depth study in finite

difference method is undertaken. After a discretization of the continuous stock price

and time, Taylor’s expansion is again extensively applied on each grid point to

approximate partial derivatives in the PDE using linear difference approximations. This

in turn gives us a system of linear equations covering all mesh points. To solve this, the

explicit scheme, the implicit scheme and the Crank-Nicolson scheme which combines

the above two are the main focus in this dissertation. To solve the explicit scheme, the

direct LU factorization is applied; to solve the implicit and Crank-Nicolson scheme,

both the LU factorization and the iterative successive over-relaxation method (SOR) is

employed. Extra issues in concern are the computation time, the rate of convergence

and the accuracy of the algorithm regardless of rounding errors.

10

3.1 Model Derivation

In this dissertation, the Black-Scholes formula is the starting point where further

adaptations of the pricing of American puts will be based on. Before deriving the

formula, the following assumptions should be made (Black & Scholes, 1973):

1) Stock price (S) follows a random walk and is lognormal distributed;

2) Riskless interest rate (r), the expected growth rate (𝜇) and the volatility of stock

price (𝜎) are known and constant over time;

3) The equity market is deep and perfect. This means: continuous trading or hedging

is possible without tax, dividends and various transaction costs;

4) No arbitrage opportunity exists in the market;

5) No constraints on short-selling activities and all assets are divisible.

Among all these assumptions, (1) and (2) are typical characteristics of mature stocks

that have survived in the market for a long time (Black & Scholes, 1973). These two

properties do not hold in newly issued stocks as the price pattern would vary

significantly in the long term. The other three assumptions are essential to ensure the

option price calculated from the Black-Scholes formula is an equilibrium price in a

stable market in the long term (Hull, 2003). Only when all these assumptions are

fulfilled will the output from the Black-Scholes formula agree with the actual option

price determined by the demand and supply in the real market.

To get the option value 𝑓(𝑆, 𝑡), 𝛿𝑓 and 𝛿𝑆 are of a significant importance.

According to Hull (2003), stock price follows a stochastic Brownian motion, namely,

𝑑𝑆 = 𝜇𝑆𝑑𝑡 + 𝜎𝑆𝑑𝑥. (1)

Before going any further, this assumption can be proved as follows so as to act as a

prerequisite for the Black-Scholes formula. The following adapted proof is performed

based on the book ‘Mathematical Modelling and Methods of Option Pricing’ Section 5.1

(Jiang, 2003)

11

Proof: (Using the Binomial Tree Method)

Assuming stock price today is S0 and the associated option price today is f0. After a

period of length t, stock price might increase to Su or decrease to Sd, where

𝑆𝑢 = 𝑆0 ∗𝑢

𝑣, 𝑆𝑑 = 𝑆0 ∗

𝑑

𝑣, 𝑣 is the discount factor,

𝑢

𝑣∙

𝑑

𝑣= 1 and

𝑢

𝑣= 𝑒𝜎√𝛿𝑡;

𝑑

𝑣= 𝑒−𝜎√𝛿𝑡.

A rigorous proof of the settings can be found in Muthuraman (2006) and is beyond the

scope of this dissertation.

In a continuous trading market, to ensure that no arbitrage opportunities are

long-lasting, a riskless portfolio (𝜋 = 𝑓 − ∆𝑆) can be designed with an expected return

equal to the risk-free interest rate. A portfolio that contains a short position in ∆

number of stocks and a long position in an option is taken as a simple example. In

effect, it does not matter whether it is a call or a put as the basic idea is exactly the

same. That is, 𝜋𝑡 ∙ 𝑒−𝑟𝑡 = 𝜋0 , where 𝜋𝑡 = 𝑓𝑢 − ∆𝑆𝑢 𝑜𝑟 𝜋𝑡 = 𝑓𝑑 − ∆𝑆𝑑 . In terms of

portfolio valuation, a further assumption of risk-neutrality should be imposed. Under

this assumption, as was explained above, the expected return of the portfolio is equal

to the risk-free interest rate. To put it in a mathematical way, we have

𝑓𝑢 − ∆𝑆𝑢 = 𝑓𝑑 − ∆𝑆𝑑 and 𝜋0 = (𝑓𝑢 − ∆ ∙ 𝑆𝑢) ∙ 𝑒−𝑟𝑡.

In a risk-neutral world, this gives us

∆=𝑓𝑢−𝑓𝑑

𝑆𝑢−𝑆𝑑 and 𝑓0 = 𝑒−𝑟𝑡 ∙ (

𝑒𝑟𝑡−𝑑

𝑢−𝑑𝑓𝑢 +

𝑢−𝑒𝑟𝑡

𝑢−𝑑𝑓𝑑),

where 𝑒𝑟𝑡−𝑑

𝑢−𝑑 is the risk-neutral probability of a stock price going up (𝑃𝑢) and the

discount rate is 𝑣 = 𝑒𝑟𝑡.

Thus,

𝑃𝑢 =𝑣 − 𝑑

𝑢 − 𝑑=

1 − 𝑑/𝑣

𝑢/𝑣 − 𝑑/𝑣=

1 − 𝑒−𝜎√𝛿𝑡

𝑒𝜎√𝛿𝑡 − 𝑒−𝜎√𝛿𝑡.

Let 𝜎√𝛿𝑡 = 𝑚 and apply Taylor’s expansion to 𝑒−𝑚 and 𝑒𝑚, we have

𝑃𝑢 =𝑚+

𝑚3

3!+

𝑚5

5!+⋯−(

𝑚2

2!+

𝑚4

4!+⋯)

2(𝑚+𝑚3

3!+

𝑚5

5!+⋯)

=1

2+ 𝑂(√𝛿𝑡).

12

That is to say, as 𝛿𝑡 → 0, 𝑃𝑢 →1

2.

Therefore, return of a stock in terms of present value is,

𝑆𝑡+𝛿𝑡𝑃𝑉 − 𝑆𝑡

𝑃𝑉

𝑆𝑡𝑃𝑉 =

{

𝑢

𝑝− 1 = 𝑒𝜎√𝛿𝑡 − 1 = 𝜎√𝛿𝑡 + 𝑂(𝛿𝑡) … … (𝑃𝑢 =

1

2)

𝑑

𝑝− 1 = 𝑒−𝜎√𝛿𝑡 − 1 = −𝜎√𝛿𝑡 + 𝑂(𝛿𝑡) … … (𝑃𝑑 =

1

2)

This yields the expected return= 𝜎√𝛿𝑡 ∙ 𝑊(𝑡), where 𝑊(𝑡) = 1 when stock price

increases and -1 when it decreases.

Next, shifting the focus onto the logarithm of stock returns, we have

𝑙𝑜𝑔 (1 +𝑆𝑡+𝛿𝑡

𝑃𝑉−𝑆𝑡𝑃𝑉

𝑆𝑡𝑃𝑉 ) = 𝑙𝑜𝑔 (1 +

𝛿𝑆

𝑆).

As 𝛿𝑡 → 0, 𝛿𝑆 → 0. This ensures the applicability of Taylor’s expansion for natural

logarithm around zero, which is

𝑙𝑜𝑔 (1 +𝛿𝑆

𝑆) =

𝛿𝑆

𝑆−

(𝛿𝑆

𝑆)2

2+

(𝛿𝑆

𝑆)3

3+ ⋯ =

𝛿𝑆

𝑆−

(𝛿𝑆

𝑆)2

2+ 𝑂(𝛿𝑆3).

This is equivalent to

𝑙𝑜𝑔 (𝑆𝑡+𝛿𝑡

𝑃𝑉

𝑆𝑡𝑃𝑉 ) = 𝜎√𝛿𝑡 ∙ 𝑊(𝑡) −

1

2𝜎2𝛿𝑡.

By setting S0=1 and 0< t = tn <T, we have

𝑙𝑜𝑔(𝑆𝑛𝑃𝑉) = 𝑙𝑜𝑔 (

𝑆1

𝑆0∙𝑆2

𝑆1∙𝑆3

𝑆2… ∙

𝑆𝑛

𝑆𝑛−1) = ∑ 𝑙𝑜𝑔 (

𝑆𝑛𝑃𝑉

𝑆𝑛−1𝑃𝑉) =

𝑛

𝑖=1

[∑ 𝜎√𝛿𝑡 ∙ 𝑊(𝑡)𝑖

𝑛

𝑖=1

] −1

2𝜎2𝑡𝑛

After converting the present value to future stock price, we have,

𝑙𝑜𝑔(𝑆𝑛) = 𝑙𝑜𝑔(𝑆𝑛𝑃𝑉 ∙ 𝑒𝑟𝑡𝑛) = 𝑙𝑜𝑔(𝑆𝑛

𝑃𝑉) + 𝑟𝑡𝑛 = (𝑟 −1

2𝜎2) 𝑡𝑛 + [∑ 𝜎√𝛿𝑡 ∙ 𝑊(𝑡)𝑖

𝑛

𝑖=1

]

Hence,

𝑙𝑜𝑔(𝑆(𝑡)) = (𝑟 −1

2𝜎2) 𝑡 + 𝜎√𝛿𝑡 ∙ ∑ 𝑊(𝑡)𝑖

𝑛𝑖=1 . (2)

Note that, √𝛿𝑡 ∙ ∑ 𝑊(𝑡)𝑖 =𝑛𝑖=1 √

𝑡

𝑛∙ ∑ 𝑊(𝑡)𝑖 =𝑛

𝑖=1 √𝑡 ∙∑ 𝑊(𝑡)𝑖

𝑛𝑖=1

√𝑛, where E[W(t)]=0 and

Var[W(t)]=1. That is to say, when n is large, according to the central limit theorem,

∑ 𝑊(𝑡)𝑖𝑛𝑖=1

√𝑛~𝑁(0,1).

13

Finally, let √𝛿𝑡 ∙ ∑ 𝑊(𝑡)𝑖 =𝑛𝑖=1 𝑅(𝑡), we therefore have

𝑆(𝑡) = 𝑆0𝑒(𝑟−

1

2𝜎2)𝑡+𝜎𝑅(𝑡), (3)

where 𝑅(𝑡)~𝑁(0, 𝑡).

Hence, it is proved that stock price S follows a geometric Brownian motion. After this,

efforts are devoted to deriving the formula for 𝑑𝑆 . Following (3), S(t) can be

re-written as a function F(Rt, t). Apply Taylor’s expansion, we have

𝑑𝐹(𝑅𝑡, 𝑡) =𝜕𝐹

𝜕𝑅𝑡∙ 𝑑𝑅𝑡 +

𝜕𝐹

𝜕𝑡∙ 𝑑𝑡 +

1

2 ∙

𝜕2𝐹

𝜕𝑅𝑡2 ∙ 𝑑𝑅𝑡

2 + 𝜕2𝐹

𝜕𝑅𝑡𝜕𝑡∙ 𝑑𝑅𝑡𝑑𝑡 +

1

2 ∙

𝜕2𝐹

𝜕𝑡2 ∙ 𝑑𝑡2 + ⋯ (4)

Obviously, 𝑑𝑅𝑡 ∙ 𝑑𝑡~𝑂(𝑑𝑡3

2). As 𝑑𝑡 → 0, higher orders of 𝑑𝑡 will approach zero faster

than 𝑑𝑡 does. That is to say, 𝑡2 → 0, 𝑑𝑅𝑡 ∙ 𝑑𝑡 → 0, 𝑑𝑅𝑡2 → 𝑑𝑡.

Substituting these terms back into (4) yields,

𝑑𝐹(𝑅𝑡, 𝑡) = (𝜕𝐹

𝜕𝑡+

1

2 ∙

𝜕2𝐹

𝜕𝑅𝑡2) ∙ 𝑑𝑡 +

𝜕𝐹

𝜕𝑅𝑡∙ 𝑑𝑅𝑡 + 𝑂(𝑑𝑡) (5)

where

∂F

∂t= (r −

1

2σ2) S0e

(r−12σ2)t+σR(t);

∂F

∂Rt= σ ∙ S0e

(r−12σ2)t+σR(t) ;

∂2F

∂Rt2 = σ2 ∙ S0e

(r−12σ2)t+σR(t).

Re-arranging (5), we have

𝑑𝑆 = 𝑟 ∙ 𝑆(𝑡) ∙ 𝑑𝑡 + 𝜎 ∙ 𝑆(𝑡) ∙ 𝑑𝑅(𝑡)

In a risk-neutral world, as was explained before, 𝜇 = 𝑟.

Hence,

𝑑𝑆(𝑡)

𝑆(𝑡)= 𝜇 ∙ 𝑑𝑡 + 𝜎 ∙ 𝑑𝑅(𝑡) (6)

The only part that has not been evaluated so far is 𝑑𝑓. Again, Taylor’s expansion is

applied as follows,

𝑑𝑓 =𝜕𝑓

𝜕𝑆𝑑𝑆 +

𝜕𝑓

𝜕𝑡𝑑𝑡 +

1

2∙

𝜕2𝑓

𝜕𝑆2 𝑑𝑆2 + ⋯ (7)

Note, the terms with higher orders of dt are neglected as when dt → 0, they would

14

approach zero even faster. Substituting (6) back into (7) and re-arrange the whole

equation would yield

𝑑𝑓 = (𝜇𝑆𝜕𝑓

𝜕𝑆+

𝜕𝑓

𝜕𝑡+

1

2𝜎2𝑆2 𝜕2𝑓

𝜕𝑆2)𝑑𝑡 + 𝜎𝑆𝜕𝑓

𝜕𝑆𝑑𝑅 (8)

To get rid of the term dR, a riskless portfolio should be constructed based on the

riskless arbitrage argument and the applicability of continuous hedging.

That is to say, 𝜋 = 𝑓 − ∆𝑆 and 𝑑𝜋 = 𝑑𝑓 − ∆𝑑𝑆 = 𝑟𝜋𝑑𝑡 .

Substituting (6) and (8) into the above equation leads to

( 𝜎𝑆𝜕𝑓

𝜕𝑆𝑑𝑅) + (𝜇𝑆

𝜕𝑓

𝜕𝑆+

𝜕𝑓

𝜕𝑡+

1

2𝜎2𝑆2

𝜕2𝑓

𝜕𝑆2)𝑑𝑡 − ∆( 𝜇𝑆𝑑𝑡 + 𝜎𝑆𝑑𝑅) = 𝑟𝜋𝑑𝑡

On cancellation of dR, we have ∆=𝜕𝑓

𝜕𝑆 and after re-arranging,

𝜕𝑓

𝜕𝑡+

1

2 𝜎2𝑆2 ∙

𝜕2𝑓

𝜕𝑆2 + 𝑟𝑆 ∙𝜕𝑓

𝜕𝑆− 𝑟𝑓 = 0 (9)

where S denotes the stock price; t denotes the time; f = f(S, t); σ denotes the

volatility of the stock price and r denotes the risk-free interest rate. (9) is the formula

used to price a standard non-dividend-paying European option. The associated

boundary conditions are as follows (T denotes the expiration date while E denotes the

exercise price):

At maturity, the non-negative payoff depends on the difference of exercise price and

stock price, that is

𝑓(𝑆𝑇 , 𝑇) = 𝑚𝑎𝑥(𝐸 − 𝑆𝑇 , 0) 𝑎𝑡 𝑡𝑖𝑚𝑒 = 𝑇.

At any time point during the option’s life, when stock price approaches zero, the option

price at time t is equal to the final payoff discounted back to time t.

𝑓(𝑆𝑡, 𝑡) = 𝐸𝑒−𝑟(𝑇−𝑡) 𝑤ℎ𝑒𝑟𝑒 𝑆𝑡 → 0

When stock price is infinitely large, it is not reasonable to exercise the put option as

there is no foreseeable payoff. That is

𝑓(𝑆𝑡, 𝑡) = 0 𝑤ℎ𝑒𝑟𝑒 𝑆𝑡 → ∞.

15

One interesting observation is that μ - the expected price growth rate - no longer

exists in the Black-Scholes formula. The rationale behind this is that the Black-Scholes

model would generate the equilibrium option price. Based on the availability of

continuous riskless hedging and speculation, people with different expectations on μ,

will eventually settle to pay for the equilibrium option price. Thus, traders’ original

expectation on the asset growth rate will have no influence on the equilibrium option

price.

For the American option, the equality no longer holds due to its potential for early

exercise. Referring to Wilmott (2006), the put option holder must exercise early if the

stock price drops drastically. Therefore, the whole S-t space shall be divided into two

sub-regions – the early exercise region (Ω1) and the holding region(Ω2). Furthermore,

according to the no-arbitrage assumption, the return from a riskless portfolio shall not

exceed the return from bank savings. To put it mathematically,

𝜕𝑓

𝜕𝑡+

1

2𝜎2𝑆2 𝜕2𝑓

𝜕𝑆2 + 𝑟𝑆𝜕𝑓

𝜕𝑆− 𝑟𝑓 ≤ 0 (10)

Let 𝑆𝑝(𝑡) denote the stock price at which option holders will be better off if they

exercise the put early. It is also named ‘optimal exercise boundary’ in Wilmott (2006).

In other words, in the region 0 ≤ 𝑆 ≤ 𝑆𝑝(𝑡), exercising early is an optimal choice since

𝑓(𝑆, 𝑡) = 𝑝𝑎𝑦𝑜𝑓𝑓 (𝑆(𝑡)) = max ( 𝐸 − 𝑆(𝑡), 0); in the region 𝑆 > 𝑆𝑝(𝑡), the put option

should not be exercised until maturity since 𝑓(𝑆, 𝑡) > 𝑝𝑎𝑦𝑜𝑓𝑓 (𝑆(𝑡)) . It is therefore

similar to a standard European option as the equality of Black-Scholes formula holds in

this case. For American options, boundary conditions are imposed at 𝑆 = 𝑆𝑝(𝑡) such

that 𝑓(𝑆, 𝑡) and 𝜕𝑓

𝜕𝑆 are continuous in time. Hence,

𝜕𝑓

𝜕𝑆|𝑆=𝑆𝑝(𝑡)

= −1. The following

paragraph explains the rationale behind this condition.

Based on the no-arbitrage assumption, 𝑓(𝑆, 𝑡) ≥ 𝑝𝑎𝑦𝑜𝑓𝑓(𝑆(𝑡)) must hold; otherwise,

arbitrageurs would step in by purchasing the put option and exercise it immediately to

16

gain a return without cost. If 𝜕𝑓

𝜕𝑆|𝑆=𝑆𝑝(𝑡)

< −1, the curve of option values will fall below

the payoff curve and this violates the prescribed no-arbitrage assumption. On the

contrary, if 𝜕𝑓

𝜕𝑆|𝑆=𝑆𝑝(𝑡)

> −1, exercising the option at 𝑆 < 𝑆𝑝(𝑡) will lead to a higher

net payoff as this part of the curve of option values falls below the payoff curve. In

summary, 𝜕𝑓

𝜕𝑆|𝑆=𝑆𝑝(𝑡)

= −1 is essential as long as the no-arbitrage assumption is in

effect. That is to say, 𝑆 = 𝑆𝑝(𝑡) is the point where the curve of option values meets

smoothly with the payoff curve.

For a European option, analytical solutions can be derived by transforming (9) into a

standard heat equation following the assumptions imposed by Black and Scholes (see

the beginning of Section 3.1). For an American option, however, it is impossible to

obtain a closed-form analytic solution due to the inequality in (10). Hence, numerical

methods can be employed to approximately solve for the option value.

3.2 Finite Difference Method

In spite of a number of numerical methods introduced by various references, finite

difference method will be the major focus in this dissertation. The finite difference

method is a numerical approach that relies heavily on Taylor’s expansion. It uses linear

difference approximations to partial derivatives in the Black-Scholes PDE (Mitchell &

Griffiths, 1980). As one of the basic numerical methods, it is accurate and easy to

implement. Moreover, once fully grasped the idea of this method, it can be flexibly

generalised to price other financial contracts that are popular on the market. In the

Black-Scholes model, stock price and time are the only two variables essential to

determine an option value. Thus, a two-dimension mesh for f=f (t, S) is constructed in

Figure 1 with stock price on the horizontal axis and time on the vertical axis. Briefly, by

using this mesh, discretisation is applied to the space of continuous stock price and

17

time. Each grid point on the mesh represents one option value – f (t,S) – where

t = iδt, S = jδS . For simplicity, it is denoted by f𝑖,𝑗 where i = 0,1,2… N and j =

0,1,2 … M. Theoretically, S can take values until infinity while t can only take values up

to T – the maturity date –. However, it is impractical to solve option values for all S.

Hence, the infinitely large mesh is truncated at the value S= Smax. Note, δt = T/N

(time step); δS = Smax / M (asset step) and the total number of grid points is

therefore (N+1) X (M+1). For practical concerns, the entire space can be truncated at

T and Smax to approximately solve for the option price in a numerical sense.

In this dissertation, three schemes, the explicit scheme, implicit scheme and

Crank-Nicolson scheme are carefully studied. The following sub-sections will describe

each scheme in detail.

Figure 1: Mesh for the finite difference method (Adapted from Hull (2006))

3.2.1 Explicit Scheme

Figure 2: Explicit Finite Difference Method

Notation: 𝑓𝑖+1,𝑗 = 𝑓(𝑡 + 𝛿𝑡, 𝑆) ; 𝑓𝑖+1,𝑗−1 = 𝑓(𝑡 + 𝛿𝑡, 𝑆 − 𝛿𝑆); 𝑓𝑖+1,𝑗+1 = 𝑓(𝑡 + 𝛿𝑡, 𝑆 + 𝛿𝑆).

18

For the explicit scheme, a great of number of references apply the transformation in

time (t = T − iδt) such that forward difference in time can be applied. For the scheme

to be used in this dissertation, however, final boundary conditions should be imposed.

Hence, backward difference in time is used as the calculation steps backwards in time.

Central difference is used for S because there is no specific requirement for the

direction of S. In this way, the initial option value can be derived explicitly. At each step,

grid points with unknown values can be determined by the neighbouring points with

known values. The boundary conditions should be adapted properly. For a European

put option, boundary conditions illustrated before can be denoted as follows:

𝑓𝑇,𝑗 = 𝑚𝑎𝑥(𝐸 − 𝑆𝑇 , 0) 𝑎𝑡 𝑡𝑖𝑚𝑒 = 𝑇

𝑓𝑖,0 = 𝐸𝑒−𝑟(𝑇−𝑖𝑑𝑡) 𝑤ℎ𝑒𝑟𝑒 𝑆 → 0

𝑓𝑖,𝑆𝑡= 0 𝑤ℎ𝑒𝑟𝑒 𝑆𝑡 → ∞

It is practically impossible to assign an infinitely large stock price. In practice, the mesh

is truncated at a finite but large stock price St = Smax. This leads to a problem as the

truncation error will be inevitably introduced into the numerical scheme. The

derivation process of the difference equation for the explicit scheme is as follows:

To simplify the illustration of the finite difference scheme, equation (9) can be

re-written as,

𝜕𝑓

𝜕𝑡+ 𝑎 ∙

𝜕2𝑓

𝜕𝑆2 + 𝑏 ∙𝜕𝑓

𝜕𝑆+ 𝑐𝑓 = 0,

where a =1

2𝜎2𝑆2; b = rS; c = −r

Firstly, expand fi,j with respect to time t,

𝑓𝑖+1,𝑗 = 𝑓𝑖,𝑗 +𝜕𝑓

𝜕𝑡 𝛿𝑡 +

1

2 𝜕2𝑓

𝜕𝑡2 𝛿𝑡2 + 𝑂(𝛿𝑡3) (11)

Re-arranging (11) yields,

𝜕𝑓

𝜕𝑡|𝑖+1,𝑗

=𝑓𝑖+1,𝑗−𝑓𝑖,𝑗−𝑂(𝛿𝑡2)

𝛿𝑡=

𝑓𝑖+1,𝑗−𝑓𝑖,𝑗

𝛿𝑡+ 𝑂(𝛿𝑡)

Secondly, using central difference to approximate the change in fi,j with respect to S,

𝑓𝑖+1,𝑗+1 = 𝑓𝑖+1,𝑗 +𝜕𝑓

𝜕𝑆 𝛿𝑆 +

1

2 𝜕2𝑓

𝜕𝑆2 𝛿𝑆2 + 𝑂(𝛿𝑆3) (12)

19

𝑓𝑖+1,𝑗−1 = 𝑓𝑖+1,𝑗 −𝜕𝑓

𝜕𝑆 𝛿𝑆 +

1

2 𝜕2𝑓

𝜕𝑆2 𝛿𝑆2 −1

6 𝜕3𝑓

𝜕𝑆3 𝛿𝑆3 + 𝑂(𝛿𝑆4) (13)

Re-arranging (12) and (13) yields,

𝜕𝑓

𝜕𝑆|𝑖+1,𝑗

=𝑓𝑖+1,𝑗+1−𝑓𝑖+1,𝑗−1

2𝛿𝑆+ 𝑂(𝛿𝑆2)

𝜕2𝑓

𝜕𝑆2|𝑖+1,𝑗

=𝑓𝑖+1,𝑗+1−2𝑓𝑖+1,𝑗+𝑓𝑖+1,𝑗−1

𝛿𝑆2 + 𝑂(𝛿𝑆2)

Substituting ∂𝑓

∂t,

∂𝑓

∂S and

𝜕2𝑓

𝜕𝑆2 back into (9), we have

𝑓𝑖,𝑗 = 𝑓𝑖+1,𝑗−1 ∙ (𝑎𝑖+1,𝑗 ∙𝛿𝑡

𝛿𝑆2− 𝑏𝑖+1,𝑗 ∙

𝛿𝑡

2𝛿𝑆) (14)

+𝑓𝑖+1,𝑗 ∙ (1 − 2𝑎𝑖+1,𝑗 ∙𝛿𝑡

𝛿𝑆2 + 𝑐𝑖+1,𝑗 ∙ 𝛿𝑡)

+𝑓𝑖+1,𝑗+1 ∙ (𝑎𝑖+1,𝑗 ∙𝛿𝑡

𝛿𝑆2+ 𝑏𝑖+1,𝑗 ∙

𝛿𝑡

2𝛿𝑆)

+ O (𝛿𝑡, 𝛿𝑆2).

Hence, the explicit forward difference scheme is

𝑓𝑖,𝑗 = 𝐴𝑖+1,𝑗 ∙ 𝑓𝑖+1,𝑗−1 + (1 + 𝐵𝑖+1,𝑗) ∙ 𝑓𝑖+1,𝑗 + 𝐶𝑖+1,𝑗 ∙ 𝑓𝑖+1,𝑗+1 + 𝑂 (𝛿𝑡, 𝛿𝑆2) (15)

where 𝐴𝑖+1,𝑗 =1

2𝜎2𝑗2𝛿𝑡 −

1

2𝑟𝑗𝛿𝑡; 𝐵𝑖+1,𝑗 = −𝜎2𝑗2𝛿𝑡 − 𝑟𝛿𝑡; 𝐶𝑖+1,𝑗 =

1

2𝜎2𝑗2𝛿𝑡 +

1

2𝑟𝑗𝛿𝑡.

The MATLAB program for the explicit scheme is attached in Appendix A.1. Results are

presented in Section 4.1.

The explicit scheme is straightforward and simple to employ, but it might generate

numerically unstable values if the mesh is not fine enough for an accurate

interpolation. This is equivalent to say that coefficients A, B, C cannot be arbitrarily

assigned as the ratio of δt and δS is crucial to the stability of the explicit scheme. To

ensure the validity of the algorithm, it is essential to impose stability constraints to the

size of the time and asset steps. A full analysis is performed and outlined below.

Stability Analysis for the Explicit Scheme

For the explicit scheme, truncation errors, arising from the numerical approximation

may magnify across time if the scheme is not stable. Hence, it is essential to impose

20

stability constraints to ensure that the error term does not grow exponentially in time

(Wilmott, 2006).

Let Pn,m denote the actual solution to the Black-Scholes formula on the grid point

(nδt, 𝑚δS) . fn,m = f(nδt, 𝑚δS) denotes the numerical approximation to the exact

solution on the same grid point while rn,m represents the associated truncation error.

Putting it mathematically, we have

𝑃𝑛,𝑚 = 𝑓𝑛,𝑚 + 𝑟𝑛,𝑚.

Since fn,m follows the explicit finite difference equation, the error term should be

following the difference equation as well. It is assumed that the error term oscillates

across time. The starting point of the oscillation is hard to define but its behaviour can

be regarded as part of the Fourier series (Wilmott, 2006):

𝑟𝑛,𝑚 = 휀𝑁−𝑛𝑒𝐴𝑚𝑖,

where N is the total number of time steps and A is a constant. Note that the starting

point of the calculation is where 𝑡 = 𝑁δt. The major goal here is to make the error

term follow a decaying oscillation.

Using the fact that 𝑒𝐴𝑚𝑖 = cos(𝐴𝑚) + 𝑖𝑠𝑖𝑛(𝐴𝑚) and substituting rn,m back into (15)

yields

휀 = [1 − 𝑟𝛿𝑡 − 𝜎2𝑚2𝛿𝑡] + 𝜎2𝑚2𝛿𝑡 ∙ 𝑐𝑜𝑠(𝐴) + 𝑟𝑚𝛿𝑡 ∙ 𝑖𝑠𝑖𝑛(𝐴),

where i = √−1.

Obviously, the error term rn,m contains a term in the power of 휀. If |휀| > 1, the error

term would expand exponentially across time. To achieve stability, we must have

|휀| ≤ 1 (Wilmott, 2006). This is equivalent to

1) On the real axis: |1 − rδt + σ2m2δt ∙ (−1)| ≤ 1.

This is equivalent to

0 ≥ −𝑟𝛿𝑡 − 𝜎2𝑚2𝛿𝑡 ≥ −2.

21

As δt =T

N, this in turn gives us

𝑁 ≥ 𝑇( 𝑟

2+

1

2𝜎2𝑚2) for ∀𝑚 ∈ {0,1,2… 𝑀}.

That is to say,

𝑁 ≥ 𝑇( 𝑟

2+

1

2𝜎2𝑀2).

2) On the imaginary axis:

𝜎2𝑚2𝛿𝑡 ∙ 𝑐𝑜𝑠(𝐴) + 𝑟𝑚𝛿𝑡 ∙ 𝑖𝑠𝑖𝑛(𝐴) = 𝜎2𝑚2𝛿𝑡 ∙ [𝑐𝑜𝑠(𝐴) +𝑟𝑚𝛿𝑡

𝜎2𝑚2𝛿𝑡𝑖𝑠𝑖𝑛(𝐴)]

It can be regarded as a form similar to the equation describing the behaviour of a

damped oscillator. To make the error term decay away, σ2m2δt ≤ 1 must hold. As a

result,

𝑁 ≥ 𝑇𝜎2𝑀2,

where N is the total number of time steps and M is the total number of price steps.

To avoid the possible explosion of the error term across time, the stability of the

explicit scheme must be ensured by fulfilling the constraints derived from both 1) and

2). This in turn gives us

δt

δS2≤

1

σ2𝑆𝑚𝑎𝑥2.

The stability constraints derived above are in accord with the ones showed in Wilmott’s

book (2007) and are in consistent with the constraints deduced from empirical

observation. To be specific, it is observed that when the scheme is unstable, it will

generate negative option values, which is apparently unrealistic. This must be due to

the fact that at certain time steps, the coefficients become negative. Hence, by

ensuring the value of coefficients in (15) to be positive, a stable mesh can be

established.

22

3.2.2 Implicit Scheme

Figure 3: Implicit Finite Difference Method

Notation: 𝑓𝑖+1,𝑗 = 𝑓(𝑡 + 𝛿𝑡, 𝑆) ; 𝑓𝑖,𝑗−1 = 𝑓(𝑡, 𝑆 − 𝛿𝑆); 𝑓𝑖,𝑗+1 = 𝑓(𝑡, 𝑆 + 𝛿𝑆).

In the implicit scheme, the differences in stock price are derived using the option

values at one time step before. Except for that, the rest of the derivation process is the

same as what is in the explicit scheme. By so doing, grid points with known values will

be related implicitly with three neighbouring points with unknown values. Difference

equations will therefore be simultaneously set on all grid points. Unlike the explicit

scheme, at each time step, a system of (M-1) linear equations should be solved

simultaneously for one unknown option value. According to Mitchell and Griffiths

(1980), the implicit scheme is stable regardless of the ratio of δt and δS.

Following the same procedure described before, we have

𝜕𝑓

𝜕𝑡|𝑖+1,𝑗

=𝑓𝑖+1,𝑗−𝑓𝑖,𝑗

𝛿𝑡+ 𝑂(𝛿𝑡),

𝜕𝑓

𝜕𝑆|𝑖,𝑗

=𝑓𝑖,𝑗+1−𝑓𝑖,𝑗−1

2𝛿𝑆+ 𝑂(𝛿𝑆2),

𝜕2𝑓

𝜕𝑆2|𝑖,𝑗

=𝑓𝑖,𝑗+1−2𝑓𝑖,𝑗+𝑓𝑖,𝑗−1

𝛿𝑆2 + 𝑂(𝛿𝑆2).

Again, substituting ∂𝑓

∂t,

∂𝑓

∂S and

𝜕2𝑓

𝜕𝑆2 back into (1), we have

𝑓𝑖+1,𝑗 = 𝑓𝑖,𝑗−1 ∙ (−𝑎𝑖,𝑗 ∙𝛿𝑡

𝛿𝑆2 + 𝑏𝑖,𝑗 ∙𝛿𝑡

2𝛿𝑆) (16)

+𝑓𝑖,𝑗 ∙ (1 + 2𝑎𝑖+1,𝑗 ∙𝛿𝑡

𝛿𝑆2 − 𝑐𝑖,𝑗 ∙ 𝛿𝑡)

+𝑓𝑖,𝑗+1 ∙ (−𝑎𝑖,𝑗 ∙𝛿𝑡

𝛿𝑆2 − 𝑏𝑖,𝑗 ∙𝛿𝑡

2𝛿𝑆)

+O (𝛿𝑡, 𝛿𝑆2).

Hence, the implicit forward difference scheme is

23

𝑓𝑖+1,𝑗 = −𝐴𝑖,𝑗 ∙ 𝑓𝑖,𝑗−1 + (1 − 𝐵𝑖,𝑗) ∙ 𝑓𝑖,𝑗 − 𝐶𝑖,𝑗 ∙ 𝑓𝑖,𝑗+1+ O (𝛿𝑡, 𝛿𝑆2). (17)

where the coefficients have been indicated above.

3.2.3 Crank-Nicolson Scheme

Though the implicit scheme was proved by Mitchell and Griffiths (1980) to be stable, it

does not guarantee accuracy. The Crank-Nicolson scheme is a combination of the

explicit and implicit finite different scheme and hence may improve accuracy. In this

method, six neighbouring option values are interrelated in the following way:

Figure 4: Crank-Nicolson Finite Difference Method

Re-arranging (6) and (8), we have,

{ fi+1,j − fi,j = −Ai+1,j ∙ fi+1,j−1−Bi+1,j ∙ fi+1,j − Ci+1,j ∙ fi+1,j+1 + O (δt, δS2)

fi+1,j − fi,j = −Ai,j ∙ fi,j−1−Bi,j ∙ fi,j − Ci,j ∙ fi,j+1 + O (δt, δS2)

This finally yields the Crank-Nicolson scheme, which is

𝑓𝑖,𝑗−1 ∙ (−𝐸𝑖,𝑗) + 𝑓𝑖,𝑗 ∙ (1 − 𝐹𝑖,𝑗) + 𝑓𝑖,𝑗+1 ∙ (−𝐺𝑖,𝑗) (18)

= fi+1,j−1 ∙ Ei+1,j + fi+1,j ∙ (1 + Fi+1,j) + fi+1,j+1 ∙ (Gi+1,j) + O (δt2, δS2),

where 𝐸𝑖+1,𝑗 =1

4𝜎2𝑗2𝛿𝑡 −

1

4𝑟𝑗𝛿𝑡; 𝐹𝑖+1,𝑗 = −

1

2𝜎2𝑗2𝛿𝑡 −

1

2𝑟𝛿𝑡; 𝐺𝑖+1,𝑗 =

1

4𝜎2𝑗2𝛿𝑡 +

1

4𝑟𝑗𝛿𝑡

This is a system of equations that needs to be solved at each grid point. A clearer

matrix representation of the scheme is showed in Section 3.3 and the associated

MATLAB program using the iterative SOR is attached in Appendix A.4.

3.3 Computational Methods

In practice, there are several methods available to solve the above equations. Below is

24

a full illustration of the algorithms for the Crank-Nicolson scheme. Specifically, the

following paragraphs will be devoted to establishing a system of equations in the

matrix form and explaining how it can be solved.

For simplicity, the system can be illustrated in the form of matrices:

Left-hand side of (18) is

[ −𝐸𝑖,1 1 − 𝐹𝑖,1 −𝐺𝑖,1 0 … … … 0

0 −𝐸𝑖,2 1 − 𝐹𝑖,2 −𝐺𝑖,2 0 … … 0

⋮ 0 −𝐸𝑖,3 1 − 𝐹𝑖,3 ⋱ ⋱ ⋱ ⋮

⋮ ⋮ ⋮ ⋮ ⋱ 1 − 𝐹𝑖,𝑀−2 −𝐺𝑖,𝑀−2 0

0 0 0 0 0 −𝐸𝑖,𝑀−1 1 − 𝐹𝑖,𝑀−1 −𝐺𝑖,𝑀−1]

(𝑀−1)(𝑀+1)

×

[

𝑓𝑖,0

𝑓𝑖,1

⋮𝑓𝑖,𝑀−1

𝑓𝑖,𝑀 ]

(19)

And the right-hand side of (18) is

[ 𝐸𝑖+1,1 1 + 𝐹𝑖+1,1 𝐺𝑖+1,1 0 … … … 0

0 𝐸𝑖+1,2 1 + 𝐹𝑖+1,2 𝐺𝑖+1,2 0 … … 0

⋮ 0 𝐸𝑖+1,3 1 + 𝐹𝑖+1,3 ⋱ ⋱ ⋱ ⋮

⋮ ⋮ ⋮ ⋮ ⋱ 1 + 𝐹𝑖+1,𝑀−2 𝐺𝑖+1,𝑀−2 0

0 0 0 0 0 𝐸𝑖+1,𝑀−1 1 + 𝐹𝑖+1,𝑀−1 𝐺𝑖+1,𝑀−1]

×

[

𝑓𝑖+1,0

𝑓𝑖+1,1

⋮𝑓𝑖+1,𝑀−1

𝑓𝑖+1,𝑀 ]

. (20)

According to (18), three unknown values on new grid points are interrelated with old

grid points with known values. Thus, the solution is implicit. To solve the above system,

which is equivalent to setting (19) equal to (20), conversion to square matrices is

essential (Wilmott, 2007). In (19) and (20), the first and last columns account for the

boundary conditions. Extracting them from the matrix and adding them back to the

right-hand side of the new system can convert the system back to square matrices.

Note that the above system is therefore in the form Qx=b,

where

Qx(𝑀−1)(𝑀−1) = Q𝐿 ∙ f i − Q𝑅 ∙ f i+1 and 𝑏 =

[

𝐸𝑖+1,1 ∙ fi+1,0 + 𝐸𝑖,1 ∙ fi,00⋮0

𝐺𝑖+1,M−1 ∙ fi+1,M + 𝐺𝑖,M−1 ∙ fi,M]

(M−1)×1

.

Apparently, elements in b are all known as they are boundary conditions that have

been specified in Section 3.2. The traditional method to solve the equation system is

to use x = Q−1𝑏 since Q is non-singular and is therefore invertible. However, given Q

is a tri-diagonal sparse matrix, the inversion method is time-consuming and the

computation of Q−1 demands huge space to store values since it is no longer a

25

tri-diagonal matrix. An alternative is to solve (10) using LU factorization technique

proposed by Kreyszig (2006). Q can be firstly decomposed to L×U, where L and U are

lower and upper tri-angular matrices, respectively. X can thus be calculated by

U−1L−1 × b. The rationale for using the LU factorization technique is that L and U can

be directly computed. This method is an improvement to the Gauss elimination

method since it requires fewer operations. The MATLAB program for implementing LU

factorization can be found in Appendix A.2.

Aside from the LU factorization method, iterative methods such as the Gauss-Seidel

iteration and its successive over-relaxation variant are useful as well. For large sparse

matrices, this method is more efficient as it does not need extra space to store values

of zeros. Unlike the two-step inversion method, iteration methods use an initial guess

for the true solution. The guess is updated iteratively to reach the pre-defined

accuracy (Wilmot et al., 2008). For American options in particular, LU factorization

should be modified to account for the early-exercise property. Otherwise, it would fail

to discover the right solution as the set of equations are solved simultaneously. Taking

computational time into consideration, iterative methods illustrated below are more

effective for pricing American options.

The whole algorithm for the Gauss-Seidel iteration is illustrated below:

For algorithm demonstration,

𝐴 = [

𝑎11 𝑎12 … 𝑎1𝑛

𝑎21 𝑎22 … 𝑎2𝑛

⋮ ⋮ ⋮ 𝑎3𝑛

𝑎𝑛1 𝑎𝑛2 … 𝑎𝑛𝑛

]

(𝑀−1)×1

.

Let k denote the iteration step and xi(k) represent the kth approximation to xi. The core

of the Gauss-Seidel iteration is to use new approximation, namely xi(k+1) to update old

approximations, i.e. xi(k). The iteration will stop once the pre-specified level of

convergence is reached. Hence, the iteration equation is straightforward:

𝑥𝑖(𝑘+1) =

1

𝑎𝑖𝑖(𝑏𝑖 − ∑ 𝑎𝑖𝑗𝑥𝑗

(𝑘+1) −𝑖−1𝑗=1 ∑ 𝑎𝑖𝑗𝑥𝑗

(𝑘))𝑛𝑗=𝑖+1 (21)

26

The following algorithm, which is adapted from Demmel (1997) summarises the

iteration process:

Step 1: Set x(0) to be the initial guess about the solution. Set k=0, the level of

convergence ϵ and the maximum number of iteration steps N.

Step 2: For k=0: N-1

For i=1: n

Repeat (20)

If |x𝑖(𝑘+1) − x𝑖

(𝑘)| < ϵ

End loop and output the solution x(𝑘+1).

End

The second for-loop accounts for an iteration process which starts from an arbitrary

guess and subsequently updates the solution until the pre-defined convergence level

is reached.

To speed up the convergence, the successive over-relaxation (SOR) method can be

employed. The core is to add a relaxation factor ω into the original Gauss-Seidel

iteration equation (Demmel, 1997).

Hence, the new approximation is the weighted average of the new and old (relaxed)

approximation components, that is:

𝑥��(𝑘+1)

=1

𝑎𝑖𝑖(𝑏𝑖 − ∑ 𝑎𝑖𝑗𝑥𝑗

(𝑘+1) −

𝑖−1

𝑗=1

∑ 𝑎𝑖𝑗𝑥𝑗(𝑘))

𝑛

𝑗=𝑖+1

𝑥𝑖(𝑘+1) = 𝜔 𝑥��

(𝑘+1) + (1 − 𝜔)𝑥𝑖(𝑘)

Substituteing (20) back into the above equations, yields:

𝑥𝑖(𝑘+1) = (1 − 𝜔)𝑥𝑖

(𝑘) + 𝜔1

𝑎𝑖𝑖(𝑏𝑖 − ∑ 𝑎𝑖𝑗𝑥𝑗

(𝑘+1) −𝑖−1𝑗=1 ∑ 𝑎𝑖𝑗𝑥𝑗

(𝑘))𝑛𝑗=𝑖+1 . (22)

The structure of the algorithm is almost the same as what is presented above.

However, the value of the additional parameter ω, which is within the range of (0,2)

should be properly assigned to achieve rapid convergence (Wilmott, 2007) . A detailed

27

analysis is performed in Section 6.3 to determine the best ω for the mesh used in this

dissertation. Within the loop, the iteration equation should be replaced by (21). The

MATLAB program for SOR is attached in Appendix A.3.

Stability constraints for the explicit scheme discovered in Section 3.2.1 are used in the

MATLAB program to ensure the stability of the explicit scheme.

The finite difference method has one merit: by establishing the mesh, option values on

each grid point can be calculated to use in the valuation of the path-dependent option

contracts. Nevertheless, not all option values lie on the mesh. As was suggested by

Richardson (2009), linear interpolation could be used to obtain an approximation to

the option value. To improve the accuracy, higher order interplants might be

considered.

For the application to the American put option, at each time step, the calculated option

value should be compared against the payoff if it is exercised early at that time. Only

the larger value will be stored in the matrix and then the loop will continue.

3.4 Moving Boundary Method

The traditional Crank-Nicolson method or the explicit and implicit methods focus

mainly on generating the option price when the boundaries are fixed. For American

options, the exercise boundary is unknown to traders, which is a major obstacle to

implement the traditional finite difference methods. The moving boundary method

introduced by Muthuraman (2007) generates the option price as well as the optimal

exercise boundary at the same time. The basic assumptions underlying this method

are first, investors are rational as they urge to maximize the net payoff from exercising

the option; secondly, there are no arbitrage opportunities in the market. One major

28

merit of this method is that it completes the entire pricing procedure and offers

constructive advice regarding when and at what price the investors should exercise

the American put. Effectively, it is a combination of the boundary updating process and

the finite difference scheme.

As has been illustrated in Section 3.1, owing to the early exercise property of the

American put, boundary conditions cannot be easily imposed as it cannot be

pre-defined and is therefore not fixed. This is referred to by many research papers as

the ‘free-boundary’ problem. According to Muthuraman (2007), this problem can be

firstly converted into a series of fixed-boundary problems and then be solved in an

iterative way. In brief, an initial boundary 𝐵0 is proposed as a starting point such that

it is for sure below the optimal exercise boundary. One intuitive choice is the exercise

boundary at which 𝑡 → 𝑇 (the maturity date) .Given this fixed boundary, mesh

discretization can be applied in the bounded region and the option value 𝑓0 can

therefore be derived from the Crank-Nicolson method introduced above. As was

shown in Section 3.1, at the optimal exercise boundary, 𝜕𝑓

𝜕𝑆= −1 must be satisfied in

accord with the no-arbitrage assumption. The next step is to search for the local

minima of 𝑆 + 𝑓0 along the x-axis such that 𝜕𝑓

𝜕𝑆< −1 is satisfied. In other words, the

net payoff 𝐸 − 𝑆 − 𝑓0 is maximized at this particular point. Hence, this S is an update

of 𝐵0, namely, the 𝐵1. To realise this process in the MATLAB program, the key is to

seek the largest index of S that satisfies the inequality by searching the entire matrix

at a given time point. This updating procedure is iterated until the absolute value of

the difference between two consecutive boundary prices converge to a critical value,

i.e., 1e-4. In this paper, the terminal condition of iteration is replaced by forcing the

loop to continue until 𝑓𝑛 > 𝑝𝑎𝑦𝑜𝑓𝑓. The reason is straightforward: Muthuraman’s

convergence criterion is not strict enough and may lead to a poor boundary update as

the iteration might be terminated before reaching the optimal boundary. If shown in a

graph, the boundary would be like stairs, which is unstable and lacks smoothness.

29

Setting 𝑓𝑛 > 𝑝𝑎𝑦𝑜𝑓𝑓 can avoid this problem but it might be possible that the optimal

boundary is skipped. This, however, can be overcome by increasing the size of the

mesh. Theorem 3.1 in Muthuraman’s paper (2007) states that the boundary will

converge to the optimal exercise boundary monotonically. A rigorous proof of this

theorem is complicated as is beyond the scope of this dissertation. Nevertheless,

referring to Muthuraman’s early work (2006), this theorem can be alternatively

explained in the following way.

Explanation:

Notation: 𝐵𝑛 → 𝑃𝑛 → 𝐵𝑛+1 → 𝑃𝑛+1; T= time to maturity; Diff is a function of the

difference between two consecutive option values. That is to say, 𝐷𝑖𝑓𝑓(𝑡, 𝐵𝑛+1(𝑡)) =

𝑃𝑛+1 − 𝑃𝑛 .

Since 𝑃𝑛+1 can be implicitly derived from 𝐵𝑛 , 𝐷𝑖𝑓𝑓(𝑡, 𝐵𝑛+1(𝑡)) is a partial

differentiation equation that can be solved in the same fashion of 𝑃𝑛+1. That is to say,

the boundary condition for 𝐷𝑖𝑓𝑓is as follows,

Diff(t, Bn+1(t)) > 0; Diff(T, Bn+1(T)) = 0.

Hence, Diff can be regarded as a special kind of derivative with the following payoff

structure:

𝑝𝑎𝑦𝑜𝑓𝑓 = {0 𝑎𝑡 𝑒𝑥𝑝𝑖𝑟𝑎𝑡𝑖𝑜𝑛 (𝑇)

> 0 𝑎𝑡 𝑆 = 𝐵𝑛+1(𝑡), 𝑡 < 𝑇

As the payoff of this derivative is positive for all t<T, referring to the risk-neutral

argument - the present value of a contract equals the discounted future payoff, the

price of this derivative is always positive. This gives us, 𝑃𝑛+1 ≥ 𝑃𝑛 for ∀𝑡 ≤ 𝑇, which

is equivalent to say that the boundary approaches the optimal boundary

monotonically.

Figure 5 is plotted below to show the updating process graphically.

30

Figure 5: An illustration of the boundary updating process

According to Muthuraman (2006), the initial boundary can be calculated in this way,

𝑙𝑖𝑚𝑡→𝑇 𝐵(𝑡) =𝑙

𝑙−1𝐸,

where 𝑙 =−(𝑣+√𝑣2+2𝑟)

𝜎; 𝑣 =

𝑟

𝜎−

𝜎

2.

The moving boundary method has several advantages over the traditional methods

described in Section 3.2. Aside from its ability to explicitly generate the optimal

exercise boundary, it ensures the continuity of both 𝑓 and 𝜕𝑓

𝜕𝑆 across the mesh. The

traditional finite difference method, however, only ensures the continuity of 𝑓 .

Increasing the mesh size is helpful to improve the continuity of 𝜕𝑓

𝜕𝑆 but it will be

computationally inefficient. The adapted moving boundary method, as will be shown

in Section 4.2, takes only six or seven iteration steps before eventually converging to

the optimal exercise boundary. The MATLAB program for this approach is attached in

Appendix A.5. A comparison of the Crank-Nicolson method and the moving boundary

method for pricing American options is performed in Section 4.2.2.

31

4. Validation of Methodology

4.1 Evaluation of Three Numerical Schemes on European put

options

1) Validate MATLAB codes for numerical methods

This sample test has two main purposes: First is to validate the MATLAB codes used in

the explicit, implicit and Crank-Nicolson scheme; secondly, it is used to do a

comparison of the above three methods. In this test, the option considered is the

European put option (for American options, the only difference in MATLAB program

lies in adding one line to extract the larger value when compared with the

early-exercise payoff). The results are compared against the exact analytical solution

derived from the Black-Scholes formula. The parameters used for this sample test are:

r=0.01 (interest rate), E=50 (strike price), T=3 years (time to maturity), σ =0.25

(volatility). As was suggested in Wilmott’s book (2006), Smax= 3 times strike price.

For the implicit scheme, both the LU factorization and SOR methods are used and the

elapsed time is presented in the second row. S is chosen to range from 10 to 90 for

illustrative purposes. Note that the scale of the parameters chosen are similar to that

used in Richardon’s paper (2009) and the same parameter set is applied to all methods

tested in this section.

In Table 1, for each algorithm, asset steps are set to be 500 while the time steps are

set according to the stability constraints derived above. It is clear from the table that

numerical solutions provide good approximations to the exact analytical solution to the

Black-Scholes formula. In terms of the implicit scheme, it is apparent that the SOR

algorithm significantly reduces the computation time by almost a half without

sacrificing the accuracy in this case. It can be observed that the computation time of

the Crank Nicolson scheme is slightly longer. This might be due to the fact that it is an

32

average of these two schemes and therefore takes extra time in computation.

Table 1: Compare the outputs of MATLAB programs with the exact solutions to the Black-Scholes formula

Note: Column 2 shows the exact solution to Black-Scholes formula; Column 3 to 6 present the differences

between the value of MATLAB outputs and the value in Column 2.

S

Black-Scholes Explicit Implicit_LU Implicit_SOR Crank Nicolson_LU

(Exact Solution) (M=500) (M=500) (M=500, w=1.2,tol=1e-4) (M=500)

2.88secs 52.40secs 25.69 secs 66.4119 secs

10 27.0438 0.0001 0.0001 0.0001 0.0000

15 22.108 0.0001 0.0001 0.0001 0.0001

20 17.4446 0.0004 0.0004 0.0004 0.0004

25 13.3265 0.0003 0.0004 0.0004 0.0004

30 9.9206 0.0000 0.0000 0.0000 0.0000

35 7.2466 0.0002 0.0002 0.0002 0.0002

40 5.2252 0.0001 0.0001 0.0001 0.0001

45 3.7367 0.0001 0.0001 0.0001 0.0001

50 2.6598 0.0000 0.0000 0.0000 0.0000

55 1.8893 0.0001 0.0001 0.0001 0.0001

60 1.3419 0.0000 0.0000 0.0000 0.0000

65 0.9544 0.0000 0.0000 0.0000 0.0000

70 0.6803 0.0000 0.0000 0.0000 0.0000

75 0.4865 0.0001 0.0001 0.0001 0.0001

80 0.3491 0.0000 0.0001 0.0001 0.0001

85 0.2515 0.0001 0.0001 0.0001 0.0001

90 0.1819 0.0001 0.0001 0.0001 0.0001

2) Graphical comparison of three finite difference schemes in terms of log error.

Figure 6: A comparison of the error arising from three schemes

33

In Figure 6, the logarithm of error is plotted on y-axis against the logarithm of 𝛿𝑡 =𝑇

𝑁

on x-axis. It is obvious that as time step decreases, the error term associated with the

numerical approximation to the exact solution of the Black-Scholes formula drops

drastically. Hence, the finer the mesh, the more accurate the approximation to the

exact solution is. After taking the gradient of each line, the error term in the

Crank-Nicolson scheme decreases quadratically in the order of O(𝛿𝑡2) while the error

in the rest two methods merely drops linearly in the order of O(𝛿𝑡). This is consistent

with the truncation error in the schemes which are illustrated in Section 3.2. Note that

the line flattened in the region of (1e-14, 1e-12) has nothing to do with convergence.

The flatter part is simply because MATLAB runs out of memory while working on an

extremely large mesh. To conclude, Crank-Nicolson scheme provides higher accuracy

than the rest two schemes and should therefore be employed to price American

options.

3) Statistical comparison of three finite difference schemes

The differences shown in Table 1 appear to be almost the same across three schemes.

It is therefore worthwhile to know whether the mean values produced from the three

methods are the same. Hence, the one-way ANOVA F-test can be performed and the

results are summarized in Table 2.

H0: 𝜇1 = 𝜇2 = 𝜇3

H1: Not all means are equal

Notation: 𝑛𝑖=number of elements in ith group; 𝑘��=mean in ith group; ��= mean of all

the elements. Si= standard deviation in ith group

Table 2: ANOVA Table:

Sources of

variance Degree of freedom (DoF) Sum of squares Mean Square F-statistic

SSG 3-1=2 ∑ ni( − )2 = . 21 E − 10

3

i=1

MSG = SSG/DoF

= 1.96078E-10

F = MSG/MSE

=2.7698E-12

SSE 3*17-3=48 ∑(ni − 1)Si2 = .

3

i=1

MSE = SSG/DoF

= 70.7916105

SST 51 ∑( − )2 = .

a

34

Obviously, F is close to 0 and the corresponding p-value for this test is 0.9999. Hence,

the null hypothesis should not be rejected at 1% significance level. In conclusion,

there is no statistically significant difference in the mean values computed by three

methods.

4) Convergence check for the explicit scheme

Error =log (generated option value- exact solution to Black-Scholes formula)

Number of grid points = (N+1) x (M+1)

Figure 7: Convergence check and error analysis (Error is presented in log scale)

Since option values are expanded using the Taylor’s series for more than once, the

local truncation error is inevitable. It is clear on the left graph that as the total number

of grid points is raised beyond 5000, the error decreases rapidly. With the same

parameters, the figure on the right hand side is similar to but not the same as the one

generate by Wilmott (2006). This is because of a slight difference in the boundary

conditions imposed.

35

4.2 Evaluation of the adapted moving boundary method on

American put options

4.2.1 Validity check of the adapted moving boundary method

Before pricing the American put option, the modified moving boundary method

(replacing the termination criteria) is first tested on the same parameter set used in

Muthuraman’s paper (2007). The mesh size is increased to 1000*500 to ensure a

successful capture of the optimal boundary. Table 3 below presents the results.

Table 3: Validity check of the adapted moving boundary method (MB stands for Moving Boundary

Method)

S0 MB in Muthuraman’s paper MB in this dissertation Difference

80 20.0000 19.9000 -0.1000

90 11.6889 11.6968 0.0079

100 6.9203 6.8515 -0.0688

110 4.1427 4.1336 -0.0091

120 2.4996 2.5099 0.0103

After implementing this adapted moving boundary method, the elapsed time for

MATLAB to work through a mesh of the size indicated above is 11.18 seconds (output

from MATLAB using the built-in function: tic - toc). The number of iterations taken is 5.

36

Figure 8: The value of American put option and its associated optimal exercise boundary

Figure 8 illustrates the calculated value of the American put using the same parameter

set specified in Muthuraman’s paper (2006). These two sub-figures are plotted based

on a slight modification to the original method presented in Section 4.1. The graph on

the left-hand side shows the corresponding exercise boundary, indicating when and at

what price the investor should exercise the contract and gain an optimal net payoff.

The shaded area indicates the ‘exercise region’ explained in Section 3.1.

4.2.2 A Comparison of the moving boundary method and the

Crank-Nicolson method

Both the Crank-Nicolson method and the moving boundary method can be employed

to value American put options. The Crank-Nicolson method needs adaptation as at

each time step, the option value derived should be immediately compared against the

payoff and only the larger value will be stored. This method is accurate and relatively

easy to program but is computationally inefficient. The moving boundary method is a

combination of the Crank-Nicolson method with fixed boundaries and the boundary

updating process. The convergence of the boundary to the actual optimal exercise

boundary is quick and it can output the optimal exercise boundary as a by-product.

However, it is difficult to transform the complex logic to computer language and is

therefore difficult to program. Thus, it is essential to know whether the values

37

generated from two methods are consistent. Table 4 below lists the put option values

calculated by two algorithms. An unpaired t-test is performed afterwards to show

whether the mean value of column 2 and 3 are equal. Note that the parameters used

are the same as the ones in Section 4.1.

Table 4: A comparison of two numerical methods

S0 American Put _ Crank-Nicolson American Put _ Moving Boundary Approach

10 40.0000 40.0000

15 35.0000 30.0000

20 30.0000 30.0000

25 25.0000 20.1244

30 20.3089 20.1244

35 16.2705 12.6470

40 12.8811 12.6470

45 10.1014 7.6332

50 7.8650 7.6332

55 6.0916 4.5271

60 4.7009 4.5271

65 3.6194 2.6753

70 2.7828 2.6753

75 2.1382 1.5876

80 1.6428 1.5876

85 1.2624 0.9501

90 0.9703 0.9501

Apparently, the variances of the population are unknown. Hence, it should be assumed

that the pooled sample variance ��𝑝2 is valid to proceed with the unpaired t-test.

Notation: ��𝑝2 is the pooled variance; 𝑛1, 𝑛2 denotes the number of observations in

each group; 𝑆12, 𝑆2

2 denotes the sample variance; 𝑘1 , 𝑘2

represents the sample mean

while 𝜇1, 𝜇2 represents the population mean for each group, respectively. The results

38

from the t-test are presented below.

H0: 𝜇1 = 𝜇2

H1: 𝜇1 ≠ 𝜇2

��𝑝2 =

(𝑛1 − 1)𝑆12 + (𝑛2 − 1)𝑆2

2

𝑛1 + 𝑛2 − 2= 1 4.12 1

t =𝑘1 − 𝑘2

− (𝜇1 − 𝜇2)

��𝑝√1𝑛1

+1𝑛2

= 0.2811

The corresponding p-value of this test is 0.7804. Hence, the null hypothesis should not

be rejected at 1% significance level. That is to say, statistically, there is no significant

difference in the mean values calculated using the above two methods.

5. Empirical Analysis

5.1 Data Collection

The empirical data used in this project is collected from Yahoo Finance on a daily basis.

The options contracts are issued by GE and Vringo. All options with different maturities

are traded on Chicago Board Option Exchange (CBOE) and they are all American-style

options. The starting collection date is Nov.1st, 2012. The parameters in concern are

stock price, strike price, time to maturity and the last settlement price of each option.

For illustration purposes, prices of GE put options expiring on Mar. 15th,2013 and the

prices of Vringo put options expiring on Feb. 15th,2013 are the main focus of this

analysis. The data of option prices are collected across all exercise prices available in

the market. The cut-off time point is 14/11/2012 and 16/11/2012, separately. That is

to say, it is assumed that an investor enters into the put option on these two days.

5.2 Parameter Estimation

1) Risk-free interest rate

39

One-year U.S. Treasury bill rate is commonly regarded as the risk-free interest rate

by professionals in the financial industry. It is therefore taken in this dissertation as

a model parameter. Daily fluctuations in the interest rate are recorded starting from

Jan. 3rd, 2012. After a conversion with continuous compounding, the yearly interest

rate can be calculated using the data series up to the cut-off time point. This gives

us r=0.0017.

2) Historical volatility

To obtain the volatility, one possible way is to derive it from the historical price

movement of an asset. Referring back to the assumption in Section 3.1, stock price

is assumed to follow a lognormal distribution. Starting from the equation (3)

derived in Section 3.1, it is obvious that log𝑆(𝑡+𝛿𝑡)

𝑆(𝑡)~𝑁[(𝑟 −

1

2𝜎2) 𝛿𝑡, 𝜎2𝛿𝑡]. The

data at hand is the daily stock prices of both companies starting from Jan.3rd, 2012

up to the cut-off point. Let 𝐿 = log𝑆(𝑡+𝛿𝑡)

𝑆(𝑡), the volatility of L is an approximation to

the historical volatility 𝜎. It is also essential to convert the daily volatility to the

annual scale. This therefore gives us 𝜎𝐺𝐸 = 0.18 1; 𝜎𝑉𝑟𝑖𝑛𝑔𝑜 = 1. 481.

3) Time to maturity is expressed in years. For the GE put option, T=0.333 years; for

the Vringo put option, T=0.167 years.

5.3 Results

All results are computed from MATLAB. The MATLAB programs are run on a 2.13 GHZ

power machine with a core i3 processor and 2GB memory.

Below is a comparison of the option values of GE and Vringo calculated from the

moving boundary method against the real values settled in the market.

40

Table 5: Results from estimating GE option values using the moving boundary approach

Exercise Price Real Data Model Estimation Difference

14/11/2012 at S=20.01 USD

T=0.333 years, r=0.0017,sigma=0.1864

(Number of iterations=7; Mesh size=1000*500)

15 0.1 0.0021 -0.0979

16 0.15 0.0120 -0.1380

17 0.27 0.0524 -0.2176

18 0.50 0.1672 -0.3328

19 0.83 0.4136 -0.4164

20 1.15 0.8373 -0.3127

21 1.85 1.4415 -0.4085

22 2.64 2.2077 -0.4323

23 3.50 3.0767 -0.4233

24 4.25 4.0178 -0.2322

Table 6: Results from estimating Vringo option values using the moving boundary approach

Exercise Price Real Data Model Estimation Difference

16/11/2012 at S=3.54 USD

T=0.167 years, r=0.0017,sigma=1.5063

(Number of iterations=7; Mesh size=1000*500)

1 0.10 0.0000 -0.1000

1.5 0.15 0.0435 -0.1065

2 0.10 0.1493 0.0493

2.5 0.25 0.3171 0.0671

3 0.45 0.5463 0.0963

3.5 0.73 0.8292 0.0992

4 1.05 1.1564 0.1064

4.5 1.60 1.5196 -0.0804

5 2.00 1.9118 -0.0882

5.5 2.35 2.3252 -0.0248

6 2.80 2.7569 -0.0431

7 4.80 3.6583 -1.1417

8 4.70 4.5929 -0.1071

9 5.50 5.5507 0.0507

D denotes the difference between the option value generated from the model and the

41

real data. To show whether the mean difference is equal to zero or not, a t-test can

again be applied to test the significance of the difference (D).

H0: 𝜇 = 0

H1: 𝜇 ≠ 0

𝑡 =D − 𝜇

��

Calculations reveal that the corresponding p-value for the test on GE option data is

0.0301. Hence, the null hypothesis should be rejected at 5% significance level but not

rejected at 1% significance level. As to the test on Vringo, the corresponding p-value is

0.0999. Hence, the null hypothesis should not be rejected at 5% significance level.

This implies that the moving boundary method provides a close approximation to the

real option value for put option contracts of Vringo. It can also be observed from Table

5 and Table 6 that the difference between model estimation and real data is larger in

GE than in Vringo. After taking a close look at the company profiles, it is clear that GE

is a company that pays dividend on a quarterly basis whereas Vringo, a 7-year-old

high-tech company does not pay dividends over the contract period. This partly

explains the mismatch between the estimated option values and the real data. The

results can be improved by taking dividend payments into consideration and this will

be covered in Section 6.2.

Note that in this section, only two sets of results are presented as an illustration to

save space. In practice, for each company, the adapted model is tested on the data

from 10 different dates extracted from the set of data collected. The resulting option

values and the associated results from the statistical test are consistent with what

have been presented above.

Aside from generating option values, the corresponding optimal exercise boundary can

be extracted explicitly (See Figure 9).

42

Figure 9: The associated optimal exercise boundary for GE and Vringo put option contracts

6. More about the model and algorithm

6.1 Assumption on the behaviour stock price

One strong assumption underlying the model presented in Section 3.1 is that stock

price follows a lognormal distribution. It is therefore necessary to check whether this

assumption holds in the real world. In a statistical sense, the chi-squared

goodness-of-fit test can be employed to check the validity of the assumption.

For simplicity, the collected stock prices are categorized into 10 groups. In ithgroup, the

number of observations is counted and then recorded as 𝑂𝑖. Following the assumed

distribution, the expected number of observations in each group can be calculated and

recored as 𝐸𝑖. The formula for chi-square goodness-of-fit statistic is:

𝜒2 = ∑(𝑂𝑖 − 𝐸𝑖)

2

𝐸𝑖

10

𝑖=1

The hypotheses in the test are,

H0: log(𝑆)~𝑁(𝜇, 𝜎2)

H1: log (𝑆) does not follow the prescribed distribution

The table below shows a summary of statistics.

43

Table 7: Chi-square goodness-of-fit test for the assumption on the distribution of stock price

Analysis of GE stock price (𝜒2 = 0. ) Analysis of Vringo stock price (𝜒2 = 46 . 44 )

O E O E

9 22.10535478 17 7.20742234

55 22.83632107 5 11.29506868

35 34.42993944 14 21.7964753

42 44.10735604 25 34.78068379

18 47.48081158 1 45.89404389

58 43.08259154 1 50.0781239

17 32.95036709 34 45.18721227

27 21.2416592 136 33.71756159

19 11.54192462 47 20.80474214

8 8.223674637 8 17.23866612

The corresponding critical value is 𝜒20.01

( ) = 21.6 . Obviously, the null hypotheses

for the distribution of stock price in both companies should be rejected at a 5%

significance level. Alternatively, histograms and the quantile-to-quantile (QQ) plot can

easily reveal the non-normality of log(S) as the curve diverges a lot from the

45-degree straight line (See Figure 10). This divergence is particularly significant for

the stock price of Vringo and this matches the fact that it has a high volatility.

Figure 10: Histogram and QQ plot of the stock price of GE(the first row) and Vringo (the second row)

44

6.2 Taking dividend payment into account

General Electric is a mature company that pays dividends on a quarterly basis at a rate

of around 0.83%. Converting the quarterly dividend rate (d) into the continuous

annual rate, we have, d=3.3%. Replacing r with (r-d) will only result in a slight change

in both the formulae and the associated algorithm. After computation, the p-value

increased to 0.067. In this sense, the null hypothesis of a zero mean difference should

not be rejected at 5% significance level. That is to say, option values estimated by this

model are better than that from the old model where dividend payment is not

accounted for. Regardless of the improvement in the accuracy of the model, it seems

that more complicated models such as the jump diffusion model should be introduced

to account for the discontinuity of option values once the lump sum dividend payment

announcement is released.

6.3 Optimization of the relaxation factor in SOR

In Section 4.1, the value of the relaxation factor is taken as 1.2 – the value used by

Hull (2006) – . Referring to Wilmott (2006), for each mesh, the value of ω can be

optimized such that the number of iterations in SOR will be minimized without

sacrificing accuracy. The procedure is simple: Starting from ω = 0, the associated

number of iterations is recorded. Adding 0.01 to the initial value of ω and re-do the

SOR algorithm will yield a new number of iterations. As long as the number of

iterations decreases, 0.01 should be added to obtain an updated ω. The procedure

will be terminated when the number of iterations starts to increase for a certain ω.

Therefore, the ω calculated one step before is the optimal relaxation factor for this

particular mesh. In this paper, the optimal ω corresponding to a 1000*500 mesh is

1.9. This is in accord with many references which suggest choosing a value within the

range (1, 2). Note that for the moving boundary method, as the mesh size remains the

same, the optimal ω does not change.

45

6.4 Computational efficiency of the numerical algorithm

So far, no transformation of variables has been made both in the derivation of the

formulae and in the MATLAB programs. In the literature, Hull (2006) mentioned that

S = S0𝑒𝑥 was a sensible way to convert the Black-Scholes formula and the finite

difference scheme into a more simple form. The merit of this transformation is that by

so doing, instead of having constant S-steps, we will have constant steps in log(S).

This is especially beneficial to the put option as when S is small, the density of the

mesh will be higher than that when S is large (Hull, 2006). Therefore, the number of

effective calculations within the exercise region will be increased and reduced

elsewhere. Theoretically, this may shorten the computation time.

In practice, however, the reduction in time is not obvious as the data at hand is the

real stock price. It might take extra time for the computer to do transformations on the

stock price first. In addition, the size of the mesh that can be developed in MATLAB is

limited and it is possible that only when the mesh is extremely large will a reduction in

computation time be apparent. Another drawback of the variable transforming

technique is that it complicates the process if one wants to do further improvements

on this model by replacing the prescribed distribution of stock price. Thus, at this

stage, variable transformation will not be made.

7. Limitations and future improvements

This dissertation focuses mainly on the pricing of American put options. The basic

model is the Black-Scholes model, on which certain modifications and adaptations are

made. However, according to the empirical analysis performed in Section 5, the option

values estimated by the adapted Black-Scholes model would slightly differ from values

quoted on the market. One possible reason is that the market is not perfectly efficient.

That is to say, continuous trading and unlimited hedging, as have been assumed in the

46

model, does not happen in the real market.

Secondly, it is obvious that the stock price does not follow the prescribed assumption

of a lognormal distribution. Violation of this assumption is severe as the Black-Scholes

model relies on this assumption to a large extent. To overcome this problem, a

student-t distribution or the Weibull distribtution can be possible candidates for the

replacement of the lognormal distribution of stock price. By so doing, the entire

Black-Scholes formula will be changed and complicated analysis may follow.

Thirdly, constant volatility is not realistic in the real world as the fluctuation in stock

prices is a result of human behaviour. It is also possible that the volatility will cluster in

certain periods and therefore is autocorrelated across time. For Vringo in particular, it

is a high-tech company and therefore its stock price will be significantly influenced by

economic conditions across the globe. The behaviour of its asset price may also follow

the new technology trend closely. It will eventually lead to a divergence of the long

term historical volatility pattern. Hence, using conditional variances estimated from

the GARCH model may enhance the explanatory power of the Black-Scholes model.

Fourthly, the company’s dividend payment structure should be carefully examined. It

must be ensured that the effects of dividends are properly accounted for by the model.

If the dividend payment is in the form of a lump sum cash distribution, the jump

diffusion model proposed by Kou (2002) will be helpful as there is a discontinuity in the

return.

Moreover, in this model, only the price risk is considered. Risk-neutrality is the

argument made in the model in the first instance that accounts for the price risk only.

However, it is obvious that other risks such as the liquidity risk or the gap risk arising

from the impossibility of costless continuous trading are essential as well. This area is

47

not studied in this dissertation and is therefore remaining open for future discussion.

Finally, the Black-Scholes formula itself is only an approximation to the option price.

The number of factors considered in the model is limited. Other factors such as the

political presidential election, the sudden change in the relationship of demand and

supply of the underlying asset and the business cycle in the macro-economy might

have been neglected by the Black-Scholes model. It is widely suggested by many

references that incorporating more factors into the Black-Scholes model would make

the model outputs match better with the real-world data.

8. Conclusion

In this dissertation, after an extensive study of the relevant literature, the main focus

is the pricing of non-dividend-paying American put options. Efforts are firstly devoted

to the derivation of Black-Scholes formula, following a set of assumptions. The

Black-Scholes formula itself is an approximation to the actual option price. It is in

effect a result of re-arranging after an intensive application of Taylor’s expansion.

Owing to the early-exercise potential of the American put option, the exercise

boundary is not fixed. As no closed-form solutions are available to solve the inequality

in the pricing function, numerical approximations are employed. Three schemes,

namely the explicit, implicit, and Crank-Nicolson schemes are studied. Among these

methods, the explicit method is the easiest to program but could generate unstable

results unless stability constraints are imposed. The implicit scheme is more difficult to

program but will generate stable results regardless of the mesh density. The

Crank-Nicolson method takes more computation time but is the most accurate

approach as it is effectively a combination of the explicit and implicit schemes. LU

factorization and the iterative successive over-relaxation are two main approaches

used to solve a large system of linear equations arising from the finite difference

scheme.

48

The traditional finite difference schemes are applied to solve for European option

prices with fixed exercise boundaries. For American options with unknown boundaries,

the moving boundary method is employed. It is in effect a technique to convert the

original problem to a set of fixed-boundary problems. By so doing, the finite difference

methods can be implemented to get updates for the boundary exercise price. As

opposed to the traditional methods, the moving boundary method is faster in terms of

the convergence of boundaries. Empirical analysis shows that the dividend-paying

moving boundary model works better for GE while the non-dividend paying version

works better for Vringo. It is also observed that the mean differences of the values

generated from the model and the real data are not significantly different from zero at

5% significance level for both companies. Hence, the adapted moving boundary

method is proved to have explanatory power in the real world. Despite the merits,

the logic behind this method is complex and the mesh size should be carefully chosen

to ensure that the optimal boundary can be reached. Taking computational efficiency

into consideration, the value of the over-relaxation factor in the SOR scheme is further

optimized to be 1.9 and the reason for not doing the variable transformation is

justified.

After checking the original model assumptions, empirical analysis proves that the

assumed log-normal distribution of stock return is flawed. Unexpected changes in

market volatility and interest rate structure might also have a significant influence on

option prices. Relaxing the non-dividend-paying assumption will improve the result to

a degree, but it is still far from being satisfactory. A deeper study of the dividend policy

of the company and its effect on option values is left for future discussion. Further

improvements such as the replacement of the assumed stock price distribution and

the possibility of incorporating non-constant volatility into the model are also left for

future consideration.

49

Appendix

A.1: MATLAB codes for explicit finite difference scheme

(Codes are adapted from Richardson (2009))

function AmPutExpl(s0,E,r,sigma,T,Smax,M)

%set up the mesh & grid points, opval(time,price)=option value

ds = Smax/M;

N=T*sigma^2*M^2;% Taking stability into account

dt=T/N;

opval = zeros(M+1,N+1);

vets = linspace(0,Smax,M+1);

veti = 0:N;

vetj = 0:M;

% set up boundary conditions;

opval(:,N+1) = max(E-vets,0); % @ time T

opval(1,:) = E*exp(-r*dt*(N-veti));% @ s=0

opval(M+1,:) = 0;% @ S=Smax

% set up coefficient matrices;

a = 1/(1+r*dt)*0.5*dt*(sigma*sigma*vetj - r).*vetj;

b = 1/(1+r*dt)* (1 - dt*(sigma*sigma*vetj.^2));

c = 1/(1+r*dt)* 0.5*dt*(sigma*sigma*vetj +r).*vetj;

% solve backward in time;

for i=N: -1:1

for j=2:M

opval(j,i) = a(j)*opval(j-1,i+1) + b(j)*opval(j,i+1)+c(j)*opval(j+1,i+1);

if opval(j,i) < E - (j-1)*ds

opval(j,i) = E - (j-1)*ds;

end

end

end

%Plot the mesh and output the value matrix

50

opval=rot90(opval);

%vett=T:-dt:0;

%mesh(vets,vett,opval)

%xlabel('S');ylabel('t');zlabel('V(S,t)')

% find the closest point to s0 on the grid and return the price

% possibly with a linear interpolation

price=interp1(vets,opval(N+1,:),s0)

A.2: MATLAB codes for implicit finite difference scheme (LU)

function price=EuPutImpl_LU(s0,E,r,sigma,T,Smax,M,N)

%set up the mesh & opval(time,price)=option value

tic

opval=zeros(N+1,M+1);

ds=Smax/M;

dt=T/N;

vets=0:ds:Smax;

vett=T:-dt:0;

opval(1,:)= max(E-vets,0); % @time=T

opval(:,1)= E*exp(-r*(T-vett')); % @S=0

opval(:,M+1)= 0; % S=Smax

%Set up tridiagonal matrix

a = @(j) 0.5*dt*(r*j-sigma^2*j^2);

b = @(j) 1 + (sigma^2*j^2 + r)*dt;

c = @(j) -0.5*dt*(sigma^2*j^2+r*j);

acoeffs = zeros(M+1,1);bcoeffs = zeros(M+1,1);ccoeffs = zeros(M+1,1);

for j=1:M+1

acoeffs(j) = a(j-1); bcoeffs(j) = b(j-1); ccoeffs(j) = c(j-1);

end

Tri=diag(acoeffs(2:end),-1)+diag(bcoeffs)+diag(ccoeffs(1:end-1),+1);

[L,U] = lu(Tri);

%Iteration

for j=1:N

aux=zeros(M+1,1);

51

aux(1)=-a(0)*opval(j+1,1);

RHS=opval(j,:)'+aux;

aux=U \ ( L \ RHS);

opval(j+1,(2:end-1))=aux(2:end-1);

end

%plot the mesh and output the value matrix

%opval

%mesh(vets,vett,opval)

%xlabel('S');ylabel('t');zlabel('V(S,t)')

% find the closest point to s0 on the grid and return the price

% possibly with a linear interpolation

price=interp1(vets,opval(N+1,:),s0)

toc

A.3: MATLAB codes for implicit finite difference scheme (SOR)

function AmPutImpl_SOR(s0,E,r,sigma,T,Smax,M,N)

% Setup Mesh and Boundary Conditions

% omega=relaxation factor; tol=tolerance level

% tic and toc are used to calculate computation time

% My mesh: vertical axis=time (idt); horizontal axis=stock price(jds)

% Smax is usually twice or three times the strik price

tic

% Setting parameters and option value matrix

omega=1.2;

tol=0.0001;

opval=zeros(N+1,M+1);

dt=T/N;

ds=Smax/M;

vets=0:ds:Smax;

vett=T:-dt:0;

opval(1,:)= max(E-vets,0); % @time=T

opval(:,1)= E*exp(-r*(T-vett)); % @S=0

opval(:,M+1)= 0; % S=Smax

% Construct Tridiagonal Matrix

% @ is a function handle

52

a = @(j) 0.5*dt*(r*j-sigma^2*j^2);

b = @(j) 1 + (sigma^2*j^2 + r)*dt;

c = @(j) -0.5*dt*(sigma^2*j^2+r*j);

acoeffs = zeros(M+1,1);bcoeffs = zeros(M+1,1);ccoeffs = zeros(M+1,1);

for j=1:M+1

acoeffs(j) = a(j-1);

bcoeffs(j) = b(j-1);

ccoeffs(j) = c(j-1);

end

Tri=diag(acoeffs(3:M),-1)+diag(bcoeffs(2:M))+diag(ccoeffs(2:M-1),+1);

% SOR interation

for p=1:N

aux=zeros(M-1,1);

aux(1)=-a(0)*opval(p+1,1);

aux(end)=-c(M)*opval(p+1,M+1);

RHS=opval(p,2:M)'+aux;

% Gauss-Siedel SOR method: Solving Ax=b iteratively

% dim(A) = (M-1)*(M-1), dim(b) = (M-1)*1

A=Tri;b=RHS;

x=opval(p,2:M)'; % Define x

xold=100*x; % Initialise x to enter the loop

n=length(x);

% when the difference > tolerance level, re-do the whole loop

k=0; %k is used to store iteration steps

while norm(xold-x)>tol

xold=x; % redefine xold

for i=1:n % matrix rows

if i==1

z=(b(i)-A(i,i+1)*x(i+1))/A(i,i);

x(i) = max(omega*z + (1-omega)*xold(i),E-i*ds);

elseif i==n

z=(b(i)-A(i,i-1)*x(i-1))/A(i,i);

x(i) = max(omega*z + (1-omega)*xold(i),E-i*ds);

else

z=(b(i)-A(i,i-1)*x(i-1)-A(i,i+1)*x(i+1))/ A(i,i);

x(i) = max(omega*z + (1-omega)*xold(i),E-i*ds);

53

end

end

k=k+1;

end

opval(p+1,(2:end-1))=x;

end

%plot the mesh and output the value matrix

%opval

%mesh(vets,vett,opval)

%xlabel('S');ylabel('t');zlabel('V(S,t)')

% find the closest point to s0 on the grid and return the price

% possibly with a linear interpolation

price=interp1(vets,opval(N+1,:),s0)

k

toc

A.4: MATLAB codes for Crank-Nicolson finite difference scheme

(SOR)

function AmPutCN_SOR(s0,E,r,sigma,T,Smax,M,N)

%ud_val = updated value

%p_val = past value

%k = no. of iterations

tic

omega=1.9;

tol=0.001;

dS = Smax/M; % set up grid

dt = T/N;

oldval = zeros(M-1,1); % set up option matrices for updating

ud_val = zeros(M-1,1);

vetS = [0:dS:Smax]';

veti = 0:N;

vetj = 0:M;

% set up boundary conditions

54

opval = max(E-vetS(2:M),0);% @time=T

p_val = opval; % old option values awaiting update

b_val = E*exp(-r*dt*(N-veti)); % @S=0

% set up LHS & RHS tri-diagonal matrices

e = 0.5*dt*( 0.5*sigma^2*(vetj.^2) - 0.5*r*vetj );

f = -dt*0.5*( sigma^2*(vetj.^2) + r );

g = 0.5*dt*( 0.5*sigma^2*(vetj.^2) + 0.5*r*vetj );

W2 = diag(e(3:M),-1) + diag(1+f(2:M)) + diag(g(2:M-1),1);% RHS matrix

% SOR iteration

aux = zeros(M-1,1);

for i=N:-1:1

aux(1) = e(2) * (b_val(1,i) + b_val(1,i+1));

% Initialise the RHS values

RHS = W2*p_val(:) + aux;

oldval = p_val;

er = 10;% An arbitrary large error value to start the while-loop

Y=0; % k is used to store iteration steps

while tol < er

ud_val(1) = max ( opval(1), oldval(1) + omega/(1-f(2)) * (RHS(1) -

(1-f(2))*oldval(1) + g(2)*oldval(2)));

for k=2:M-2

ud_val(k) = max ( opval(k), oldval(k) + omega/(1-f(k+1)) * (RHS(k) +

e(k+1)*ud_val(k-1) - (1-f(k+1))*oldval(k) + g(k+1)*oldval(k+1)));

end

ud_val(M-1) = max( opval(M-1),oldval(M-1) + omega/(1-f(M)) * (RHS(M-1) +

e(M)*ud_val(M-2) - (1-f(M))*oldval(M-1)));

er = norm(ud_val - oldval);

oldval = ud_val;

Y=Y+1;

end

p_val = ud_val;

end

% find closest point to s0 on the grid and return price

% possibly with a linear interpolation

ud_val = [b_val(1) ; ud_val ; 0];% complete the whole matrix

price=interp1(vetS,ud_val(:,1),s0)

55

Y

toc

A.5: MATLAB codes for moving boundary method

function [opval,FBD,vett,vetS,itr] = AmPut_MB(E,r,T,sigma,Smax,M,N)

% opval(M,N)=opval(S,vett)

% Ref: Kumar Muthuraman

% div=0

% itr=No. of iterations

tic

dS = Smax/M;

dt = T/N;

vett = 0:dt:T;

vetS = 0:dS:Smax;

S = repmat(vetS',1,N+1);% each column of the matrix is S

% No. of steps in S (perpetual boundary)

PB = pb(E,r,sigma); % get perpertual boundary to start the updating process

PB1= ceil(PB/dS);% No. of steps in S (index of perpetual boundary)

FB = ones(1,N+1)*PB1; % Matrix of free boundary

FB(end) = ceil(E/dS)+1;

E_i=ceil(E/dS)+1; % No. of steps in E (index of E)

% set up boundary conditions

opval = zeros(M+1,N+1);

val= max(E-S,0);% payoff for each S

opval(:,end) = val(:,end);

opval(1:PB1,1:N) = val(1:PB1,1:N);

% set the parameters in solving linear system

vetj = 0:M;

a = 0.5*dt*( 0.5*sigma^2*(vetj.^2) - 0.5*r*vetj );

b = -dt*0.5*( sigma^2*(vetj.^2) + r );

c = 0.5*dt*( 0.5*sigma^2*(vetj.^2) + 0.5*r*vetj );

for i = N:-1:1

k=0;% k is used to store iteration

flag= 0;

FB_N = FB(i);% initial perpetual boundary -> update

56

while flag == 0

FB_O = FB_N; % old=new boundary

x = opval(FB_O+1:M,i+1);

% Use CN_FDM to solve the fixed boundary problem

aux = a(FB_O+1)*(val(FB_O,i)+val(FB_O,i+1));

opval(FB_O+1:M,i) =

CN(x,-a(FB_O+2:M),1-b(FB_O+1:M),-c(FB_O+1:M-1),a(FB_O+2:M),1+b(FB_O+1:M),c(

FB_O+1:M-1),aux);

% moving boundary

% FB_O=old boundary; FB_N=new boundary

if opval(FB_O+1,i) < val(FB_O+1,i) && FB_O ~= E_i - 1

% if option price<payoff (partial diffferential of P wrt to S <-1),

the new moving boundary=updated new boundary and the loop continues until

opval>=payoff

FB_N = MB(FB_O,E_i,opval(:,i)',dS);

k=k+1;

else

flag = 1;

end

opval(FB_O+1:FB_N,i) = val(FB_O+1:FB_N,i);

end

itr=k;

FB(i) = FB_N;% for each step, one associated boundary is computed.

end

FBD= zeros(1,N+1);% matrix of the free boundary

for i = 1:N+1

FBD(i) = vetS(FB(i));% retrieve the free boundary

end

toc

end

% sub-function: moving boundary

function FB_N = MB(FB_O,E_i,K,dS)

57

x = diff(K(FB_O:E_i))/dS;% x = partial differentiation of option price w.r.vett

S

FB_N = find((x<-1),1,'last')+FB_O; % find the index of the last element where

x<-1 is satisfied and update the boundary

% the above line is used to deal with the 'sup{}' condition

end

% sub-function: CN_LU method

function x_new = CN(x,a,b,c,a1,b1,c1,aux) % CN method to solve the fixed boundary

problem

W1= diag(a,-1)+diag(b)+diag(c,1);

W2 = diag(a1,-1)+diag(b1)+diag(c1,1);

x = W2*x;

x(1) = x(1)+aux;

[L,U]=lu(W1);

x_new = U \ (L \ x);

end

% sub-function: perpetual boundary

function b = pb(E,r,sigma)

v = r/sigma-sigma/2;

l = -(v+sqrt(v^2+2*r))/sigma;

b = l/(l-1)*E;

end

58

References

Andreasen, J., Jensen, B. and Poulsen, R. (1999) Eight Valuation Methods in Financial Mathematics: The

Black-Scholes Formula as an Example, Mathematical Scientist, 23(1), 18-40

Bachelier, L. (1900) Th´eoriedelasp´ eculation, Translated from French by Mark Davis and Alison

Etheridge New Jersey: Princeton University Press (Published in 2006).

Bates, D.S. (1995) Testing Option Pricing Models, Statistical Methods in Finance, 14(1), 567-611

Black, F. and Scholes, M. (1973) The pricing of options and corporate liabilities, Journal of Political

Economy, 81(3), 637-654

Boness, A.J.(1964) Elements of a theory of stock-option value, Journal of Political Economy, 72, 163-175

Brennan, M. and Schwartz, E.S.(1977) The valuation of American put options, The Journal of

Finance,32(2)

Broadie, M. and Detemple, J. (1996) American Option Valuation: New Bounds, Approximations, and a

Comparison of Existing Methods, Review of Financial Studies, 9(4), 1211-1250.

Carr, P., Jarrow, R. and Myneni R. (1992) Alternative Characterizations of American Put Options,

Mathematical Finance, 2, 87-106.

Cox, J.C. and Ross S.A (1976) The valuations of options for alternative stochastic processes, Journal of

Financial Economics, 3, 145-166.

Cox, J.C., Ross, S.A. and Rubinstein, M. (1979) Option Pricing: A Simplified Approach, Journal of

Financial Economics, 7, 229-264

Demmel, J.W. (1997) Applied Numerical Linear Algebra, 1st ed, USA: SIAM

Geske R. and Johnson H.E. (1984) The American Put Option Valued Analytically, The Journal of Finance,

39(5) 1511-1524

Harrison, J.M and Pliska, S.R (1981) Martingales and stochastic integrals in the theory of continuous

trading, stochastic processes and their applications, 11, 215-260

Hull, J.(2006) Options, Futures, and other Derivatives, 6thed. New Jersey: Pearson Education Press.

Jiang, L.S. (2003) Mathematical Modelling and Methods of Option Pricing, 1st ed. Beijing: Higher

Education Press.

59

Kou, S.G. (2002) A Jump-Diffusion Model for Option Pricing Management Science, 48(8), 1086–1101.

Kreyszig, E.(2006) Advanced Engineering Mathematics, 9thed. Singapore: John Wiley and Sons, Inc.

Longstaff, F.A. and Schwartz, E.S. (2001) Valuing American Options by Simulation: A Simple

Least-Squares Approach, The Review of Financial Studies, 14(1), 113-147

Memon, S. (2012) FINITE ELEMENT METHOD FOR AMERICAN OPTION PRICING: A PENALTY

APPROACH, International Journal of Numerical Analysis and Modelling, Series B Computing and

Information, 3(3), 345–370.

Merton, R.C. (1973) Theory of rational option pricing, The Bell Journal of Economics and Management

Science, 4(1), 141-183

Mitchell A.R and Griffiths, D.F. (1980) The Finite Difference Method in Partial Differential Equations. 1st

ed, England: John Wiley and Sons, Inc

Muthuraman, K. (2007) A Moving Boundary Approach to American Option Pricing, McCombs Research

Paper Series, IROM-06-08

Richardson, M. (2009) Numerical Methods of Option Pricing, Thesis (PhD), University of Oxford.

Samuelson, P. A. (1965) Rational Theory of Warrant Pricing, Industrial Management Review, 6(2), 13.

Sprenkle, C. M. (1961) Warrant prices as indicators of expectations and preferences, Yale Economic

Essays, 1(2), 178-231.

Wilmott, P.(2006) Paul Wilmott Introduces Quantitative Finance, 2nd ed. England: John Wiley and Sons,

Inc.

Wilmott, P.(2006) Paul Wilmott On Quantitative Finance, 2nd ed. England: John Wiley and Sons, Inc.

Wilmott, P., Howison, S. and Dewynne, J. (1995) The mathematics of financial derivatives: a student

introduction, 14th ed. New York: Cambridge University Press.