Pricing options using predictor corrector schemes

112 61 0
Pricing options using predictor corrector schemes

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

PRICING OPTIONS USING PREDICTOR-CORRECTOR SCHEMES THIBAUT HILPERT (Ecole Centrale Paris) A THESIS SUBMITTED FOR THE DEGREE OF MASTER OF SCIENCE DEPARTMENT OF MATHEMATICS NATIONAL UNIVERSITY OF SINGAPORE 2011 ii To my parents and sister. iii Acknowledgements I would like to take this opportunity to express my sincere gratitude to all the people who have provided me their support, advice and guidance throughout this thesis. First of all, I would like to thank my supervisor, Professor Tan Hwee Huat, for his guidance and assistance during my study and research. His ideas and expertise are crucial to the completion of this thesis. I would like to thank him for spending his valuable time revising this thesis. I also would like to thank and express all my love to my family. To my parents, Philippe and Christine, who have always supported me in all the things I have done. To my sister, Mathilde, who have always believed in me. iv Contents Acknowledgements iv Summary ix List of Tables x List of Figures xi Notation xiii 1 Introduction 1.1 1.2 1.3 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 Explicit Schemes . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.2 Implicit Schemes . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1.3 Predictor-Corrector Schemes . . . . . . . . . . . . . . . . . . . 7 The Black & Scholes model . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.1 European Options . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.2 American Options . . . . . . . . . . . . . . . . . . . . . . . . . 9 The free boundary problem . . . . . . . . . . . . . . . . . . . . . . . 12 v 2 A Predictor-Corrector finite difference scheme using a front-fixing technique for valuing American puts 14 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2 The Front-Fixing Technique . . . . . . . . . . . . . . . . . . . . . . . 16 2.3 The Predictor-Corrector Scheme . . . . . . . . . . . . . . . . . . . . . 19 2.4 Numerical Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.4.1 Case 1: The initial asset price is equal to the strike . . . . . . 25 2.4.2 Case 2: In the money . . . . . . . . . . . . . . . . . . . . . . . 25 2.4.3 Case 3: Out of the money . . . . . . . . . . . . . . . . . . . . 27 2.4.4 Order of Convergence . . . . . . . . . . . . . . . . . . . . . . . 29 Conclusion : advantages and drawbacks . . . . . . . . . . . . . . . . . 33 2.5 3 A linearly implicit predictor-corrector scheme using a penalty method approach for valuing American options. 35 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.2 The Black & Scholes model . . . . . . . . . . . . . . . . . . . . . . . 36 3.3 The Penalty Method . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.4 The linearly implicit predictor-corrector scheme . . . . . . . . . . . . 38 3.5 Numerical experiments . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.5.1 Case 1: The initial asset price is equal to the strike . . . . . . 42 3.5.2 Case 2: In the money . . . . . . . . . . . . . . . . . . . . . . . 42 3.5.3 Case 3: Out of the money . . . . . . . . . . . . . . . . . . . . 44 3.5.4 Order of Convergence . . . . . . . . . . . . . . . . . . . . . . . 46 Conclusion : advantages and drawbacks . . . . . . . . . . . . . . . . . 49 3.6 vi 3.7 Comparison of the two schemes . . . . . . . . . . . . . . . . . . . . . 4 Predictor-Corrector Schemes for Jump-Diffusion Processes 50 53 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.2 The Jump-Diffusion Stochastic Differential Equation . . . . . . . . . 54 4.2.1 The General Theory . . . . . . . . . . . . . . . . . . . . . . . 54 4.2.2 The Merton Jump-Diffusion Model . . . . . . . . . . . . . . . 55 Predictor-Corrector Schemes . . . . . . . . . . . . . . . . . . . . . . . 55 4.3.1 The Regular Predictor-Corrector Scheme . . . . . . . . . . . . 55 4.3.1.1 The General Theory . . . . . . . . . . . . . . . . . . 56 4.3.1.2 The Merton Jump-Diffusion Model . . . . . . . . . . 56 The Jump-Adapted Predictor-Corrector Scheme . . . . . . . . 57 4.3.2.1 The General Theory . . . . . . . . . . . . . . . . . . 57 4.3.2.2 The Merton Jump-Diffusion Model . . . . . . . . . . 58 4.4 Monte-Carlo Simulation . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.5 Numerical Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.5.1 The Regular Predictor-Corrector Scheme . . . . . . . . . . . . 62 4.5.1.1 Case 1: The initial asset price is equal to the strike . 63 4.5.1.2 Case 2: In the money . . . . . . . . . . . . . . . . . 64 4.5.1.3 Case 3: Out of the money . . . . . . . . . . . . . . . 66 The Jump-Adapted Predictor-Corrector Scheme . . . . . . . . 69 4.5.2.1 Case 1: The initial asset price is equal to the strike . 70 4.5.2.2 Case 2: In the money . . . . . . . . . . . . . . . . . 71 4.5.2.3 Case 3: Out of the money . . . . . . . . . . . . . . . 73 4.3 4.3.2 4.5.2 vii 4.6 Conclusion: advantages and drawbacks . . . . . . . . . . . . . . . . . 76 5 Conclusion 78 Bibliography 81 A Codes 85 A.1 Code for the front-fixing Predictor-Corrector Scheme . . . . . . . . . 85 A.2 Code for the linearly implicit predictor-corrector using a penalty method 89 A.3 Codes for the Predictor-Corrector Schemes for Jump-Diffusion Processes 92 A.3.1 Code for the exact value of the European call option . . . . . 92 A.3.2 Code for the Regular Predictor-Corrector Scheme . . . . . . . 93 A.3.3 Code for the Jump-Adapted Predictor-Corrector Scheme . . . 96 viii Summary Widely used explicit and implicit schemes each have their own advantages and drawbacks. Predictor-Corrector schemes are designed to be a compromise of the two by retaining both the stability property of the implicit schemes and the computational efficiency of the explicit schemes. I will present in this thesis three different Predictor-Corrector schemes used in the valuation of options. First, I will consider a Predictor-Corrector finite difference scheme using a front-fixing technique for pricing American puts. Secondly, I will introduce a linearly implicit Predictor-Corrector scheme using a penalty method approach for valuing American options. Lastly, I will develop Predictor-Corrector schemes for Jump-Diffusion stochastic differential equations which will be used in Monte Carlo simulations and I will introduce the special case of the valuation of European options. In each section, I focus on the theory and then I give some numerical experiments using my implemented codes. Keywords : Predictor–Corrector Schemes, Finite Difference Scheme, Monte Carlo Simulation, Jump Diffusions, Penalty Method, Black-Scholes Equation, Option Pricing. ix List of Tables 2.1 Order of convergence in asset price . . . . . . . . . . . . . . . . . . . 32 2.2 Order of convergence in time . . . . . . . . . . . . . . . . . . . . . . . 33 3.1 Order of convergence in asset price . . . . . . . . . . . . . . . . . . . 49 3.2 Order of convergence in time . . . . . . . . . . . . . . . . . . . . . . . 50 3.3 Number of steps and CPU time for the same accuracy (10−2 ) . . . . . 51 3.4 Order of convergence (calculated numerically) . . . . . . . . . . . . . 52 x List of Figures 2.1 Case S0 = X: Convergence with the number of time steps . . . . . . 26 2.2 Case S0 = X: Convergence with the number of steps in the S direction 27 2.3 In the money: Convergence with the number of steps in the S direction 28 2.4 In the money: Convergence with the number of time steps . . . . . . 2.5 Out of the money: Convergence with the number of steps in the S 29 direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.6 Out of the money: Convergence with the number of time steps . . . . 31 3.1 Case S0 = X: Convergence with the number of steps in the S direction 43 3.2 Case S0 = X:: Convergence with the number of time steps . . . . . . 3.3 In the money: Convergence with the number of steps in the S direction 45 3.4 In the money: Convergence with the number of time steps . . . . . . 3.5 Out of the money: Convergence with the number of steps in the S 44 46 direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.6 Out of the money: Convergence with the number of time steps . . . . 48 4.1 Case S0 = X: Convergence with the number of simulated paths . . . 64 4.2 Case S0 = X: Standard error of the simulated option prices 65 xi . . . . . 4.3 In the money: Convergence with the number of simulated paths . . . 66 4.4 In the money: Standard error of the simulated option prices . . . . . 67 4.5 Out of the money: Convergence with the number of simulated paths . 68 4.6 Out of the money: Standard error of the simulated option prices . . . 69 4.7 Case S0 = X: Convergence with the number of simulated paths . . . 71 4.8 Case S0 = X: Standard error of the simulated option prices . . . . . 72 4.9 In the money: Convergence with the number of simulated paths . . . 73 4.10 In the money: Standard error of the simulated option prices . . . . . 74 4.11 Out of the money: Convergence with the number of simulated paths . 75 4.12 Out of the money: Standard error of the simulated option prices . . . 76 xii Notation We use the following definitions : V = price of the option S = price of the underlying asset σ = volatility of the underlying asset r = risk free interest rate q = dividend yield of the underlying asset X = strike price of the option T = expiry time of the option t = current time S¯ = optimal exercise price xiii Chapter 1 Introduction 1.1 Introduction Hofmann and Platen [11] for pure diffusion stochastic differential equations and Higham and Kloeden [9] [10] for jump-diffusion stochastic differential equations, have shown that explicit schemes have narrower regions of numerical stability compare to implicit schemes. That is what explains the recent developments concerning implicit methods. Nevertheless, despite a better stability, implicit schemes are much more demanding in terms of computational capacity because they usually require the solution of an algebraic equation at each time step involving large matrices. Therefore the user has to choose between stability and computational efficiency. To find a compromise between these two aspects, a new kind of scheme was developed: the Predictor-Corrector schemes. The first significant schemes were introduced by Moulton [20] and Milne [19]. Their idea was to build schemes that can retain both the stability property of the implicit schemes and the computational efficiency of the 1 explicit schemes by avoiding to solve an algebraic equation at each time step. This is achieved by using the following general procedure : first an explicit scheme - the so-called predictor - generates an approximated solution of the next step; then in a second part, an implicit scheme - the corrector - uses this predicted value instead of solving the algebraic equation involving the unknown value at step n + 1 in order to become also explicit. Therefore both the predictor and the corrector are explicit due to the use of the predicted value, what brings a greater computational efficiency. Moreover, the fact of using an implicit scheme in the second part increases the stability of the scheme. Thus in this thesis, we will present three different predictor-corrector schemes used in the valuation of options. First, we will consider a predictor-corrector finite difference scheme using a front-fixing technique for pricing American puts. Secondly, we will introduce a linearly implicit predictor-corrector scheme using a penalty method approach for valuing American options. We will then draw a comparison between these two finite difference schemes in terms of order of convergence and computational efficiency. Lastly, we will develop predictor-corrector schemes for jump-diffusion stochastic differential equations which will be used in Monte Carlo simulations. We will then apply the results to the special case of the valuation of European options. In each section, we focus on the theory and then we give some numerical experiments using our implemented codes. 2 1.1.1 Explicit Schemes An explicit scheme is a numerical method that calculates the state of a system at a later time from the state of the system at the current time. Therefore it only uses data that we have already calculated. If Y (t) refers to the state of the system at time t, an explicit scheme can be written under the form: Y (t + ∆t) = f (Y (t)) (1.1) This presents several advantages: - there is no need to solve complicated algebraic equations that involve a lot of calculation - these methods are easy to implement Nevertheless, the main drawback of these methods is that they are conditionally convergent : there are only valid in a limited region. We now consider the Black and Scholes equation and use it to show an example of explicit scheme. ∂V 1 ∂ 2V ∂V + σ 2 S 2 2 + (r − q)S − rV = 0 ∂t 2 ∂S ∂S (1.2) We then discretize the problem in time and in the stock price. Using a finite difference method, we are only able to solve this equation on a bounded domain. The time t belongs to [0, T ] but the stock price verifying S ≥ 0 is not bounded. Therefore in order to truncate the domain in the S direction, we introduce Smax which is the highest stock price that will be taken into account. Let ∆t = direction and h = Smax M T N be the step in the time t be the step size in the S direction. We consider the mesh { 3 tn = n∆t, Si = ih, n = 0, 1, ..., N, i = 0, 1, ..., M }. We denote V (Si , tn ) = Vin , the option value at time tn for the stock price Si . In order to obtain an explicit scheme, we need to use the following difference discretizations at the point (Si , tn+1 ): ∂V ∂S ∂ 2V ∂S 2 (1.3) n+1 n+1 − 2Vin+1 + Vi−1 Vi+1 + O(h2 ) = 2 h (1.4) Vin+1 − Vin = + O(∆t) ∆t (1.5) (Si ,tn+1 ) (Si ,tn+1 ) ∂V ∂t n+1 n+1 − Vi−1 Vi+1 = + O(h2 ) 2h (Si ,tn+1 ) The Black and Scholes equation then becomes: n+1 n+1 n+1 V n+1 + Vi−1 Vi+1 − Vi−1 − 2Vin+1 Vin+1 − Vin 1 2 + σ (ih)2 i+1 + (r − q)ih − rVin+1 = 0 ∆t 2 h2 2h (1.6) i.e. Vin = (1−σ 2 i2 ∆t−r∆t)Vin+1 + 1 1 1 22 1 n+1 n+1 σ i + ri ∆tVi+1 + σ 2 i2 − ri ∆tVi−1 (1.7) 2 2 2 2 Therefore, by knowing the pay-off condition at the expiry T , we are able to obtain the initial value of the option by applying the scheme given in equation (1.7) and solving it in a backward manner. This scheme is explicit because we did not need to solve algebraic equations: the only values we need in the scheme have already been calculated during the previous time step. Nevertheless, this scheme is conditionally stable as shown by Isaacson and Keller in [6] : this method is convergent only if the following condition is verified: ∆t ≤ Ch2 4 (1.8) This condition is often unacceptable because when we want to refine our calculation by taking a new step in the stock price direction equal to h n then we have to take ∆t n2 in t. That is what motivates mathematicians to develop other more stable methods: the implicit schemes. 1.1.2 Implicit Schemes An implicit scheme is a numerical method that calculates the state of a system at a later time by solving an equation involving both the current state of the system and the later one. Therefore it involves data that we have not already calculated. If Y (t) refers to the state of the system at time t, an implicit scheme can be written under the form : f (Y (t), Y (t + ∆t)) = 0 (1.9) This method presents the advantage of being very stable but the counterpart is that it is more demanding in terms of computational capacity because it usually requires the solution of an algebraic equation at each time step involving large matrices. We consider again the Black and Scholes equation (1.2) and use it to introduce an example of implicit scheme. We consider the same mesh as in Section 1.1.1. We then introduce the fully implicit scheme. For this scheme we use the following difference discretizations at the point (Si , tn ): ∂V ∂S ∂ 2V ∂S 2 (Si ,tn ) (Si ,tn ) = n n − Vi−1 Vi+1 + O(h2 ) 2h (1.10) n n Vi+1 + Vi−1 − 2Vin + O(h2 ) h2 (1.11) = 5 ∂V ∂t (Si ,tn ) Vin+1 − Vin + O(∆t) = ∆t (1.12) The Black and Scholes equation then becomes: n+1 n+1 n+1 Vi+1 − Vi−1 V n+1 + Vi−1 − 2Vin+1 Vin+1 − Vin 1 2 + σ (ih)2 i+1 + (r − q)ih − rVin+1 = 0 ∆t 2 h2 2h (1.13) i.e. (1 + σ 2 i2 ∆t + r∆t)Vin − 1 22 1 1 1 n n σ i + ri ∆tVi+1 − σ 2 i2 − ri ∆tVi−1 = Vin+1 (1.14) 2 2 2 2 We see that this scheme involve, in the calculation of Vin , the value Vin+1 at time tn+1 n n but also two other values Vi−1 and Vi+1 at the current time tn . Therefore, at each time step, there are M − 1 equations and M + 1 unknowns. Knowing the pay-off condition at the expiry T is not sufficient, we need two more boundary conditions to be able to solve the system. Usually we obtain these additional equations using the boundary conditions i.e. by having the value of the option for all the time steps at the stock price S = 0 and S = Smax : V0n and VMn ∀n. Then we can write the system under a matrix form. Vn+1 − Vn − AVn = Fn ∆t (1.15) Vn = (I + A∆t)−1 (Vn+1 − Fn ∆t) (1.16) which gives: This scheme is implicit because we need to solve algebraic equations which is very time consuming. Nevertheless, the advantage of this scheme is that it is unconditionally convergent [6]. Therefore the stability of this type of methods is what makes them very attractive despite the loss of computational efficiency. 6 1.1.3 Predictor-Corrector Schemes As shown in the two previous subsections, explicit schemes have narrower regions of numerical stability compare to implicit schemes. Nevertheless, despite a better stability, implicit schemes are much more demanding in terms of computational capacity because they usually require the solution of algebraic equations. Therefore the user has to choose between stability and computational efficiency. To find a compromise between these two aspects, we introduce a new kind of scheme : the Predictor-Corrector schemes. They are built using both an explicit scheme in the predictor part and an implicit scheme in the corrector part. Three different examples will be introduced in the next sections. 1.2 The Black & Scholes model We will now develop the theory concerning European and American options. This theoretical part is based on the work of Black and Scholes [7], Merton [17], Hull [12] and the course Financial Mathematics II taught in the National University of Singapore by Professor XIA Jianming [26]. 1.2.1 European Options In this subsection, we will work out the price of a European option. To do so, we assume that the market is made of two different assets: a riskless bond and a risky stock. The price of the bond follow the equation: dSt0 = rSt0 dt 7 (1.17) where r ≥ 0 is the interest rate of the riskless bond. In the Black and Scholes model, the stock price follows a geometric Brownian motion: dSt = µdt + σdBt St (1.18) where Bt is a standard Brownian motion. The Black and Scholes models assumes that the market is perfect, that is : - there are no transaction costs or taxes - the assets are perfectly divisible - the short sales of all assets are allowed - the trading in assets takes place continuously in time - the agents are price takers We also assume that the holder of the stock receives a continuous and constant dividend yield, q. Thus in a time dt, each stock gives the holder an amount equal to qSdt. From now on, we consider that the option’s pay-off can be written under the form g(ST ). In this case, if the function g satisfies some regularity condition, it can be justified that the value of the option is a function V (S, t) of the price of the stock S and the time t. Using a ∆-hedging method, we can prove that V (S, t) is solution of the famous Black and Scholes equation: ∂V 1 ∂ 2V ∂V + (r − q)S + σ 2 S 2 2 − rV = 0 ∂t ∂S 2 ∂S Moreover the value V (S, t) of the option satisfies the final condition:    (S − X)+ for a European call V (S, T ) = g(S) =   (X − S)+ for a European put 8 (1.19) (1.20) An explicit solution can thus be obtained:    Se−q(T −t) N (d1 ) − Xe−r(T −t) N (d2 ) for a European call V (S, t) =   Xe−r(T −t) N (−d2 ) − Se−q(T −t) N (−d1 ) for a European put (1.21) where 2 log XS + (r − q + σ2 )(T − t) √ d1 = σ T −t 2 √ log XS + (r − q − σ2 )(T − t) √ d 2 = d1 − σ T − t = σ T −t 1.2.2 (1.22) (1.23) American Options As in the previous subsection, we assume that the market is made of two different assets : a riskless bond and a risky stock. The price of the bond follows the equation: dSt0 = rSt0 dt (1.24) where r ≥ 0 is the interest rate of the riskless bond. In the Black and Scholes model, the stock price follows a geometric Brownian motion: dSt = µdt + σdBt St (1.25) where Bt is a standard Brownian motion. As in the European case, the value of the option is a function V (S, t) of the price of the stock S and the time t. An American option has the property of being exercised at any time before expiry, so the pay-off of the option if it is exercised at time t is for instance,    (St − X)+ for an American call Pay-off if the option is exercised at time t =   (X − St )+ for an American put (1.26) 9 The exercise time is usually random and is linked to the stock price. For example, considering an American put, it is likely not to exercise the option if the stock price is high because the pay-off will then be very small or even null. In the opposite case, if the stock price is small the question of the exercise of the option should be seriously taken into consideration. From now on, we consider an American option whose pay-off can be written under the form g(St ), ∀t. For such option, its value is a function of the stock price and the time: Vt = V (St , t), ∀t, (1.27) At expiry, we have V (S, T ) = g(S). (1.28) The right to early exercise leads to the constraint V (S, t) ≥ g(S), t ∈ [0, T ). (1.29) We can establish that the American option value satisfies the following inequality ∂V 1 ∂ 2V ∂V + σ 2 S 2 2 + (r − q)S − rV ≤ 0 ∂t 2 ∂S ∂S (1.30) In fact, if V (S, t) > g(S), then the option should not be exercised at time t, thus equation (1.30) holds as an equality, that is, ∂V ∂V 1 2 2 ∂ 2V + (r − q)S + σ S − rV = 0, 2 ∂t 2 ∂S ∂S if V (S, t) > g(S). (1.31) Consequently at least one of the inequality (1.29) or (1.30) holds as an equality. We obtain the complete model: V (S, t) ≥ g(S), f or S > 0, t ∈ [0, T ) 10 (1.32) ∂V 1 ∂ 2V ∂V + σ 2 S 2 2 + (r − q)S − rV ≤ 0, f or S > 0, t ∈ [0, T ) (1.33) ∂t 2 ∂S ∂S ∂V ∂V 1 2 2 ∂ 2 V + σ S −rV [V −g(S)] = 0, f or S > 0, t ∈ [0, T ) (1.34) +(r −q)S 2 ∂t 2 ∂S ∂S V (S, T ) = g(S), f or S > 0. (1.35) A more compact expression is min ∂V ∂2V 1 ∂V + σ 2 S 2 2 + (r − q)S − rV, V − g(S) = 0, ∂t 2 ∂S ∂S f or S > 0, t ∈ [0, T ) (1.36) V (S, T ) = g(S), f or S > 0. (1.37) It can be shown that there exists a unique solution to this model. From now on, we consider an American put option. We define the stopping (or exercise) region E and the continuation (or holding) region H by E = {(S, t) ∈ (0, ∞) × [0, T ) : V (S, t) = (X − S)+ }, (1.38) H = {(S, t) ∈ (0, ∞) × [0, T ) : V (S, t) > (X − S)+ }. (1.39) We have the following results: Lemma 1. V (S, t) is decreasing and convex with respect to S. −1 ≤ ∂V ≤0 ∂S (1.40) Lemma 2. (S ′ , t) ∈ E and S ′′ < S ′ ⇒ (S ′′ , t) ∈ E ¯ By Lemma 2., there exists a boundary S(t), called the optimal exercise boundary, such that ¯ E = {(S, t) ∈ (0, ∞) × [0, T ) : S ≤ S(t)}, (1.41) ¯ H = {(S, t) ∈ (0, ∞) × [0, T ) : S > S(t)}, (1.42) 11 ¯ is called optimal exercise boundary because it is optimal to exercise the option S(t) ¯ as the stock price S(t) hits S(t). ¯ is monotonically increasing. An important result is that S(t) ¯ In the continuation region H={S > S(t)}, the value of the American put satisfies the Black and Scholes equation ∂V ∂V 1 ∂ 2V + σ 2 S 2 2 + (r − q)S − rV = 0, ∂t 2 ∂S ∂S (S, t) ∈ H. (1.43) On the optimal exercise boundary and at the terminal time, we have respectively ¯ ¯ V (S(t), t) = X − S(t), t ∈ [0, T ), (1.44) S>0 (1.45) and V (S, T ) = (X − S)+ , However, the optimal exercise price being unknown, we need an additional boundary condition ∂V ¯ (S(t), t) = −1, ∂S t ∈ [0, T ). (1.46) This condition is called the high-contact condition which means that the hedging ratio ∆ = ∂V ∂S is continuous across the optimal exercise boundary. Thus we obtain a complete model which is called the free boundary problem. 1.3 The free boundary problem We thus obtain the following free boundary problem: ∂V 1 ∂ 2V ∂V + σ 2 S 2 2 + (r − q)S − rV = 0, ∂t 2 ∂S ∂S 12 ¯ S > S(t), 0 ≤ t < T, (1.47) V (S, T ) = max(X − S, 0), S ≥ 0, (1.48) ∂V ¯ (S, t) = −1, ∂S (1.49) ¯ ¯ V (S(t), t) = X − S(t) (1.50) lim V (S, t) = 0, (1.51) ¯ ) = X, S(T (1.52) S→∞ V (S, t) = X − S, ¯ 0 ≤ S < S(t), (1.53) The specificity of the American option is the possibility of being early exercised. Consequently, this is transforming the Black and Scholes equation into a non linear one. This equation is thus much more difficult to solve. For instance, contrary to the Black and Scholes equation there is no explicit solution of this equation. 13 Chapter 2 A Predictor-Corrector finite difference scheme using a front-fixing technique for valuing American puts 2.1 Introduction In this chapter, we will introduce a predictor-corrector scheme based on a finite difference method using a front-fixing technique. This scheme was developed by J. Zhang ang S.P. Zhu in [27]. It is used to price American puts which have a dividend yield. As we already mentioned it, the valuation of American options is a free boundary problem (see Section 1.3 ). In order to solve this problem, various numerical methods using finite difference schemes were developed. For example, Wu and Kwok presented 14 in [25] a front-fixing technique based on Landau transform [15] which was employed in order to build a multilevel finite difference method to solve the nonlinear BlackScholes PDE. This front-fixing technique enables to include the unknown optimal exercise boundary into the equation in exchange for a fixed boundary. The presence of a fixed boundary facilitates the discretization of the partial differential equation. In their method, the calculation of the option value at the time step n + 1 uses the previous option values at the time steps n and n − 1. Therefore, knowing only the initial option value given by the pay-off condition at the time step 0, they had to derive an initialization technique to obtain the value at the time step 1 before being able to run their algorithm. We will thus develop a simpler version of this scheme which will keep the same level of computational accuracy but without the need of initialization. Therefore to avoid this initialization, we will use a predictor-corrector approach. The nonlinear PDE is converted into two linearised equations. One will be the predictor obtained by using an explicit Euler scheme and the other will become the corrector after applying the Crank Nicholson scheme. The predictor will calculate an approximation of the optimal exercise price boundary and will be then corrected by the corrector which will also calculate in the meantime the option value. Our scheme does not require embedded iteration at each time step of evolution, like the projected SOR method for example. In addition to option values, the present method calculates the optimal exercise boundary as part of the solution procedure. 15 2.2 The Front-Fixing Technique We use the Black-Scholes model that we introduce in Section 1.2. For an American put with dividend yield, we have the following partial differential equation system: ∂ 2V ∂V 1 ∂V + σ 2 S 2 2 + (r − q)S − rV = 0, ∂t 2 ∂S ∂S ¯ S > S(t), V (S, T ) = max(X − S, 0), 0 ≤ t < T, S ≥ 0, (2.1) (2.2) ∂V ¯ (S(t), t) = −1, ∂S (2.3) ¯ ¯ V (S(t), t) = X − S(t) (2.4) lim V (S, t) = 0, (2.5) ¯ ) = X. S(T (2.6) S→∞ If we directly discretize the system and apply finite difference schemes, it will be solved for example using some iterative methods such as the projected SOR iteration (see [16] and [22]). Our approach is different because we want to avoid doing a lot of iterations. Therefore we will use the Landau transform after normalizing the partial differential equation system. By including the unknown optimal exercise price into the equation, this will enable us to transform the problem into a fixed-boundary problem before applying our predictor-corrector scheme. So we normalize the system by using the following change of variables: V , X ′ V = S , X ′ S = τ = (T − t) σ2 , 2 γ= 2r , σ2 ν= 2q , σ2 ¯ − 2τ /σ 2 ) S(T ′ S¯ (τ ) = X (2.7) We also introduce τexp the normalized duration of the option : τexp = T σ2 . 2 The PDE system then becomes : ′ ′ ′ 2 ∂V ′ ∂V ′2 ∂ V ′ − (γ − ν)S −S = 0, ′ + γV ′2 ∂τ ∂S ∂S 16 ′ S (τ ) > S¯′ (τ ), 0 < τ ≤ τexp , (2.8) ′ ′ ′ V (S , 0) = max(1 − S , 0), ′ S ≥ 0, (2.9) ′ ∂V ¯′ (S , τ ) = −1, ∂S ′ (2.10) ′ ′ V (S¯ (τ ), τ ) = 1 − S¯′ (τ ) (2.11) ′ ′ lim V (S , τ ) = 0, ′ (2.12) S →∞ ′ S¯ (0) = 1, (2.13) Then we drop the primes ′ and apply the following Landau transform [15]: ¯ ), τ ) (S, τ ) → (ex S(τ (2.14) S x = ln ¯ S(τ ) (2.15) This transform leads to: We also replaced the function V (S, τ ) by the unknown function P (x, τ ) = V (S(x, τ ), τ ). The system can be thus written as: ¯ ) ∂P ∂P 1 dS(τ ∂P ∂ 2 P − (γ − ν − 1) − + γP = ¯ ) dτ , ∂τ ∂x2 ∂x ∂x S(τ x > 0, 0 < τ ≤ τexp , (2.16) P (x, 0) = 0 (2.17) ∂P ¯ ), (0, τ ) = −S(τ ∂x (2.18) ¯ ) P (0, τ ) = 1 − S(τ (2.19) lim P (x, τ ) = 0, (2.20) ¯ S(0) = 1, (2.21) x→∞ The nonlinearity of the problem can be easily seen in equation (2.16) by looking at the inhomogeneous term on the right hand side of the equation. But now, thanks to 17 the front-fixing technique, we obtained a fixed-boundary partial differential equation system. We derive another boundary condition in order to construct the predictor-corrector scheme. To do so, we take a partial derivative with respect to τ on both sides of the equation (2.19) which yields to: ¯ ) ∂ S(τ ∂P (0, τ ) = − ∂τ ∂τ (2.22) Then we evaluate the PDE (2.16) at x = 0 ∂P ∂τ x=0 − ∂ 2P ∂x2 x=0 − (γ − ν − 1) ∂P ∂x x=0 + γP (0, τ ) = ∂P ∂x ¯ ) 1 dS(τ ¯ ) dτ x=0 S(τ (2.23) and we replace: ¯ ∂P (0, τ ) ∂τ ) by its value − ∂ S(τ given in the previous equation (2.22), ∂τ ∂P (0, τ ) ∂x ¯ ) given in equation (2.18) and by its value −S(τ ¯ ) given in equation (2.19) P (0, τ ) by its value 1 − S(τ Thus, we get: − ¯ ) ∂ 2P ∂ S(τ − ∂τ ∂x2 ¯ ¯ )) + γ(1 − S(τ ¯ )) = −S(τ ¯ ) 1 dS(τ ) (2.24) − (γ − ν − 1)(−S(τ ¯ ) dτ x=0 S(τ which can be simplified as : − ∂ 2P ¯ ) + γ = 0, |x=0 − (ν + 1)S(τ ∂x2 if τ >0 (2.25) Therefore this equation (2.25) gives us a relationship between the option price and the optimal exercise price at any time except at the expiry. The next step is the construction of the predictor-corrector scheme. 18 2.3 The Predictor-Corrector Scheme We now construct the predictor-corrector scheme. The predictor will calculate an initial approximation of S¯ and then the corrector, using this value, will work out ¯ The Predictor-Corrector scheme is the option price (and also the exact value of S). obtained by using a finite difference method. Thus, we now discretize the problem in time and in the underlying price. Using a finite difference method, we are only able to solve this equation on a bounded domain. τ belongs to [0, τexp ] but x verifying x ≥ 0 is not bounded. Therefore in order to truncate the domain in the x direction, we introduce xmax which is the highest value of x that will be taken into account. Let ∆τ = the time τ direction and ∆x = the mesh { τn = n∆τ, xmax M τexp N be the step size in be the step size in the x direction. We consider xm = m∆x, n = 0, 1, ..., N, m = 0, 1, ..., M }. We denote P (xm , τn ) = Pmn . To build the predictor, we will use a second-order central difference scheme and apply the explicit Euler scheme to the PDE. Indeed, we use the following difference discretization at the point (xm , τn ): ∂P ∂x ∂ 2P ∂x2 (xm ,τn ) (xm ,τn ) ∂P ∂τ = n n Pm+1 − Pm−1 + O(∆x2 ) 2∆x n n Pm+1 + Pm−1 − 2Pmn = + O(∆x2 ) 2 ∆x (xm ,τn ) = Pmn+1 − Pmn + O(∆τ ) ∆τ (2.26) (2.27) (2.28) So we apply a second-order central difference scheme to the equation (2.25) which becomes: − n+1 P1n+1 + P−1 − 2P0n+1 − (ν + 1)S¯n+1 + γ = 0 ∆x2 19 (2.29) and if we apply these discretization on the equation system {(2.17), (2.18), (2.19), (2.20), (2.21)} Pm0 = 0, ∀m = 0, 1, ..., M n+1 P1n+1 − P−1 = −S¯n+1 , 2∆x P0n+1 = 1 − S¯n+1 , n+1 = 0, PM ∀n = 0, 1, ..., N − 1 ∀n = 0, 1, ..., N − 1 (2.30) (2.31) (2.32) ∀n = 0, 1, ..., N − 1 (2.33) S¯0 = 1, (2.34) Then we replace in equation (2.29): P0n+1 by its value 1 − S¯n+1 given in equation (2.32). n+1 by its value 2∆x S¯n+1 + P1n+1 given in equation (2.31). P−1 We get: P1n+1 + 2∆x S¯n+1 + P1n+1 − 2(1 − S¯n+1 ) − − (ν + 1)S¯n+1 + γ = 0 2 ∆x (2.35) which becomes P1n+1 = α − β S¯n+1 by introducing α = 1 + γ2 ∆x2 and β = 1 + ∆x + (2.36) ν+1 ∆x2 . 2 The predictor is constructed by applying the explicit Euler scheme to the equation n+1 of the S¯n+1 . First we have (2.16) in order to calculate an approximated value S¯Approx : n+1 P2n − P0n P2n − P0n 1 S¯Approx − S¯n P1n+1 − P1n P2n − 2P1n + P0n n − −(γ −ν −1) +γP = 1 ∆τ ∆x2 2∆x 2∆x S¯n ∆τ (2.37) 20 n+1 We replace P1n+1 by its expression α −β S¯Approx obtained from equation (2.36). There- fore the predictor is given by : n+1 = S¯Approx − 1 γ−ν−1 P0n + + 2 ∆x 2∆x − 1 2 + + γ P1n 2 ∆τ ∆x κ0 + − (2.38) κ1 1 1 γ−ν−1 n P + − α+ 2 ∆x2 2∆x ∆τ κ2 − P0n 2∆x P2n ∆τ β+ P2n −P0n 1 2∆x S¯n κ3 κ4 i.e. n+1 S¯Approx = [κ0 P0n + κ1 P1n + κ2 P2n + κ3 ]κ4 (2.39) P0n+1 is also predicted during this step. We denote its approximation P0n+1 Approx . n+1 It is calculated using the equation (2.32) : P0n+1 Approx = 1 − S¯Approx . The corrector is built using the Crank-Nicholson scheme applied to (2.16). Therefore, using the same mesh, we discretize the equation at the point (xm = m∆x, τn+ 1 = 2 (n + 21 )∆τ ) using the following difference discretization: ∂P ∂x ∂ 2P ∂x2 (xm ,τn+ 1 ) n+1 n+1 n n Pm+1 − Pm−1 + Pm+1 − Pm−1 + O(∆x2 ) 4∆x (2.40) n+1 n n − 2Pmn+1 + Pm−1 + Pm+1 − 2Pmn + Pm−1 + O(∆x2 ) 2∆x2 (2.41) (xm ,τn+ 1 ) = = 2 n+1 Pm+1 2 ∂P ∂τ (xm ,τn ) = Pmn+1 − Pmn + O(∆τ 2 ) ∆τ (2.42) In fact, in comparison with the predictor where the functions and derivatives such as ∂ S¯ ∂τ are valued at the current time step, now in the corrector they are valued at time τn+ 1 . This gives the following corrector: 2 n+1 −P n Pm m ∆τ − n+1 −2P n+1 +P n+1 +P n −2P n +P n Pm+1 m m m−1 m+1 m−1 2∆x2 21 n+1 n+1 n n Pm+1 − Pm−1 + Pm+1 − Pm−1 P n+1 + Pmn +γ m = −(γ − ν − 1) 4∆x 2 (2.43) n+1 −P n+1 +P n −P n n+1 Pm+1 − S¯n S¯Approx 2 m+1 m−1 m−1 n+1 4∆x ∆τ S¯Approx + S¯n ψn This leads to: − 1 γ−ν−1 γ 1 ψn 1 n+1 Pm+1 + Pmn+1 + − + − + 2 2 2∆x 4∆x 4∆x ∆τ ∆x 2 a b n 1 γ−ν−1 γ−ν−1 ψ ψn 1 n+1 n Pm−1 = + + Pm+1 + + + − 2 2 2∆x 4∆x 4∆x 2∆x 4∆x 4∆x c d (2.44) 1 γ γ−ν−1 ψn 1 1 n − − − − P + Pn m ∆τ ∆x2 2 2∆x2 4∆x 4∆x m−1 e f Therefore we get a system of M − 1 equations: For the first equation (m = 1), we use the predicted value P0n+1 Approx of P0n+1 . aP2n+1 + bP1n+1 + cP0n+1 Approx = dP2n + eP1n + f P0n (2.45) Then the general formula gives : ∀m ∈ (2, 3, ..., M − 2), n+1 n+1 n n aPm+1 + bPmn+1 + cPm−1 = dPm+1 + ePmn + f Pm−1 (2.46) n+1 n = 0 given For the last equation (m = M − 1), we use the fact that PM = 0 and PM by equation (2.33). n+1 n+1 n n bPM −1 + cPM −2 = ePM −1 + f PM −2 This system of equation can be written under the following matrix form : 22 (2.47)   P1n+1 0   b a      .. a  c b  .     . . .    P n+1 .. .. ..    m−1      n+1 . . . . . .    Pm . . .     .. .. ..    n+1 . . .    Pm+1     .    .. c b a     n+1 PM 0 c b −1 A                      +                   Pn+1    0   P1n  e d      .. f e d   .     . . .   Pn .. .. ..    m−1     . . . . . .   Pmn  . . .     ... ... ...   n    Pm+1     .  .  f e d    .   n PM 0 f e −1 cP0n+1 Approx .. . .. . .. . .. . 0           =          Pn+1 Approx 0   n   f P0        0         .    ..          ..  + .       .    .    .       .  .   .        0  Pn B 0  Pn0 (2.48) i.e. n n APn+1 + Pn+1 Approx = BP + P0 0 (2.49) Pn+1 = A−1 (BPn + Pn0 ) − Pn+1 Approx 0 (2.50) Therefore Then using equation (2.36), we calculate the value of S¯n+1 from the newly obtained 23 P1n+1 : α − P1n+1 n+1 ¯ S = β (2.51) The next step is to correct the value of P0n+1 Approx . Thanks to equation (2.32), we have: P0n+1 = 1 − S¯n+1 (2.52) Having calculated all the option prices at the time step n + 1 and the optimal exercise price at the time step n + 1, we then go to the next time step n + 2 and repeat all this process (predictor and corrector). We now sum up the whole predictor-corrector scheme: PREDICTOR: n+1 = [κ0 P0n + κ1 P1n + κ2 P2n + κ3 ]κ4 S¯Approx (2.53) n+1 P0n+1 Approx = 1 − S¯Approx (2.54) Pn+1 = A−1 (BPn + Pn0 ) − Pn+1 Approx 0 (2.55) α − P1n+1 S¯n+1 = β (2.56) P0n+1 = 1 − S¯n+1 (2.57) CORRECTOR: 2.4 Numerical Experiments We implement the algorithm described in Section 2.3. The code can be found in Appendix A.1. In order to study the convergence and the accuracy of our scheme, we will focus on three different cases of parameters that will enable us to judge the quality 24 of the scheme. In all the simulations, we will set the highest value of x to seven i.e. xmax = 7. This value is arbitrary and seems big enough to obtain good results as we ¯ > 1000S(t). ¯ will see in the following sections. Indeed xmax = 7 implies Smax = e7 S(t) 2.4.1 Case 1: The initial asset price is equal to the strike Firstly, in order to test this code, we look at the case where the initial asset price is equal to the option strike. We calculate the value of an American put option which has the following characteristics: T = 5, S0 = 100, X = 100, σ = 0.2, r = 0.04, q = 0.02. Using a binomial tree method (BTM) with 10000 time steps, we find that the value of an American put with such parameters is 12.97257720. We can make the following observations. First, we simulate results with an increasing number of time steps. We also keep the number of steps in the S direction constant and equal to 600. According to the Figure 2.1, we see that our algorithm converges to the option value given by the binomial tree method when the number of time steps increases. Then we also generate values with our code using an increasing number of asset price steps while the number of time steps remains constant and equal to 1000. In Figure 2.2, we can observe that the option value obtained converges to the solution given by the BTM when the number of steps in the S direction increases. 2.4.2 Case 2: In the money In the second case, we apply our scheme to an American put ”in the money” which means that the initial value of the stock price is lower than the option strike. We will 25 Accuracy of the front−fixing PC according to the number of time steps. (M=1000) 24 22 Option Value 20 Front−fixing PC BTM (1000 time steps) 18 16 14 12 0 200 400 600 Number of time steps 800 1000 Figure 2.1: Case S0 = X: Convergence with the number of time steps deal with an extreme case in order to see if our scheme is stable so we take an initial asset price ten times lower than the strike. For the parameters of the option, we use the following values: T = 20, S0 = 10, X = 100, σ = 0.2, r = 0.05, q = 0.03. The binomial tree method with 10000 time steps gives an option value equal to 90. First, we use our code with an increasing number of asset price steps and a constant number of time steps equal to 1000. In that case, Figure 2.3 shows that the value given by the front-fixing predictor-corrector converges to the value given by the binomial tree method. Then we do the same experiment but this time we raise the number of time steps and keep the number of stock price steps constant and equal to 600. We 26 Accuracy of the front−fixing PC according to the number of steps in the S direction. (N=1000) 24 22 Option Value 20 Front−fixing PC BTM (1000 time steps) 18 16 14 12 0 100 200 300 400 Number of steps in the asset price direction 500 Figure 2.2: Case S0 = X: Convergence with the number of steps in the S direction conclude by observing the Figure 2.4 that the result obtained using the front-fixing PC gets closer to the value given by the binomial tree method when the number of time steps gets bigger. 2.4.3 Case 3: Out of the money We study in that case a ”out of the money” scenario which means that the initial asset price is bigger than the strike. Thus, the value of the American put should be very small. We want to see if our scheme works well for extreme case, so we choose to take an initial stock price ten times bigger than the option strike. Indeed we compute 27 Accuracy of the front−fixing PC according to the number of asset price steps. (N=1000) 99 98 97 Option Value 96 Front−fixing PC BTM (1000 time steps) 95 94 93 92 91 90 89 0 100 200 300 Number of asset price steps 400 500 Figure 2.3: In the money: Convergence with the number of steps in the S direction simulations with the following set of parameters: T = 10, S0 = 1000, X = 100, σ = 0.2, r = 0.03, q = 0.02. Using a binomial tree method with 10000 time steps, we find that the value of an American put with such characteristics is 0.0025729828. To begin with, we focus on the effect of increasing the number of asset price steps keeping the number of time steps constant and equal to 1000. Figure 2.5 indicates that the option value calculated by our scheme converges to the value obtained by the binomial tree method. Now we do the same experiment by increasing the number of time steps and letting the asset price steps be equal to 600. We observe by looking at Figure 2.6 that the option value obtained by the front-fixing PC is getting closer to 28 Accuracy of the front−fixing PC according to the number of time steps. (M=1000) 102 100 Option Value 98 Front−fixing PC BTM (1000 time steps) 96 94 92 90 0 200 400 600 Number of time steps 800 1000 Figure 2.4: In the money: Convergence with the number of time steps the BTM value as the number of time steps gets higher. Therefore, when the option is out of the money, the scheme still gives good results. 2.4.4 Order of Convergence We will now focus on the order of convergence of our scheme. To do so, we will use the following method. To begin with, we consider the order of convergence in asset price. We first compute the difference of the discrete solutions at the points of the grid (denoted by I): ǫx (∆t, ∆x) = max PiN (∆t, ∆x) − PiN (∆t, i∈I 29 ∆x ) 2 (2.58) Accuracy of the front−fixing PC according to the number of asset price steps. (N=1000) 0.035 0.03 Option Value 0.025 Front−fixing PC BTM (1000 time steps) 0.02 0.015 0.01 0.005 0 0 100 200 300 Number of asset price steps 400 500 Figure 2.5: Out of the money: Convergence with the number of steps in the S direction The time step remains constant in the difference but the step in the asset price direction is divided by 2. Then the scheme has an order of convergence in asset price αx which is defined by: ǫx (∆t, ∆x) = 2 αx , ǫx (∆t, ∆x ) 2 for ∆t, ∆x small enough (2.59) We implement this simulation using the parameters (T = 1, S0 = 100, X = 100, σ = 0.3, r = 0.04, q = 0.02) and a number of time steps equal to 1000 which corresponds to a ∆t equal to 4.5 ∗ 10−5 . By running our code, we obtain the following results which are displayed in Table 2.1. 30 Accuracy of the front−fixing PC according to the number of time steps. (M=1000) 0.06 0.05 Option Value 0.04 Front−fixing PC BTM (1000 time steps) 0.03 0.02 0.01 0 0 200 400 600 Number of time steps 800 1000 Figure 2.6: Out of the money: Convergence with the number of time steps Therefore, the order of convergence of the scheme in asset price is 1.8 which is lower than 2. In our scheme, we use both the Euler scheme for the predictor which has an order of convergence in asset price equal to 1 and the Crank-Nicholson scheme for the corrector which has an order of convergence in asset price equal to 2. We thus don’t manage to keep the high order of convergence of the Crank-Nicholson scheme because the Euler scheme introduces some error. Nevertheless the order of convergence obtained is really better than the Euler scheme’s one and is quite close to the Crank-Nicholson ’s order of convergence in asset price. Then we focus on the order of convergence in time. To do so, we apply the same 31 Table 2.1: Order of convergence in asset price Grid intervals ǫx (∆t, ∆x) Ratio αx 50 and 100 2.38380479 . 10−3 100 and 200 7.09804124 . 10−4 3.35839806 1.74777323 200 and 400 2.01704958 . 10−4 3.51902168 1.81517440 400 and 800 5.70893258 . 10−5 3.53314662 1.82095362 technique as before but instead of varying the number of steps in asset price, we only change the number of time steps. So, we begin by computing the difference of the discrete solutions at the points of the grid (denoted by I): ǫt (∆t, ∆x) = max PiN (∆t, ∆x) − PiN ( i∈I ∆t , ∆x) 2 (2.60) The asset price step remains constant in the difference but the time step is divided by 2. Then the scheme has an order of convergence in time αt which is defined by: ǫt (∆t, ∆x) = 2 αt , , ∆t) ǫt ( ∆t 2 for ∆t, ∆x small enough (2.61) We implement this simulation using the same parameters as before (T = 1, S0 = 100, X = 100, σ = 0.3, r = 0.04, q = 0.02) and a number of asset price steps equal to 600 which corresponds to a ∆x equal to 1.36 ∗ 10−4 . By running our code, we obtain the following results which are displayed in Table 2.2. Thus the order of convergence in time is 1. This is the value we expected. Indeed having used the Euler scheme and the Crank-Nicholson which have both an order of convergence in time equal to 1, the whole scheme should also have an order of convergence in time equal to 1. All these results confirm that the front-fixing predictor-corrector scheme is very 32 Table 2.2: Order of convergence in time Grid intervals ǫt (∆t, ∆x) Ratio αt 100 and 200 4.96294623 . 10−4 200 and 400 2.36516084 . 10−4 2.09835464 1.06925852 400 and 800 1.16685785 . 10−4 2.02694856 1.01930947 800 and 1600 5.82597960 . 10−5 2.00285262 1.00205626 accurate. Therefore, we now conclude this chapter by giving the main advantages and drawbacks of this technique. 2.5 Conclusion : advantages and drawbacks We now give some evaluation of the algorithm used. Due to the use of the Crank-Nicholson scheme in the corrector, the predictor-corrector scheme is very stable. Using an Euler scheme in the predictor, we just have to satisfy the following condition in the choice of the time step and the stock price step to ensure the stability: ∆t ∆x2 ≤1 We also reach a great computational efficiency. Indeed, the optimal exercise price being very difficult to calculate with a high accuracy, we use an explicit Euler scheme which reduces the number of matrices equations we have to solve. Therefore the efficiency in this algorithm comes from the fact that we have only one set of linear algebraic equations that needs to be solved at each time step. Moreover, another good point of the front-fixing predictor-corrector scheme is that it converges quickly in terms of number of stock price or time steps to the exact value of the American 33 put option. Nevertheless, as we introduce it in Section 1.1.2, the Crank-Nicholson scheme has an order of convergence of 1 in time and 2 in stock price. But here, our algorithm reaches an order of convergence of 1 in time but only 1.8 in stock price. Therefore it does not manage to keep the order of convergence of the Crank-Nicholson scheme. An explanation of this fact can be that the errors introduced in the predictor reduced the order of convergence in the stock price direction which then is not 2 but 1.8. 34 Chapter 3 A linearly implicit predictor-corrector scheme using a penalty method approach for valuing American options. 3.1 Introduction This chapter is based on the method developed by A.Q.M. Khaliq, D.A. Voss and S.H.K. Kazmi in their article A linearly implicit predictor-corrector scheme for pricing American options using a penalty method approach see [1]. As already mentioned (see Section 1.3 ), the valuation of an American option leads to a free boundary problem. Indeed, the Partial Differential Equation obtained is non linear due to the possibility of early exercise. To handle this problem, we choose to use a penalty method : we 35 add a new penalty term that will remove the free and moving boundary in order to solve the PDE on a fixed domain. Then a classical way to solve the newly obtained equation (which is still non linear) is to use Newton method ([23]). Instead of using this technique, we will treat the penalty term explicitly using a predictor-corrector scheme. 3.2 The Black & Scholes model We will study this method applied to an American put option. We consider an underlying asset with no dividend yield. As we already saw it, we have the following equations under the Black & Scholes model: ∂V ∂ 2V 1 ∂V + σ 2 S 2 2 + rS − rV = 0, ∂t 2 ∂S ∂S ¯ S > S(t), V (S, T ) = max(X − S, 0), 0 ≤ t < T, S ≥ 0, (3.1) (3.2) ∂V ¯ (S, t) = −1, ∂S (3.3) ¯ ¯ V (S(t), t) = X − S(t) (3.4) lim V (S, t) = 0, (3.5) ¯ ) = X, S(T (3.6) S→∞ V (S, t) = X − S, ¯ 0 ≤ S < S(t), (3.7) The value V of the option should also satisfy the following constraint due to the fact that early exercise is permitted: V (S, t) ≥ max(X − S, 0), 36 S ≥ 0, 0 ≤ t ≤ T. (3.8) To solve these equations, we need to determine two things : the option value but also whether or not the option should be exercised. To do so, we have to calculate ¯ the optimal exercise price S(t). In order to eliminate this step, we use the following penalty method. 3.3 The Penalty Method To eliminate the calculation of the optimal exercise price, we add a penalty term to the Black & Scholes equation (3.1). This technique was introduced by Zvan et al. in [24] and was developed by Nielsen et al. in [2]. In the latter article, it is proven that the penalty method satisfies some of the fundamental properties of the American options such as the early exercise constraint mentioned in equation (3.8). To do so, we have to choose the penalty term in a way that the option value stays above the pay-off function. Moreover, we need the penalty term to be small enough when the underlying asset price is far from the optimal exercise price for the PDE to be close to the Black & Scholes equation (3.1). A term of this form can satisfy these constraints: ǫC . V +ǫ−X+S C and ǫ are the parameters we use to calibrate the penalty term. By construction, C should be high enough and on the contrary ǫ is a small regularization parameter. Indeed Nielsen et al. proved in [2] that C and ǫ should satisfy the following conditions: 0 < ǫ ≪ 1 and C ≥ rX. Then the penalty term verifies ǫC = 0, S→∞ V + ǫ − X + S lim (3.9) Therefore, by adding the penalty term to the previous system of equations, we obtain a new non linear Partial Differential Equation defined on a fixed domain : 37 ∂V ∂V 1 2 2 ∂ 2V ǫC + rS + σ S − rV + = 0, 2 ∂t 2 ∂S ∂S V +ǫ−X +S S ∈ [0, S∞ ], t ∈ [0, T ), (3.10) V (S, T ) = max(X − S, 0), (3.11) V (0, t) = X (3.12) V (S∞ , t) = 0 (3.13) Equation (3.12) is the option value when the underlying asset price is null, this means that the put option is exercised because the holder won’t be able to get more money. Equation (3.13) denotes the option value when the underlying asset price is very high. 3.4 The linearly implicit predictor-corrector scheme We introduce the change of variables τ = T − t. The system of equations becomes: ∂V 1 ∂ 2V ǫC ∂V = σ 2 S 2 2 +rS −rV + , ∂τ 2 ∂S ∂S V +ǫ−X +S S ∈ [0, S∞ ], V (S, τ = 0) = max(X − S, 0), V (0, τ ) = −rV + ǫC V +ǫ−X +S V (S = ∞, τ ) = 0 τ ∈ (0, T ], (3.14) (3.15) (3.16) (3.17) Having V (0, τ ) = X and using equation (3.16), we deduce that C = (1 + r)X. We then discretize the problem in time and in the underlying price. Using a finite difference method, we are only able to solve this equation on a bounded domain. The 38 time t belongs to [0, T ] but the stock price verifying S ≥ 0 is not bounded. Therefore in order to truncate the domain in the S direction, we introduce Smax which is the highest stock price that will be taken into account. Let ∆τ = the time τ direction and h = the mesh { τn = n∆τ, Smax M Si = ih, T N be the step in be the step size in the S direction. We consider n = 0, 1, ..., N, i = 0, 1, ..., M }. We denote V (Si , τn ) = Vin . We use the following difference discretization at the point (Si , τn ): n V n − Vi−1 ∂V |(Si ,τn ) = i+1 + O(h2 ) ∂S 2h n n Vi+1 + Vi−1 − 2Vin ∂2V | = + O(h2 ) (Si ,τn ) 2 2 ∂S h n+1 − Vin V ∂V |(Si ,τn ) = i + O(∆τ ) ∂τ ∆τ (3.18) (3.19) (3.20) First we dicretize only in the S direction. From equation (3.14) we obtain the following equation : 1 Vi+1 + Vi−1 − 2Vi Vi+1 − Vi−1 ǫC ∂V |(Si ,τ ) = σ 2 (ih)2 + r(ih) − rV + 2 ∂τ 2 h 2h Vi + ǫ − X + ih (3.21) This leads to ∂V ǫC 1 1 ri ri |(Si ,τ ) = ( σ 2 i2 + ) Vi+1 + ( σ 2 i2 − ) Vi−1 + (−σ 2 i2 − r) Vi + ∂τ 2 2 2 2 Vi + ǫ − X + ih b a c (3.22) Therefore we can write this system of equation in the following way: ∂V |(S ,τ ) = F(τ, V) ∂τ i 39 (3.23) where   .. . 0   a b      c a   Vi−1 b     . . .  V .. .. .. F(τ, V) = AV + g(τ, V) =    i       c a b     Vi+1   . .. 0 c a A        ǫC +  Vi + ǫ − X + ih    g(τ,V)   V (3.24) A is a M × M non symmetric tridiagonal matrix and g(τ, V) is the non linear discretized penalty term. Now we discretize in time by applying the following AdamsMoulton formula [20] to the equation (3.23) : 1 1 Vn+1 − Vn = ∆τ [ Fn + Fn+1 ] 2 2 (3.25) Then by using the split form developed by Voss and Khaliq in [4] we obtain 1 1 ˜ n+1 Vn+1 − Vn = ∆τ [ Fn + ( − φ)Fn+1 ] + φ∆τ F 2 2 (3.26) ˜ n+1 is the predicted value of Fn+1 obtained by using the separate implicit where F predictor ˜ n+1 − Vn = ∆τ [( 1 + φ)Fn + ( 1 − φ)F ˜ n+1 ] V 2 2 (3.27) where φ = 0, 21 . Replacing F(τ, V) = AV + g(τ, V) by its expression in equation (3.27) and in equation (3.26), this yields to: ˜ n+1 − Vn = ∆τ [( 1 + φ)(AVn + gn ) + ( 1 − φ)(AV ˜ n+1 + g ˜ n+1 )] V 2 2 (3.28) 1 1 ˜ n+1 +˜ gn+1 ) (3.29) Vn+1 −Vn = ∆τ [ (AVn +gn )+( −φ)(AVn+1 +gn+1 )]+φ∆τ (AV 2 2 40 The non linear term g(τ, V) is treated explicitly by calculating its value at the most current available values. Therefore we obtain the following predictor-corrector scheme by introducing the matrix B = I − ∆τ ( 12 − φ)A: ˜ BV n+1 BVn+1 = [I + 1 = [I + ∆τ ( + φ)A]Vn + ∆τ gn 2 (3.30) ∆τ n ∆τ ˜ n+1 ˜ n+1 ] + φ∆τ AV A]Vn + [g + g 2 2 (3.31) To ensure the stability of the scheme, Khaliq et al. show in [1] that φ should take the values − 21 ± − 21 + √ 2 2 √ 2 . 2 Moreover various different tests also reveals that the value gives more accurate results. So we will take the value φ = − 12 + √ 2 2 for our computations. 3.5 Numerical experiments We then implement the scheme we introduced before. The code used can be found in Appendix A.2. We want to study the behaviour of our scheme when it has to face a wide range of different cases. Thus we will run simulations with different set of parameters to judge the robustness of our scheme. In all the simulations, we will set the highest value of S to five times the option strike i.e. Smax = 5X. As already mentioned, we have C = (1 + r)X and we also take ǫ = 10−3 which satisfies the condition 0 < ǫ ≪ 1. These values of Smax and ǫ are arbitrary and seems respectively big and small enough to obtain good results as we will see in the following sections. 41 3.5.1 Case 1: The initial asset price is equal to the strike To begin with, we focus on the case in which the initial asset price is equal to the option strike. Concerning the American option, we use the following values: We calculate the price of an American put having the following parameters: T = 5, S0 = 100, X = 100, σ = 0.2, r = 0.02, q = 0. Using a binomial tree method (BTM) with 10000 time steps, we find that the value of an American put with such parameters is 13.676950411. We run the following simulations. Firstly, we want to know the effect of increasing the number of asset price steps. To do so, we keep the number of time steps constant and equal to 1000. Figure 3.1 shows that the option value calculated by our scheme converges to the value obtained by the binomial tree method We then do the same experiment but we focus on the effect of the number of time steps. Therefore we increase the number of time and at the same time, we keep the number of asset price steps constant and equal to 1000. According to Figure 3.2, we observe that the result given by our algorithm gets closer to the value obtained using the BTM as the number of time steps increase. 3.5.2 Case 2: In the money In the second case, we apply our scheme to an American put ”in the money” which means that the initial value of the stock price is lower than the option strike. Therefore the price of this put should be high. We will focus on an extreme case in order to see the robustness of our scheme so we take an initial asset price ten times lower than the strike. For the parameters of the option, we use the following values: T = 20, 42 Accuracy of the linearly implicit PC scheme in the S direction. (N=1000) 15 14.9 14.8 14.7 14.6 Option Value 14.5 Linearly implicit PC BTM (1000 time steps) 14.4 14.3 14.2 14.1 14 13.9 13.8 13.7 13.6 13.5 0 100 200 300 Number of steps in the S direction 400 500 Figure 3.1: Case S0 = X: Convergence with the number of steps in the S direction S0 = 10, X = 100, σ = 0.2, r = 0.05, q = 0. The binomial tree method with 10000 time steps gives an option value equal to 90. In the first simulation, we deal with an increasing number of asset price steps and a constant number of time steps equal to 1000. In that case, Figure 3.3 shows that the value given by the linearly implicit predictor-corrector converges to the value given by the binomial tree method. In a second time, we observe the effect of raising the number of time steps and keeping in the meantime the number of stock price steps constant and equal to 1000. We conclude, by observing the Figure 3.4, that the result obtained using our algorithm gets closer to the value given by the binomial 43 Accuracy of the linearly implicit PC scheme in the time direction. (M=1000) 14.5 14.4 14.3 Option Value 14.2 Linearly implicit PC BTM (1000 time steps) 14.1 14 13.9 13.8 13.7 13.6 0 100 200 300 400 Number of steps in the time direction 500 Figure 3.2: Case S0 = X:: Convergence with the number of time steps tree method when the number of time steps gets bigger. 3.5.3 Case 3: Out of the money We study in that case a ”out of the money” scenario which means that the initial asset price is bigger than the strike. Thus, the value of the American put should be very small. We want to see if our scheme can deal with extreme cases, so we choose to take an initial stock price ten times bigger than the option strike. Indeed we compute simulations with the following set of parameters: T = 10, S0 = 1000, X = 100, σ = 0.3, r = 0.03, q = 0. Using a binomial tree method with 10000 time steps, we 44 Accuracy of the linearly implicit PC scheme in the S direction. (N=1000) 91.4 91.2 Option Value 91 Linearly implicit PC BTM (1000 time steps) 90.8 90.6 90.4 90.2 90 89.8 0 100 200 300 Number of steps in the S direction 400 500 Figure 3.3: In the money: Convergence with the number of steps in the S direction find that the value of an American put with such characteristics is 0.22788404. To begin with, we focus on the effect of increasing the number of asset price steps and keeping the number of time steps constant and equal to 1000. Figure 3.5 shows that the option value calculated by our algorithm gets closer to the value obtained by the binomial tree method as the number of asset price steps increases. Now we focus on the time steps. We proceed by increasing the number of time steps and letting the asset price steps be equal to 1000. Figure 3.6 indicates that the option value calculated by our scheme converges to the value obtained by the binomial tree method as the number of time steps gets bigger. Therefore, when the option is out 45 Accuracy of the linearly implicit PC scheme in the time direction. (M=1000) 91.6 91.4 91.2 Option Value 91 Linearly implicit PC BTM (1000 time steps) 90.8 90.6 90.4 90.2 90 89.8 0 100 200 300 400 Number of steps in the time direction 500 Figure 3.4: In the money: Convergence with the number of time steps of the money, the scheme still gives good results. 3.5.4 Order of Convergence In this subsection, we will determine numerically the order of convergence of our scheme. We proceed using the same technique as in the Section 2.4.4. We first focus on the order of convergence in asset price. We compute the difference of the discrete solutions at the points of the grid (denoted by I): ǫx (∆t, ∆x) = max PiN (∆t, ∆x) − PiN (∆t, i∈I 46 ∆x ) 2 (3.32) Accuracy of the linearly implicit PC scheme in the S direction. (N=1000) 1.2 Option Value 1 Linearly implicit PC BTM (1000 time steps) 0.8 0.6 0.4 0.2 0 100 200 300 Number of steps in the S direction 400 500 Figure 3.5: Out of the money: Convergence with the number of steps in the S direction The time step remains constant in the difference but the step in the asset price direction is divided by 2. Then the scheme has an order of convergence in asset price αx which is defined by: ǫx (∆t, ∆x) = 2 αx , ǫx (∆t, ∆x ) 2 for ∆t, ∆x small enough (3.33) We do this simulation with the following parameters:T = 1, S0 = 100, X = 100, σ = 0.3, r = 0.04. We set the number of time steps to 10000. ∆t is then equal to 10−3 . With this configuration, we obtain the following results which can be seen in Table 3.1. 47 Accuracy of the linearly implicit PC scheme in the time direction. (M=1000) 1.2 Option Value 1 Linearly implicit PC BTM (1000 time steps) 0.8 0.6 0.4 0.2 0 100 200 300 400 500 Number of steps in the time direction Figure 3.6: Out of the money: Convergence with the number of time steps We observe that the order of convergence of the scheme in asset price is numerically almost 2. This agree with the theory developed by Khaliq and al in [1]. Indeed they manage to derive that this scheme is in O(∆t2 , ∆S 2 ). Therefore its theoretical order of convergence in asset price is 2 and we found 1.98 numerically. The next step is now to determine numerically the order of convergence in time and compare to its theoretical value which is 2. To do so, we apply the same technique as before but instead of varying the number of steps in asset price, we only change the number of time steps. We start by computing the difference of the discrete solutions 48 Table 3.1: Order of convergence in asset price Grid intervals ǫx (∆t, ∆x) Ratio αx 50 and 100 6.94427651 . 10−4 100 and 200 1.75340809 . 10−4 3.96044510 1.98566258 200 and 400 4.42497769 . 10−5 3.96252413 1.98641972 400 and 800 1.11645232 . 10−5 3.96342735 1.98674853 at the points of the grid (denoted by I): ǫt (∆t, ∆x) = max PiN (∆t, ∆x) − PiN ( i∈I ∆t , ∆x) 2 (3.34) The asset price step remains constant in the difference but the time step is divided by 2. Then the scheme has an order of convergence in time αt which is defined by: ǫt (∆t, ∆x) = 2 αt , ǫt ( ∆t , ∆t) 2 for ∆t, ∆x small enough (3.35) In order to run our simulations, we take the parameters: T = 1, S0 = 100, X = 100, σ = 0.3, r = 0.04. We choose a number of asset price steps equal to 1000. Table 3.2 shows the outcome of the simulation. We deduce from it that the order of convergence in time is 1.95. This figure agrees with the theoretical order of convergence in time which is 2. This is a high value compare to the previous scheme developed in Chapter 2. 3.6 Conclusion : advantages and drawbacks The main difficulty to price American options is to determine if whether or not the option should be exercised by calculating the optimal exercise boundary. In this 49 Table 3.2: Order of convergence in time Grid intervals ǫt (∆t, ∆x) Ratio αt 100 and 200 9.67548549 . 10−4 200 and 400 2.51742464 . 10−4 3.84340620 1.94238546 400 and 800 6.49455807 . 10−5 3.87620622 1.95464533 800 and 1600 1.67291497 . 10−5 3.88218061 1.95686724 method, we don’t have to face this difficulty because the use of a penalty term enables us to get rid of the free boundary problem: the system of equation can then be solved on a fixed domain. The main strength of this scheme is that its order of convergence in time and also in stock price is equal to 2: O(∆t2 , ∆S 2 ). This result was confirmed by our numerical simulations. Therefore, having a second order of convergence in time makes this technique very efficient. It can be both used to price American calls and American puts. We just need to change the boundary conditions to respect the characteristics of the considered type. 3.7 Comparison of the two schemes We now compare the two schemes already introduced: the front-fixing predictorcorrector (Section 2.3) and the linearly implicit predictor-corrector (Section 3.4). We use the following criteria to compare the two schemes: the order of convergence, the number of steps implied and the time needed by the CPU to reach a specific accuracy. 50 Therefore, we will use the same set of parameters for both schemes: T = 25, X = 100, S0 = 100, σ = 0.4, r = 0.045, q = 0. Using a binomial tree method with 10000 time steps, we found that the value of such an American put option is 34.61660027. Firstly, setting the number of time steps constant and equal to 1000, we compute the number of asset price steps needed by each scheme to calculate the option value with a precision of 10−2 and we also measure the CPU time used to do this task. Then we do the same experiment but we inverse the role of the two kind of steps. We make the number of asset price steps equal to 1000 and we determine how many time steps are needed to reach an accuracy of 10−2 measuring also the related CPU time. Thus, we have the following results displayed by Table 3.3. Table 3.3: Number of steps and CPU time for the same accuracy (10−2 ) Front-fixing PC Simulation Linearly implicit PC Number of steps Related Number of steps Related needed to reach an CPU time needed to reach an CPU time accuracy of 10−2 accuracy of 10−2 Using 1000 486 steps in 141.3 434 steps in 90.2 time steps the S direction seconds the S direction seconds Using 1000 865 time 460.8 457 time 217.8 asset price steps steps seconds steps seconds The first comment that can be made is that the linearly implicit PC is faster than the front-fixing PC for the same accuracy. Moreover we can see that for the frontfixing PC, it requires to reach the specific accuracy much more time steps when we 51 set the number of stock price steps equal to 1000 than asset price steps when we set the number of time steps equal to 1000. Whereas concerning the linearly implicit PC, these two numbers have the same order of magnitude. This comes from the fact that the order of convergence in time of the front-fixing PC is only 1 which can be seen in Table 3.4. This table also shows that the linearly implicit PC is in O(∆t1.95 , ∆S 2 ) which is better than the front-fixing PC which is only in O(∆t, ∆S 1.8 ). Table 3.4: Order of convergence (calculated numerically) Order of convergence Front-fixing PC Linearly implicit PC in asset price 1.8 2 in time 1 1.95 Therefore for these reasons, it seems that the linearly implicit PC is more efficient than the front-fixing PC. 52 Chapter 4 Predictor-Corrector Schemes for Jump-Diffusion Processes 4.1 Introduction In this chapter, we will focus on a different topic compared to the last two previous chapters. We will study a modified Black & Scholes equation developed by Merton in [18] which includes jump-diffusion process to model the discontinuity of the underlying asset returns. Indeed bankruptcy of companies or decisions taken by central banks, governments or control agencies can have strong impacts on the financial sector. This often leads to a jump in the interest rates which is not taken into account in the traditional Black & Scholes formula. This discontinuity of financial quantities have been highlighted by Jorion [14], Bates [3], Das [5] and Johannes [13]. Starting from this new equation, we will develop predictor-corrector schemes using a Monte-Carlo simulation technique in order to compute option prices. 53 All this chapter is based on the methods introduced by Nicola Bruti-Liberati and Eckhard Platen in their article On Weak Predictor-Corrector Schemes for JumpDiffusion Processes in Finance see [21]. 4.2 The Jump-Diffusion Stochastic Differential Equation In this section, we focus on how to model the behaviour of the underlying stock price. This model will then be used in a Monte-Carlo simulation to compute the option price. 4.2.1 The General Theory As we explained in Section 4.1, we will introduce jump-diffusion processes in the traditional SDE in order to model the discontinuity of financial quantities. Therefore, we will now consider the following jump-diffusion SDE : dSt = a(t, St )dt + b(t, St )dWt + c(t, St− )dJt (4.1) where : Wt is a standard Wiener process. Jt is a compound Poisson process. Jt is defined by Nt Jt = ξi (4.2) i=1 Nt is a standard Poisson process with constant intensity λ, the compound Poisson process J generating a sequence of pairs of {(τi , ξi ), i ∈ {1, 2, ..., Nt }} jump times and marks. In other words, ξi represents the variation (jump or fall) of the stock price due to the jump at time τi . 54 4.2.2 The Merton Jump-Diffusion Model If we specify the coefficients a(t, St ), b(t, St ) and c(t, St− ) using Merton model see [18], we then get an easier SDE : dSt = St− (µdt + σdWt + dJt ) (4.3) where µ is the drift of the underlying stock and σ its volatility. This SDE has the property to be linear and thus we can explicit its solution : Nt St = S 0 e (µ− 12 σ 2 )t+σdWt (1 + ξi ) (4.4) i=1 4.3 Predictor-Corrector Schemes In this section, we will introduce two different predictor-corrector schemes for the jump-diffusion SDE (4.1) and (4.3). The first PC scheme introduced will be based on regular time discretizations which don’t take into account the jump times generated by the Poisson processes. Then, in the second scheme, we will include these jump times in the time discretizations. As we did it in the previous part, we will first study the general case and then apply it to the Merton model. 4.3.1 The Regular Predictor-Corrector Scheme The regular predictor-corrector scheme we are going to introduce is designed to use only the discretized times and do not include the different jump times due to the Poisson processes. Therefore we introduce the following discretization: we consider the equidistant times 0 = t0 < t1 < ... < tN = T with the notation tn = n∆t, 55 ∆t being the time step size: ∆t = T . N We denote the corresponding discrete time approximation of the solution S by Sn = S(tn ). 4.3.1.1 The General Theory First, we introduce the Euler explicit scheme applied to equation (4.1) Sn+1 = Sn + a(tn , Sn )∆t + b(tn , Sn )∆Wtn + c(tn , Sn )ξn ∆pn (4.5) for n ∈ {0, 1, ..., N − 1}. In equation (4.5), ∆Wtn refers to ∆Wtn = Wtn+1 − Wtn ∼ N (0, ∆t) and we have also ∆pn = Ntn+1 − Ntn ∼ P oisson(λ∆t). This explicit scheme will be used in order to build the predictor. Therefore we have the following regular predictor-corrector scheme: PREDICTOR: S¯n+1 = Sn + a(tn , Sn )∆t + b(tn , Sn )∆Wtn + c(tn , Sn )ξn ∆pn (4.6) CORRECTOR: 1 Sn+1 = Sn + [a(tn+1 , S¯n+1 ) + a(tn , Sn )]∆t + b(tn , Sn )∆Wtn + c(tn , Sn )ξn ∆pn (4.7) 2 4.3.1.2 The Merton Jump-Diffusion Model If we consider the special case given by the Merton SDE (4.3), the predictor-corrector becomes: PREDICTOR: S¯n+1 = Sn (1 + µ∆t + σ∆Wtn + ξn ∆pn ) (4.8) 1 Sn+1 = Sn (1 + σ∆Wtn + ξn ∆pn ) + µ∆t(S¯n+1 + Sn ) 2 (4.9) CORRECTOR: 56 4.3.2 The Jump-Adapted Predictor-Corrector Scheme We will now introduce another predictor-corrector scheme. Contrary to the regular predictor-corrector scheme developed in Section 4.3.1, the jump-adapted predictorcorrector scheme will, according to its name, take into account in the time discretization all the jump times. So first as in Section 4.3.1, we choose an equidistant time discretization 0 = t0 < t1 < ... < tN = T with the notation tn = n∆t, ∆t being the time step size: ∆t = T . N Then we simulate all the jump times τi generated by the Poisson process and add them in the previous time discretization. Therefore, we finally get a time discretization 0 = t0 < t1 < ... < tM = T to which belong all the jump times. The maximum time step is also guaranteed to be less than ∆t = T . N We can observe that the number of points M in the final time discretization is random. Indeed it is equal to the random number of jump times plus N + 1, the number of points in the equidistant time discretization. 4.3.2.1 The General Theory Having included all the jump times in the time discretization, we now know that the jumps only appears at discretization times. Therefore we can separate the diffusion part (between two discretization points) from the jump part (at jump times) during the scheme. JUMP: Sn+1 = Sn+1− + c(tn+1− , Sn+1− )∆Jn+1 57 (4.10) PREDICTOR: S¯n+1− = Sn + a(tn , Sn )∆t + b(tn , Sn )∆Wtn (4.11) CORRECTOR: 1 Sn+1− = Sn + [a(tn+1− , S¯n+1− ) + a(tn , Sn )]∆t + b(tn , Sn )∆Wtn 2 (4.12) In equation (4.10), ∆Jn+1 = ξn+1 if tn+1 is a jump time and ∆Jn+1 = 0 in the other case. 4.3.2.2 The Merton Jump-Diffusion Model We can adapt this scheme to the special case of the Merton SDE (4.3). Then we obtain the following jump-adapted predictor-corrector scheme. JUMP: Sn+1 = Sn+1− (1 + ∆Jn+1 ) (4.13) S¯n+1− = Sn (1 + µ∆t + σ∆Wtn ) (4.14) 1 Sn+1− = Sn (1 + σ∆Wtn ) + µ∆t(S¯n+1− + Sn ) 2 (4.15) PREDICTOR: CORRECTOR: In equation (4.13), ∆Jn+1 = ξn+1 if tn+1 is a jump time and ∆Jn+1 = 0 in the other case. 4.4 Monte-Carlo Simulation These schemes give us the behaviour of the underlying stock price. We will then use it to compute a Monte-Carlo simulation in order to calculate the price of the option 58 on this underlying stock. This type of simulation was well treated by Glasserman in [8]. Usually the pay-off of an option is a function of the final price of the stock g(ST ). In the Monte-Carlo simulation, we are looking to calculate the expectation E(g(ST )) which is equal to the expectation of the pay-off. Then the option value will simply be the discounted value of this expectation : Option price = e−r(T −t) E(g(ST )). The Monte-Carlo is based on the law of large number. If we generate a large number M of different scenarios for the stock price {ST,m }M m=1 , then by averaging all the discounted pay-off calculated using these values, we will get a good approximation of the option value. e−r(T −t) Option value at time t ≈ M M g(ST,m ) (4.16) m=1 when M is sufficiently large. 4.5 Numerical Experiments We will use the Merton jump-diffusion model to implement some numerical computations. As we already introduce it in Section 4.2.2, Merton develop the following SDE in [18] : dSt = St− (µdt + σdWt + dJt ) (4.17) where µ is the drift of the underlying stock and σ its volatility. The explicit solution 59 of this SDE is : Nt St = S 0 e (µ− 12 σ 2 )t+σdWt (1 + ξi ) (4.18) i=1 N (t) is a Poisson process with rate λ. We introduce Yi such as Yi = 1 + ξi . Therefore equation (4.18) becomes : Nt 1 St = S0 e(µ− 2 σ 2 )t+σdW Yi t (4.19) i=1 We will assume that the Yi are i.i.d and independant from N (t) and Wt . To do our numerical experiments, we study a particular case : we take the Yi to be lognormally distributed. This case is indeed very interesting because a product of lognormal random variable is also lognormal. For example, if Yi ∼ LN (a, b2 ) then n i=1 Yi ∼ LN (an, b2 n). Therefore in equation (4.19), S(t) has the following distribution: n 1 Yi ∼ S0 .LN ((µ − σ 2 )t, σ 2 t).LN (an, b2 n) 2 i=1 (4.20) 1 i.e. S(t) ∼ LN (log(S0 ) + (µ − σ 2 )t + an, σ 2 t + b2 n) 2 (4.21) 1 S0 e(µ− 2 σ 2 )t+σdW t If we name Fn,t this lognormal distribution, then we find that S(t) has the following distribution: P (S(t) ≤ x) = ∞ n=0 e−λt (λt)n Fn,t (x) n! (4.22) Merton then used the property (4.22) to find an expression of the option value in terms of infinite series, each of them being the product of a Poisson probability and the classic Black and Scholes formula. Merton also gives a relation between the risk free rate and the drift of the stock. µ = r − λ(E[Yi ] − 1) 60 (4.23) We assumed that the Yi are lognormally distributed (Yi ∼ LN (a, b2 )). Then equation (4.23) becomes: 1 2 µ = r − λ(ea+ 2 b − 1) (4.24) Therefore finally, Merton gives the expression of the price of an European option: Price of the European call = e−rT E[(S(T ) − X)+ ] = ∞ e−λt n=0 = (λt)n −rT e E[(S(T ) − X)+ |N (T ) = n] n! ∞ e n=0 ′ (4.26) ′ t)n BS(S0 , σn , T, rn , X) n! −λ t (λ (4.25) (4.27) 1 2 ′ where λ = λE[Yi ] = λea+ 2 b , σn2 = σ 2 + b2 n , T rn = r − λ(E[Yi ] − 1) + n log(E[Yi ]) T 1 2 = r − λ(ea+ 2 b − 1) + n(a+ 21 b2 ) T and BS(.) denotes the Black and Scholes European call option formula. Simulation for European options As mentioned in equation (4.27), we can find an explicit expression for the value of a European call option. Therefore we will first start our simulation with this type of option in order to check if our code is valid. The code giving the exact expression can be found in Appendix A.3.1. To implement the two different predictor-corrector schemes, we recall the main hypotheses: we consider that the jumps, the poisson process and the Brownian motion are mutually independent and that the jumps are lognormally distributed. In the following subsections, we will perform simulations with our different codes in 61 order to calculate the value of an European call. We will focus on different cases in order to judge the stability of our scheme. Firstly, we run simulations with different numbers of time steps. We observe that the number of time steps Ns has no effect on the accuracy of the scheme applied to an European call. Indeed, this option is not path dependent: the pay off is only a function of ST . The stock prices St where 0 < t < T are not involved in the calculations of the pay off. Therefore there are no differences if we simulate the asset price ST using one time step or a large number of time steps. Consequently, in the further simulations, we will set Ns = 1 i.e the basic time mesh will be 0 = t0 < t1 = tN s = T . which has the characteristics: S0 = 100, X = 100, T = 1, σ = 0.4, r = 0.05. For the jump process, we consider that it follows a lognormal distribution with mean a = 0, standard deviation b = 0.4 and that the intensity of the jumps is equal to λ = 1. With such parameters, our program which gives the option exact value using the explicit formula, prints that the call value is equal to 23.9354. Therefore, we will compare the output of the different simulations with this exact value. 4.5.1 The Regular Predictor-Corrector Scheme The code for the regular Predictor-Corrector scheme can be seen in Appendix (A.3.2). In this approach, we simulate the process at a fixed set of dates 0 = t0 < ... < tN s without explicitly distinguishing the effects of the jump and diffusion terms. 62 4.5.1.1 Case 1: The initial asset price is equal to the strike Firstly, we consider the case where the initial asset price is equal to the strike. We will run our simulation with a European call option which has the characteristics: S0 = 100, X = 100, T = 1, σ = 0.4, r = 0.05. For the jump process, we consider that it follows a lognormal distribution with mean a = 0, standard deviation b = 0.4 and that the intensity of the jumps is equal to λ = 1. With such parameters, our program which gives the option exact value using the explicit formula, prints that the call value is equal to 23.9354. Therefore, we will compare the output of the different simulations with this exact value. We begin by looking at the effect of the number of simulated paths in the Monte Carlo simulation. For that we will simulate 10000 option prices using a specific number of simulated asset price paths. Figure 4.1 shows the mean value of all the option prices simulated for a certain number of simulated paths. We can observe that the scheme is getting more accurate when the number of simulated asset prices increase. Then we look at the standard error of these 10000 simulated option prices. Figure 4.2 indicates that the standard error is an affine function of √1 Ms where Ms is the number of simulated asset prices. Doing a linear interpolation with Matlab, we obtain that the standard error follows the equation: Standard Error = 54.46 √ . Ms 54.46 √ Ms − 0.0355 ≈ Therefore the standard error is decreasing when the number of simulated paths increases. 63 Mean value of the estimates of the Regular PC 25.5 Regular PC Exact value Mean value 25 24.5 24 23.5 23 22.5 0 10 1 10 2 10 3 10 Ms 4 10 5 10 6 10 Figure 4.1: Case S0 = X: Convergence with the number of simulated paths 4.5.1.2 Case 2: In the money In the second case, we apply our scheme to an European call ”in the money” which means that the initial value of the stock price is bigger than the option strike. Therefore the price of this call should be high. We will focus on an extreme case in order to see the robustness of our scheme so we take an initial asset price ten times bigger than the strike. For the parameters of the option, we use the following values: T = 20, S0 = 1000, X = 100, σ = 0.3, r = 0.04. Concerning the jump process, we consider that it follows a lognormal distribution with mean a = 0, standard deviation b = 0.2 and that the intensity of the jumps is equal to λ = 1.2. The explicit formula gives 64 Standard error of the estimates of the Regular PC 6 y = 54.46*x − 0.0355 5 Regular PC Linear interpolation Standard error 4 3 2 1 0 0 0.02 0.04 0.06 0.08 0.1 1/sqrt(Ms) Figure 4.2: Case S0 = X: Standard error of the simulated option prices that the exact value of such option is 958.3290. We run the same simulations as in the previous section. First we focus on the effect of the number of simulated paths. To do so, we generate 10000 option values with our scheme using a specific number of simulated asset price paths. In that case, Figure 4.3 shows that the mean value of the estimates given by the regular predictor-corrector scheme converges to the exact value as the number of simulated paths increase. In a second time, we calculate the standard error of these 10000 estimates. We observe in Figure 4.4 that the standard error of the option values is an affine function of √1 Ms where Ms is the number of simulated asset prices. Doing 65 Mean value of the estimates of the Regular PC 975 970 Mean value Regular PC Exact value 965 960 955 950 0 10 1 10 2 10 3 4 10 Ms 10 5 10 6 10 Figure 4.3: In the money: Convergence with the number of simulated paths a linear interpolation with Matlab, we obtain that the standard error follows the equation: Standard Error = 82.31 √ Ms − 0.05656 ≈ 82.31 √ . Ms Therefore the standard error is decreasing as the number of simulated paths increases. 4.5.1.3 Case 3: Out of the money We study in that case a ”out of the money” scenario for an European call which means that the initial asset price is lower than the strike. Thus, the value of the European call should be very small. We want to see if our scheme can deal with extreme cases, so we choose to take an initial stock price ten times lower than the 66 Standard error of the estimates of the Regular PC 9 8 y = 82.31*x − 0.05656 7 Regular PC Linear interpolation Standard error 6 5 4 3 2 1 0 −1 0 0.02 0.04 0.06 0.08 0.1 1/sqrt(Ms) Figure 4.4: In the money: Standard error of the simulated option prices option strike. Indeed we compute simulations with the following set of parameters: T = 10, S0 = 10, X = 100, σ = 0.2, r = 0.03. Concerning the jump process, we consider that it follows a lognormal distribution with mean a = 0, standard deviation b = 0.3 and that the intensity of the jumps is equal to λ = 2. The explicit formula gives that the exact value of such option is 1.5406. To begin with, we focus on the effect of increasing the number of simulated asset price paths. We simulate 10000 option values for each specific number of simulated paths. Figure 4.5 shows that the mean of the 10000 option values calculated by our algorithm gets closer to the exact value as the number of simulated asset price paths 67 increases. Now we focus on the standard error of these 10000 option values. We can Mean value of the estimates of the Regular PC 3 Regular PC Exact value Mean value 2.5 2 1.5 1 0 10 1 10 2 3 10 4 10 Ms 10 5 10 6 10 Figure 4.5: Out of the money: Convergence with the number of simulated paths see in Figure 4.6 that the points are not as concentrated on a straight line as in the previous examples but there is still a trend that indicates that the standard error of the option values is an affine function of √1 Ms where Ms is the number of simulated asset prices. Indeed doing a linear interpolation with Matlab, we obtain that the standard error follows the equation: Standard Error = 0.2982 √ Ms − 0.002205 ≈ 0.2982 √ . Ms Thus, the standard error is still decreasing as the number of simulated paths increases. 68 Standard error of the estimates of the Regular PC 0.045 0.04 y = 0.2982*x + 0.002205 0.035 Regular PC Linear interpolation Standard error 0.03 0.025 0.02 0.015 0.01 0.005 0 0 0.02 0.04 0.06 0.08 0.1 1/sqrt(Ms) Figure 4.6: Out of the money: Standard error of the simulated option prices 4.5.2 The Jump-Adapted Predictor-Corrector Scheme We then implement the jump adapted predictor-corrector scheme. The code can be found in Appendix A.3.3. Contrary to the regular predictor-corrector, here the jump times are simulated explicitly. From one discretization time to the next, we use the predictor-corrector scheme without any jump. The jumps only occur at jump times. 69 4.5.2.1 Case 1: The initial asset price is equal to the strike Firstly, we consider the case where the initial asset price is equal to the strike. We will test our scheme using an European call having the following properties: S0 = 100, X = 100, T = 1, σ = 0.4, r = 0.05. For the jump process, we consider that it follows a lognormal distribution with mean a = 0, standard deviation b = 0.4 and that the intensity of the jumps is equal to λ = 1. With such parameters, our program which gives the option exact value using the explicit formula, prints that the call value is equal to 23.9354. Therefore, we will compare the output of the different simulations with this exact value. We first consider the impact of the number of simulated paths in the Monte Carlo simulation. We use the same method as before: we simulate 10000 option prices using a specific number of simulated asset price paths. Figure 4.7 shows the mean value of all the option prices simulated for a certain number of simulated paths. We can conclude that the option value given by the scheme converges to the exact value as the number of simulated asset prices increase. Then we look at the standard error of these 10000 simulated option prices. Figure 4.8 indicates that the standard error is an affine function of √1 Ms where Ms is the number of simulated asset prices. Doing a linear interpolation with Matlab, we obtain that the standard error follows the equation: Standard Error = 51.63 √ Ms − 0.00971 ≈ 51.63 √ . Ms Therefore the standard error is decreasing as the number of simulated paths increases. 70 Mean value of the estimates of the Jump−adapted PC 26 25.5 Jump−adapted PC Exact value Mean value 25 24.5 24 23.5 23 22.5 0 10 1 10 2 10 3 10 Ms 4 10 5 10 6 10 Figure 4.7: Case S0 = X: Convergence with the number of simulated paths 4.5.2.2 Case 2: In the money In the second case, we apply our scheme to an European call ”in the money” which means that the initial value of the stock price is bigger than the option strike. Therefore the price of this call should be high. We will focus on an extreme case in order to see the robustness of our scheme so we take an initial asset price ten times bigger than the strike. For the parameters of the option, we use the following values: T = 20, S0 = 1000, X = 100, σ = 0.3, r = 0.04. Concerning the jump process, we consider that it follows a lognormal distribution with mean a = 0, standard deviation b = 0.2 and that the intensity of the jumps is equal to λ = 1.2. The explicit formula gives 71 Standard error of the estimates of the Jump−adapted PC 6 y = 51.63*x + 0.00971 5 Jump−adapted PC Linear interpolation Standard error 4 3 2 1 0 0 0.02 0.04 0.06 1/sqrt(Ms) 0.08 0.1 Figure 4.8: Case S0 = X: Standard error of the simulated option prices that the exact value of such option is 958.3290. We use our code to do some simulations as in the previous section. First we focus on the effect of the number of simulated paths. To do so, we generate 10000 option values with our scheme using a specific number of simulated asset price paths. In that case, Figure 4.9 shows that the mean value of the estimates given by the regular predictor-corrector scheme converges to the exact value as the number of simulated paths increase. In a second time, we calculate the standard error of these 10000 estimates. We observe in Figure 4.10 that the standard error of the option values is an affine function of √1 Ms where Ms is the number of simulated asset prices. Doing 72 Mean value of the estimates of the Jump−adapted PC 985 980 Mean value 975 Jump−adapted PC Exact value 970 965 960 955 950 0 10 1 10 2 10 3 4 10 Ms 10 5 10 6 10 Figure 4.9: In the money: Convergence with the number of simulated paths a linear interpolation with Matlab, we obtain that the standard error follows the equation: Standard Error = 85.81 √ Ms − 0.118 ≈ 85.81 √ . Ms Therefore the standard error is decreasing as the number of simulated paths increases. 4.5.2.3 Case 3: Out of the money We study in that case a ”out of the money” scenario for an European call which means that the initial asset price is lower than the strike. Thus, the value of the European call should be very small. We want to see if our scheme can deal with extreme cases, so we choose to take an initial stock price ten times lower than the 73 Standard error of the estimates of the Jump−adapted PC 9 8 y = 85.81*x − 0.118 7 Jump−adapted PC Linear interpolation Standard error 6 5 4 3 2 1 0 −1 0 0.02 0.04 0.06 0.08 0.1 1/sqrt(Ms) Figure 4.10: In the money: Standard error of the simulated option prices option strike. Indeed we compute simulations with the following set of parameters: T = 10, S0 = 10, X = 100, σ = 0.2, r = 0.03. Concerning the jump process, we consider that it follows a lognormal distribution with mean a = 0, standard deviation b = 0.3 and that the intensity of the jumps is equal to λ = 2. The explicit formula gives that the exact value of such option is 1.5406. To begin with, we deal with the effect of increasing the number of simulated asset price paths. We simulate 10000 option values for each specific number of simulated paths. Figure 4.11 shows that the mean of the 10000 option values calculated by our algorithm gets closer to the exact value as the number of simulated asset price paths 74 increases. Now we focus on the standard error of these 10000 option values. We can Mean value of the estimates of the Jump−adapted PC 4 3.5 3 Jump−adapted PC Exact value Mean value 2.5 2 1.5 1 0.5 0 0 10 1 10 2 3 10 4 10 Ms 10 5 10 6 10 Figure 4.11: Out of the money: Convergence with the number of simulated paths see in Figure 4.12 that the points are not as concentrated on a straight line as in the previous examples but there is still a trend that indicates that the standard error of the option values is an affine function of √1 Ms where Ms is the number of simulated asset prices. Indeed doing a linear interpolation with Matlab, we obtain that the standard error follows the equation: Standard Error = 0.4773 √ Ms − 0.000835 ≈ 0.4773 √ . Ms Thus, the standard error is still decreasing as the number of simulated paths increases. 75 Standard error of the estimates of the Jump−adapted PC 0.12 y = 0.4773*x + 0.000835 0.1 Standard error 0.08 Jump−adapted PC Linear interpolation 0.06 0.04 0.02 0 0 0.02 0.04 0.06 0.08 0.1 1/sqrt(Ms) Figure 4.12: Out of the money: Standard error of the simulated option prices 4.6 Conclusion: advantages and drawbacks According to the results obtained with the regular and jump adapted schemes, we can say that these two methods are equivalent in term of accuracy and standard error. Both schemes gets closer to the exact value as the number of simulated paths increases and we showed numerically that the standard error is a linear function of √ Ms . Therefore it gets to zero as the number of simulated stock prices increases. We run our simulations using the Merton model to compute the price of an European call. But this method can be adapted to other options. Indeed, another strength of this method is the fact that it can be adapted to almost every type of dynamics of the 76 underlying asset. Actually, in the general theory (Equation (4.1)), we only specified that the underlying asset follows the stochastic differential equation: dSt = a(t, St )dt + b(t, St )dWt + c(t, St− )dJt (4.28) Therefore this method works whatever is the expression of the coefficients a(t, St ), b(t, St ) and c(t, St− ). This means for instance that this method can be used with a stochastic volatility model, this case being beyond the scope of this thesis. Moreover, contrary to finite difference methods such as the ones described in the previous parts, this technique being based on a Monte Carlo simulation is stable whatever are the parameters used. 77 Chapter 5 Conclusion In this thesis, we focused on three different Predictor-Corrector schemes. We showed that this type of method being made of an explicit and an implicit step is a mean to retains both the stability of the implicit methods and the computational efficiency of the explicit methods. In the first part, we introduced a predictor-corrector scheme using a front-fixing technique which, by applying a change of variable, converts the non linear PDE into two linearised equations. The finite difference schemes used are the Euler scheme for the predictor and the Crank-Nicholson scheme for the corrector. The predictor begins by calculating an approximated value of the optimal exercise price and the corrector then uses this value in order to compute both the exact value of this optimal exercise price and the option. This method is very stable and converges quickly. We numerically showed that this algorithm reaches an order of convergence of 1 in time but only 1.8 in stock price: it does not manage to keep the order of convergence of the Crank-Nicholson scheme which is 2 in stock price. 78 Secondly, we presented a predictor-corrector scheme using a penalty method to transform the initial free boundary problem into a problem that can be solved on a fixed domain. Indeed this technique enables us to get rid for the calculation of the optimal exercise price. This technique is very efficient because its order of convergence is in O(∆t2 , ∆S 2 ). Nevertheless, by using an Euler scheme in the predictor step, the stability constraint is quite restrictive. Then we compare these two finite difference methods previously introduced and it turns out that that the linearly implicit PC is more efficient than the front-fixing PC because its order of convergence is better and it takes less time to reach a specific accuracy. Thirdly, contrary to the two previous methods which were based on the Black and Scholes model, we focused in this last part on a jump diffusion model. We developed a general predictor-corrector scheme which can be applied to a lot of different stochastic differential equations. Then we presented the use of this scheme on the special case of the Merton’s model. This enables us to test our algorithm on European calls because this stochastic differential equation has an explicit solution for European options. The general method can be applied in two different ways: the regular predictor-corrector and the jump-adapted predictor-corrector. It turns out that the two schemes used give the same result: they converge as the number of simulated paths increases. Moreover the standard error is decreasing as the number of simulated stock prices gets bigger. The other strength of the scheme is the fact that it can be adapted to almost every type of dynamics of the underlying asset. Therefore it can be used to price a lot of different options. To conclude, this thesis is very rich concerning all the concepts used: finite difference schemes (Euler, Crank-Nicholson), front-fixing technique, penalty method, jump 79 diffusion method, Monte Carlo simulation, ... We tried to give an overview of the diversity of the predictor-corrector schemes which can be used as an alternative in almost every pricing problem. 80 Bibliography [1] D. A. Voss A. Q. M. Khaliq and S. H. K. Kazmi. A linearly implicit predictorcorrector scheme for pricing american options using a penalty method approach. Journal of Banking and Finance, 30:489–502, 2006. [2] A. Tveito B. Nielsen, O. Skavhaug. Penalty and front-fixing methods for the numerical solution of american option problems. Journal of Computational Finance, 2002. [3] D. Bates. Jumps and stochastic volatility: exchange rate processes implicit in deutschemark options. Review of Financial Studies, 1996. [4] A.Q.M. Khaliq D.A. Voss. A linearly implicit predictor-corrector method for reaction diffusion equations. Journal of Computational Mathematics, 1999. [5] S.R. Das. The surprise element: jumps in interest rates. Journal of Econometrics, 2002. [6] H.B. Keller E. Isaacson. Analysis Of Numerical Methods. Dover Publication, 1966. 81 [7] M. Scholes F. Black. The pricing of options and corporate liabilities. Journal of Political Economy, 1973. [8] P. Glasserman. Monte Carlo Methods in Financial Engineering. Springer, 2004. [9] D. Higham and P. Kloeden. Numerical methods for nonlinear stochastic differential equations with jumps. Numerische Matematik, 2005. [10] D. Higham and P. Kloeden. Convergence and stability of implicit methods for jump-diffusion systems. International Journal of Numerical Analysis & Modeling, 2006. [11] N. Hofmann and E. Platen. Stability of superimplicit numerical methods for stochastic differential equations. Fields Inst. Commun., 1996. [12] J.C. Hull. Options, Futures and Other Derivatives. Prentice Hall, 1997. [13] M. Johannes. The statistical and economic role of jumps in continuous time interest rate models. Journal of Finance, 2004. [14] P. Jorion. On jump processes in the foreign exchange and stock markets. Review of Financial Studies, 1988. [15] H.G. Landau. Heat conduction in a melting solid. Quaterly Applied Mathematics, 1950. [16] J.H. Mathews and K.D. Fink. Numerical Methods Using Matlab. Prentice Hall, 1999. 82 [17] R.C. Merton. Theory of rational option pricing. Bell Journal of Economics and Management Science, 1973. [18] R.C. Merton. Option pricing when underlying stock returns are discontinuous. Journal of Financial Economics, 1976. [19] W. E. Milne. Numerical integration of ordinary differential equations. American Mathematical Monthly (Mathematical Association of America), 1926. [20] F.R. Moulton. New methods in exterior ballistics. University of Chicago Press, 1926. [21] E. Platen N. Bruti-Liberati. On weak predictor-corrector schemes for jumpdiffusion processes in financ. Technical report, Quantitative Finance Research Centre, 2006. [22] S. Howison P. Wilmott, J. Dewynne. Option Pricing. Academic Press, 1992. [23] K.R. Vetzal P.A. Forsyth. Quadratic convergence for valuing american options using a penalty method. SIAM Journal on Scientific Computing, 2002. [24] K.R. Vetzal R. Zvan, P.A. Forsyth. Penalty methods for american options with stochastic volatility. Journal of Computational and Applied Mathematics, 1998. [25] L. Wu and Y.K. Kwok. A front-fixing finite difference method for the valuation of american options. Journal of Financial Engineering, 1997. [26] J. XIA. Financial mathematics 2. Lecture notes, 2010. 83 [27] J. Zhang and S.P. Zhu. A hybrid finite difference method for valuing american puts. In Proceedings of the World Congress on Engineering, 2009. 84 Appendix A Codes A.1 Code for the front-fixing Predictor-Corrector Scheme 1 function z=frontfixing(tau,S0,X,r,sigma,q,N,M) 2 %function which calculates the 3 %using the predictor-corrector finite difference scheme. 4 %The inputs are : tau=the time to maturity; S0=the initial price 5 % of the underlying asset; X=the strike price; r=the risk free 6 % rate; sigma=the volatility of the underlying asset’s returns; 7 % q0=the dividend yield; N=number of time steps; M=number of 8 % steps in the stock price. 9 10 xmax=7; 11 85 price of an american put option 12 tauexp=tau*sigmaˆ2/2; %normalized expiry of the option 13 dt=tauexp/N; %step length in the time direction 14 15 dx=xmax/M; %step length in the stock price dimension 16 %x=0+m*dx (x varies from 0 to 10) 17 18 nu=2*q/(sigmaˆ2); 19 gamma=2*r/(sigmaˆ2); 20 alpha=1+gamma/2*(dx)ˆ2; 21 beta=1+dx+(nu+1)/2*(dx)ˆ2; 22 23 S=1;%initial optimal exercise boundary 24 %Payoff condition : value of the put option at the expiry 25 P0=0; 26 P(1:M-1,1)=0; 27 28 for n=1:1:N 29 30 %--------------------------- PREDICTOR --------------------------% 31 kappa0=-1/(dx)ˆ2+(gamma-nu-1)/(2*dx); 32 kappa1=-1/dt+2/(dx)ˆ2+gamma; 33 kappa2=-1/(dx)ˆ2-(gamma-nu-1)/(2*dx); 34 kappa3=1/dt*(alpha+(P(2)-P0)/(2*dx)); 35 kappa4=dt/(beta+((P(2)-P0)/(2*dx*S))); 86 36 37 predictedS=(kappa0*P0+kappa1*P(1)+kappa2*P(2)+kappa3)*kappa4; 38 predictedP0=1-predictedS; 39 40 %--------------------------- CORRECTOR --------------------------% 41 42 s1=2/(predictedS+S); 43 s2=(predictedS-S)/dt; 44 psi=s1*s2; 45 a(2:M-1,1)=-1/(2*dxˆ2)-(gamma-nu-1)/(4*dx)-psi/(4*dx); 46 47 48 49 50 %Computation of the coefficients of the matrix (for P(m+1,n+1)) b(1:M-1,1)=1/dt+1/(dxˆ2)+gamma/2; %Computation of the coefficients of the matrix (for P(m,n+1)) c(1:M-1,1)=-1/(2*dxˆ2)+(gamma-nu-1)/(4*dx)+psi/(4*dx); %Computation of the coefficients of the matrix (for P(m-1,n+1)) 51 d(2:M-1,1)=1/(2*dxˆ2)+(gamma-nu-1)/(4*dx)+psi/(4*dx); 52 %Computation of the coefficients of the matrix (for P(m+1,n)) 53 54 e(1:M-1,1)=1/dt-1/(dxˆ2)-gamma/2; %Computation of the coefficients of the matrix (for P(m,n)) 55 f(1:M-1,1)=1/(2*dxˆ2)-(gamma-nu-1)/(4*dx)-psi/(4*dx); 56 %Computation of the coefficients of the matrix (for P(m-1,n)) 57 58 59 A=spdiags([c,b,a],[-1:1],M-1,M-1);%Computation of the % matrix A of the system 87 B=spdiags([f,e,d],[-1:1],M-1,M-1);%Computation of the 60 61 % matrix B of the system 62 63 chi1=-1/(2*dxˆ2)+(gamma-nu-1)/(4*dx)+psi/(4*dx); 64 chi2=1/(2*dxˆ2)-(gamma-nu-1)/(4*dx)-psi/(4*dx); 65 66 Vapprox(1,1)=chi1*predictedP0; 67 Vapprox(2:M-1,1)=0; 68 69 V(1,1)=chi2*P0; 70 V(2:M-1,1)=0; 71 72 K1=B*P+V; 73 K2=A\K1; 74 P=K2-Vapprox; 75 S=(alpha-P(1))/beta; 76 77 P0=1-S; 78 79 80 end 81 82 X0=log(S0/S); 83 88 84 k=floor(X0/dx); %index of X0 85 86 z=X*linearinterpolation(0+k*dx,0+(k+1)*dx,P(k),P(k+1),X0); 87 %we use the linear interpolation to get a better result 88 89 function zz=linearinterpolation(x1,x2,y1,y2,x0) 90 91 zz=(x0-x1)/(x2-x1)*y2+(x0-x2)/(x1-x2)*y1; %function doing the linear 92 %interpolation of y1 and y2 A.2 Code for the linearly implicit predictor-corrector using a penalty method 1 function z=penalty 2 3 S0=100; % Initial Stock price 4 X=100; % Strike 5 T=1; % Time to maturity 6 sigma=0.3; % vola of stock price 7 r=0.02; 8 N=1000; 9 dt=T/N; % interest rate %number of time step % time step 89 10 Smax=5*X; % maximal value of the stock price used in the 11 %algorithm 12 M=1000; 13 h=Smax/M; % step in the stock price direction 14 phi=-0.5+0.5*sqrt(2); 15 epsilon=10ˆ(-3); %parameter of the penalty term 16 C=(1+r)*X; %parameter of the penalty term % number of steps in the stock price direction %parameter of the implicit scheme 17 18 i=[1:M-1]’; 19 a=-sigmaˆ2*i.ˆ2-r; %coefficient of Vi 20 i=[1:M-2]’; 21 b(2:M-1,1)=0.5*sigmaˆ2*i.ˆ2+0.5*r*i; % coefficient of Vi+1 22 i=[2:M]’; 23 c=0.5*sigmaˆ2*i.ˆ2-0.5*r*i; %coefficient of Vi-1 24 25 i=[1:M-1]’; 26 A=spdiags([c,a,b],[-1:1],M-1,M-1);%Computation of the 27 %matrix A of the system 28 B=eye(M-1)-dt*(0.5-phi)*A; %Computation of the matrix B 29 A1=eye(M-1)+dt*(0.5+phi)*A; 30 A2=eye(M-1)+0.5*dt*A; 31 32 V0predictor(1,1)=dt*(0.5+phi)*(0.5*sigmaˆ2-0.5*r)*X; 33 V0predictor(2:M-1,1)=0; 90 34 V0corrector(1,1)=0.5*dt*(0.5*sigmaˆ2-0.5*r)*X; 35 V0corrector(2:M-1,1)=0; 36 V0predicted(1,1)=phi*dt*(0.5*sigmaˆ2-0.5*r)*X; 37 V0predicted(2:M-1,1)=0; 38 39 i=[1:M-1]’; 40 V=max(X-i*h,0); 41 predictedV(1:M-1,1)=0; 42 43 for n=1:N 44 g=(epsilon*C)./(V+epsilon-(X-i*h)); 45 predictedV=B\(A1*V+V0predictor+dt*g); 46 predictedg=(epsilon*C)./(predictedV+epsilon-(X-(i+1)*h)); 47 V=B\(A2*V+V0corrector+0.5*dt*(g+predictedg) +phi*dt*A*predictedV+V0predicted); 48 49 end 50 51 k=floor(S0/h); 52 z=linearinterpolation(k,(k+1),V(k),V(k+1),S0/h); %we use 53 %the linear interpolation to get a better result 54 55 function zz=linearinterpolation(x1,x2,y1,y2,x0) 56 zz=(x0-x1)/(x2-x1)*y2+(x0-x2)/(x1-x2)*y1; %function doing the 57 %linear interpolation of y1 and y2 91 A.3 Codes for the Predictor-Corrector Schemes for Jump-Diffusion Processes A.3.1 1 Code for the exact value of the European call option function z=exactvalue 2 3 S0=100; % Initial Stock price 4 X=100; % Strike 5 T=1; % Time to maturity 6 b=0.4; % std of lognormal jump process 7 a=0; % mean of lognormal jump process 8 lambda=1; % intensity of jumps 9 sigma=0.4; % vola of stock price 10 r=0.05; % interest rate 11 N=100; %number of term of the series 12 13 % The price is given as a series of terms, 14 % we compute the first N terms for the result 15 m=exp(a+1/2*bˆ2)-1; 16 z=0; 17 for n=0:N 18 sigma_n=sqrt(sigmaˆ2+n*bˆ2/T); 19 r_n=r-lambda*m+n*log(1+m)/T; 92 20 d1=(log(S0/X)+(r_n+0.5*sigma_nˆ2)*T)/(sigma_n*sqrt(T)); 21 d2=d1-sigma_n*sqrt(T); 22 f_n=S0*normcdf(d1,0,1)-X*exp(-r_n*T)*normcdf(d2,0,1); 23 z=z+exp(-lambda*(1+m)*T)*(lambda*(1+m)*T)ˆn*f_n/factorial(n); 24 end A.3.2 1 Code for the Regular Predictor-Corrector Scheme function z=europeanregularpc(Ns,Ms) 2 3 S0=100; % Initial Stock price 4 X=100; % Strike 5 T=1; % Time to maturity 6 b=0.4; % std of lognormal jump process 7 a=0; % mean of lognormal jump process 8 lambda=1; % intensity of jumps 9 sigma=0.4; % vola of stock price 10 r=0.05; % interest rate 11 Ns; 12 dt=T/Ns; 13 Ms; 14 mu=r-lambda*(exp(a+0.5*bˆ2)-1); %number of time steps % time step %number of simulated paths 15 93 %drift 16 sum=0;%variable which will contain the sum of all 17 %the exp(-r*tau)*max(X-ST,0) 18 for m=1:Ms 19 20 21 S=S0; for n=1:Ns %-------------PREDICTOR-------------% 22 Z=randn; 23 N=poissonprocess(lambda*dt); 24 if N==0 25 M=0; 26 else 27 Z2=randn; 28 M=a*N+b*sqrt(N)*Z2; 29 end 30 predictedS=S*(1+mu*dt+sigma*sqrt(dt)*Z)*exp(M); 31 32 %--------------CORRECTOR-------------% 33 Z=randn; 34 N=poissonprocess(lambda*dt); 35 36 if N==0 37 M=0; 38 39 else Z2=randn; 94 M=a*N+b*sqrt(N)*Z2; 40 41 end 42 S=(S+0.5*(predictedS+S)*mu*dt+S*sigma*sqrt(dt)*Z)*exp(M); 43 end 44 sum=sum+exp(-r*T)*max(S-X,0); 45 end 46 z=sum/Ms; %by dividing by M, we get an approximation of the value 47 %of the put 48 49 %Function simulating the poisson process 50 function poisson=poissonprocess(theta) 51 p=exp(-theta); 52 F=p; 53 N1=0; 54 U=rand; 55 while U>F 56 N1=N1+1; 57 p=p*theta/N1; 58 F=F+p; 59 60 end poisson=N1; 95 A.3.3 1 Code for the Jump-Adapted Predictor-Corrector Scheme function z=europeanjumpadaptedpc(Ns,Ms) 2 3 S0=100; % Initial Stock price 4 X=100; % Strike 5 T=1; % Time to maturity 6 b=0.4; % std of lognormal jump process 7 a=0; % mean of lognormal jump process 8 lambda=1; % intensity of jumps 9 sigma=0.4; % vola of stock price 10 r=0.05; % interest rate 11 Ns; 12 dt=T/Ns; 13 Ms; 14 mu=r-lambda*(exp(a+0.5*bˆ2)-1); %number of time steps % time step %number of simulated paths %drift 15 16 sum=0;%variable which will contain the sum of all 17 %the exp(-r*tau)*max(X-ST,0) 18 19 for m=1:Ms 20 %Generation of the jump times 21 S=S0; 22 tabjumptimes=[]; 96 23 jumptime=0; 24 while (jumptime==0 && jumptime[...]... of using an implicit scheme in the second part increases the stability of the scheme Thus in this thesis, we will present three different predictor- corrector schemes used in the valuation of options First, we will consider a predictor- corrector finite difference scheme using a front-fixing technique for pricing American puts Secondly, we will introduce a linearly implicit predictor- corrector scheme using. .. next step is the construction of the predictor- corrector scheme 18 2.3 The Predictor- Corrector Scheme We now construct the predictor- corrector scheme The predictor will calculate an initial approximation of S¯ and then the corrector, using this value, will work out ¯ The Predictor- Corrector scheme is the option price (and also the exact value of S) obtained by using a finite difference method Thus,... of scheme was developed: the Predictor- Corrector schemes The first significant schemes were introduced by Moulton [20] and Milne [19] Their idea was to build schemes that can retain both the stability property of the implicit schemes and the computational efficiency of the 1 explicit schemes by avoiding to solve an algebraic equation at each time step This is achieved by using the following general... initialization, we will use a predictor- corrector approach The nonlinear PDE is converted into two linearised equations One will be the predictor obtained by using an explicit Euler scheme and the other will become the corrector after applying the Crank Nicholson scheme The predictor will calculate an approximation of the optimal exercise price boundary and will be then corrected by the corrector which will... two aspects, we introduce a new kind of scheme : the Predictor- Corrector schemes They are built using both an explicit scheme in the predictor part and an implicit scheme in the corrector part Three different examples will be introduced in the next sections 1.2 The Black & Scholes model We will now develop the theory concerning European and American options This theoretical part is based on the work... the Black and Scholes equation there is no explicit solution of this equation 13 Chapter 2 A Predictor- Corrector finite difference scheme using a front-fixing technique for valuing American puts 2.1 Introduction In this chapter, we will introduce a predictor- corrector scheme based on a finite difference method using a front-fixing technique This scheme was developed by J Zhang ang S.P Zhu in [27] It... methods is what makes them very attractive despite the loss of computational efficiency 6 1.1.3 Predictor- Corrector Schemes As shown in the two previous subsections, explicit schemes have narrower regions of numerical stability compare to implicit schemes Nevertheless, despite a better stability, implicit schemes are much more demanding in terms of computational capacity because they usually require... valuing American options We will then draw a comparison between these two finite difference schemes in terms of order of convergence and computational efficiency Lastly, we will develop predictor- corrector schemes for jump-diffusion stochastic differential equations which will be used in Monte Carlo simulations We will then apply the results to the special case of the valuation of European options In each... predicted during this step We denote its approximation P0n+1 Approx n+1 It is calculated using the equation (2.32) : P0n+1 Approx = 1 − S¯Approx The corrector is built using the Crank-Nicholson scheme applied to (2.16) Therefore, using the same mesh, we discretize the equation at the point (xm = m∆x, τn+ 1 = 2 (n + 21 )∆τ ) using the following difference discretization: ∂P ∂x ∂ 2P ∂x2 (xm ,τn+ 1 ) n+1 n+1... procedure : first an explicit scheme - the so-called predictor - generates an approximated solution of the next step; then in a second part, an implicit scheme - the corrector - uses this predicted value instead of solving the algebraic equation involving the unknown value at step n + 1 in order to become also explicit Therefore both the predictor and the corrector are explicit due to the use of the predicted ... the front-fixing Predictor- Corrector Scheme 85 A.2 Code for the linearly implicit predictor- corrector using a penalty method 89 A.3 Codes for the Predictor- Corrector Schemes for Jump-Diffusion... three different Predictor- Corrector schemes used in the valuation of options First, I will consider a Predictor- Corrector finite difference scheme using a front-fixing technique for pricing American... three different predictor- corrector schemes used in the valuation of options First, we will consider a predictor- corrector finite difference scheme using a front-fixing technique for pricing American

Ngày đăng: 13/10/2015, 15:55

Tài liệu cùng người dùng

Tài liệu liên quan