Final Year Project
-
Upload
independent -
Category
Documents
-
view
4 -
download
0
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.