As a kind of weak-path dependent options, barrier options are an important kind of exotic options. Because the pricing formula for pricing barrier options with discrete observations cannot avoid computing a high dimensional integral, numerical calculation is time-consuming. In the current studies, some scholars just obtained theoretical derivation, or gave some simulation calculations. Others impose underlying assets on some strong assumptions, for example, a lot of calculations are based on the Black-Scholes model. This thesis considers Merton jump diffusion model as the basic model to derive the pricing formula of discrete double barrier option; numerical calculation method is used to approximate the continuous convolution by calculating discrete convolution. Then we compare the results of theoretical calculation with simulation results by Monte Carlo method, to verify their efficiency and accuracy. By comparing the results of degeneration constant parameter model with the results of previous models we verified the calculation method is correct indirectly. Compared with the Monte Carlo simulation method, the numerical results are stable. Even if we assume the simulation results are accurate, the time consumed by the numerical method to achieve the same accuracy is much less than the Monte Carlo simulation method.
Options as a kind of important financial derivatives have been developed rapidly in recent decades. With the increase of investment demands and the progress of theoretical level, all kinds of exotic options were born. As an important path dependent exotic option, barrier option was accounted for nearly half of the share. Their research has a very important practical significance. So, new exotic option pricing problem has become an important research topic.
Black and Scholes [
Looking at the development of barrier option pricing, the barrier option pricing theory is from a study based on the continuous observation idealized model to the effective discrete observation model, and the stochastic model of the target stock is also developed from B-S model with constant parameters to model with time-dependent parameter, or constant parameter jump diffusion model, CEV model, SVJD model and so on. In order to make the scope of application more extensive, the goal of this paper is the further development for the numerical algorithm of the option pricing based on Merton jump diffusion model.
In the numerical calculation section, having a wide range of applications, Monte Carlo simulation method is certainly one of the alternative calculation methods. But it is often accompanied by a wide range of accuracy and low computational efficiency. As traditional numerical algorithm performs badly in non- smooth solutions, Golbabai, Ballestraand Ahmadian used finite element method (FEM) to improve orders of convergence in [
In the second section, we will consider knock-out call option as an example to introduce risk neutral pricing based on Merton jump diffusion model. Finally, we obtain an analytical formula of the discrete double barrier option.
In the third section, we will introduce the application of quadrature method to calculate the high dimensional integrals generation generated in the second section. We also introduce Monte Carlo simulation method to compute the result for comparison.
In the fourth section, the computational efficiency of the numerical method is compared with samples in literatures and results of simulation method.
In the conclusion, we note that this calculation method is significantly better in accuracy and efficiency, and there is a certain promotion potential.
We assume the European discrete knock-out double barrier option has the following conditions: 1) European options, i.e., option can only be exercised at maturity; 2) The time for observation has is set in advance, σ J 2 = T in the subsequent derivation, we assume observation time interval is consistent. For different observation intervals, the subsequent theory still holds; 3) All the observation time have the same U and L as barrier. When the stock price at the observation time higher than U or lower than L, the option knock-out; 4) Ignore the transaction costs and taxes. It means if the option hasn’t knocked out at observation time, at the time of maturity, the option value is max ( S T − K , 0 ) , L ≤ K ≤ U , L ≤ S 0 ≤ U ; 5) the stock price can change continuously.
Merton jump diffusion model assumes that the stock price S t is in accordance with the following stochastic differential equation,
d S t S t − = ( μ − λ E [ J t ] ) d t + σ d W t + J t d N t , (1)
where ln ( 1 + J t ) ~ N ( μ J , σ J 2 ) , Wt is standard Wiener process, N t is Poisson
process with intensity λ. We denote Y t = ln ( 1 + J t ) , γ = μ − λ E [ J t ] − 1 2 σ 2 . By
Itô Lemma, we obtain
d ln S t = γ d t + σ d W t + Y t d N t . (2)
We denote A i = { S T i ∈ [ L , U ] } , i = 1 , 2 , ⋯ , m . In risk-neutral measure, if we assume risk-free interest rate r is constant. (Thus, the drift μ is replaced by the interest rate r.) By the definition of the option its price at the beginning time is equal to
e − r T E [ max ( S T − K , 0 ) , 1 A 1 1 A 2 ⋯ 1 A m ] . (3)
We can calculate this formula to get the analytical formula of the discrete double barrier option.
Theorem 2.1. The value of option with above assume is given by the following integral
V ( S , T ) = ∫ ( x 1 , x 2 , ⋯ , x m ) ∈ D ( L e x 1 + x 2 + ⋯ + x m − K ) f ˜ ( x 1 , x 2 , ⋯ , x m ) d x m ⋯ d x 2 d x 1 , (4)
where
D = { x 1 , x 2 , ⋯ , x m | x 1 , x 1 + x 2 , ⋯ , x 1 + x 2 + ⋯ + x m − 1 ∈ [ 0 , ln U L ] , x 1 + x 2 + ⋯ + x m ∈ [ ln K L , ln U L ] } ,
f ˜ ( x 1 , x 2 , ⋯ , x m ) = h ( x 1 − ln L S 0 ) ∏ i = 2 m h ( x i ) ,
h ( x ) = ∑ i = 0 ∞ ( λ T / m ) i i ! e − λ T m ϕ ( λ T m + i μ J , σ 2 T m + i σ J 2 ) ,
ϕ ( μ , σ 2 ) is the p.d.f. of N ( μ , σ 2 ) .
Proof. Step 1. Assuming that the p.d.f. of random variable is known, we calculate the analytical result.
We denote ξ i ˜ = ln S T i − ln S T i − 1 , i = 1 , 2 , ⋯ , m , we have S T i = S 0 e ∑ j = 1 i ξ j ˜ . Let ξ 1 = Math_25#, We get S T i = L e ∑ j = 1 i ξ j . For i = 1 , 2 , ⋯ , m ,
A i = { L ≤ S T i ≤ U } = { ln L ≤ ln S T i ≤ ln U } = { 0 ≤ ∑ j = 1 i ξ j ≤ ln U L } .
From Equation (4), the value of this barrier option is,
V ( S , T ) = e − r T E [ max ( S T − K , 0 ) 1 A 1 1 A 2 ⋯ 1 A m ] = e − r T E [ max ( L e ∑ j = 1 m ξ j − K , 0 ) 1 { 0 ≤ ∑ j = 1 1 ξ j ≤ ln U L } 1 { 0 ≤ ∑ j = 1 2 ξ j ≤ ln U L } ⋯ 1 { 0 ≤ ∑ j = 1 m ξ j ≤ ln U L } ] = e − r T E [ ( L e ∑ j = 1 m ξ j − K ) 1 { 0 ≤ ∑ j = 1 1 ξ j ≤ ln U L } 1 { 0 ≤ ∑ j = 1 2 ξ j ≤ ln U L } ⋯ 1 { ln K L ≤ ∑ j = 1 m ξ j ≤ ln U L } ] = e − r T ∫ ( x 1 , x 2 , ⋯ , x m ) ∈ D ( L e x 1 + x 2 + ⋯ + x m − K ) ∏ i = 1 m h i ( x i ) d x m ⋯ d x 2 d x 1 , (5)
where
D = { x 1 , x 2 , ⋯ , x m | x 1 , x 1 + x 2 , ⋯ , x 1 + x 2 + ⋯ + x m − 1 ∈ [ 0 , ln U L ] , x 1 + x 2 + ⋯ + x m ∈ [ ln K L , ln U L ] } ,
h ( x i ) is p.d.f. of ξ i , i = 2 , 3 , ⋯ , m .
Step 2. Calculate h ( x i ) .
For i = 2 , 3 , ⋯ , m from Equation (2), We know ξ i is sum of independent
random variables including a normal random variable η ~ N ( γ T m , σ 2 T m ) and a
series of normal random variables η k ~ N ( μ J , σ J 2 ) . The length of the series is follow a Poisson distribution with intensity λ T / m . As we know while the length
is j, sum of these variables ξ i ~ N ( γ T m + j μ J , σ 2 T m + j σ J 2 ) , we get the p.d.f. of ξ i ,
h i = ∑ j = 0 ∞ ( λ T / m ) j j ! e − λ T m ϕ ( γ T m + j μ J , σ 2 T m + j σ J 2 ) , (6)
where ϕ ( μ , σ 2 ) is the p.d.f. of N ( μ , σ 2 ) . Because h i ( x ) has no relation with i, in i = 2 , 3 , ⋯ , m , we denote h i ( x ) with h ( x ) . In particular, as there is
a constant shift in ξ 1 , h 1 ( x ) = h ( x − ln L S 0 ) .
Plug h ( x ) into Equation (5), we finally obtain (4). □
Specially, if parameters is change to different constant in different monitor interval, h i ( x ) will be different while they can be calculate in the same method by different parameters.
From section 2 we know random variables ξ i , i = 1 , 2 , ⋯ , m decide the option value at t = T. As we have already known the distribution of ξ i , we can use Monte Carlo method to simulate ξ i and get some possible option value at t = T. By weak law of large numbers, the means of the Discounting of these price is converging to the option price at t = 0. However, we can’t expect it as an efficient selection.
Since we have got the analytical formula of the discrete double barrier option. We can also calculate the numerical result by calculate the analytical formula. While there is a High dimensional multiple integral, we should anticipate some tricks. As the integration has a break at the boundary of the integral area, we compare and find that Milev’s method to discrete the integration, solve directly perform a better precision than the extrapolation method, such as the Romberg extrapolation algorithm.
We use discrete method to calculate the High dimensional multiple integral by calculate an approximate discrete convolution. Monte Carlo method is also used for compared.
Firstly, we introduce the discrete method. Let d = ln U L / n , where n is an in-
teger number. We used discrete random variable ξ i , n to approximate ξ i , ξ i , n satisfy
P ( ξ i , n = k d ) = p k , n , (7)
where
p k , n = P ( ( k − 0.5 ) d ≤ ξ 2 < ( k + 0.5 ) d ) , (8)
k = ⋯ , − 1 , 0 , 1 , 2 , ⋯ , i = 2 , 3 , ⋯ , m . Specially, we discrete random variable ξ 1 , n to approximate ξ 1 , ξ 1 , n satisfy
P ( ξ i , n = k d ) = p ˜ k , n , (9)
where
p ˜ k , n = P ( ( k − 0.5 ) d ≤ ξ 1 < ( k + 0.5 ) d ) . (10)
From Equation (5), we know
V ( S , T ) = e − r T E [ max ( L e ∑ j = 1 m ξ j − K , 0 ) 1 { 0 ≤ ∑ j = 1 1 ξ j ≤ ln U L } 1 { 0 ≤ ∑ j = 1 2 ξ j ≤ ln U L } ⋯ 1 { 0 ≤ ∑ j = 1 m ξ j ≤ ln U L } ] . (11)
So we can use V ˜ n ( S , T ) to approximate V ( S , T ) , where
V ˜ n ( S , T ) = e − r T E [ max ( L e ∑ j = 1 m ξ j , n − K , 0 ) 1 { 0 ≤ ∑ j = 1 1 ξ j , n ≤ ln U L } 1 { 0 ≤ ∑ j = 1 2 ξ j , n ≤ ln U L } ⋯ 1 { 0 ≤ ∑ j = 1 m ξ j , n ≤ ln U L } ] . (12)
We denote ζ k , n = ∑ j = 1 k ξ j , n 1 { 0 < ∑ j = 1 1 ξ j , n ≤ ln U L } ⋯ 1 { 0 < ∑ j = 1 k ξ j , n ≤ ln U L } , k = 1 , 2 , ⋯ , m . From
Equation (12), we know
V ˜ n ( S , T ) = e − r T E ( max ( L e ζ m , n − K , 0 ) ) . (13)
So we can calculate V ˜ n ( S , T ) by calculate ζ m , n . From the definition of ζ 1 , n , we know
ζ 1 , n = ξ 1 , n 1 { 0 < ξ j , n ≤ ln U L } . (14)
So the value of ζ 1 , n may be 0 , d , 2 d , ⋯ , n d , and satisfy
P ( ζ 1 , n = k d ) = { p ˜ k , n , k = 1 , 2 , ⋯ , n p ^ 0 , n , k = 0 (15)
where p ^ 0 , n = 1 − ∑ k = 1 n p ˜ k , n . Notice that ζ 1 , n ≥ 0 . ζ 1 , n > 0 is equivalent to
1 { 0 < ξ 1 , n ≤ ln U L } = 1 . ζ 1 , n = 0 is equivalent to 1 { 0 < ξ 1 , n ≤ ln U L } = 0 . In fact, we have the
following lemma:
Lemma 3.1. For k = 1 , 2 , ⋯ , m , ζ k , n ≥ 0 , and
ζ k , n = 0 ⇔ 1 { 0 < ∑ j = 1 1 ξ j , n ≤ ln U L } 1 { 0 < ∑ j = 1 2 ξ j , n ≤ ln U L } ⋯ 1 { 0 < ∑ j = 1 k ξ j , n ≤ ln U L } = 0 , (16)
ζ k , n > 0 ⇔ 1 { 0 < ∑ j = 1 1 ξ j , n ≤ ln U L } 1 { 0 < ∑ j = 1 2 ξ j , n ≤ ln U L } ⋯ 1 { 0 < ∑ j = 1 k ξ j , n ≤ ln U L } = 1. (17)
If ζ k , n > 0 , then ζ k , n = ∑ j = 1 k ξ j , n .
Proof. From the definition of ζ k , n , it can be easily proved.□
For k = 2 , 3 , ⋯ , m , by lemma 3.1, we have
ζ k , n = { ∑ j = 1 k ξ j , n 1 { 0 < ∑ j = 1 k ξ j , n ≤ ln U L } , 1 { 0 < ∑ j = 1 1 ξ j , n ≤ ln U L } ⋯ 1 { 0 < ∑ j = 1 k − 1 ξ j , n ≤ ln U L } = 1 0 , 1 { 0 < ∑ j = 1 1 ξ j , n ≤ ln U L } ⋯ 1 { 0 < ∑ j = 1 k − 1 ξ j , n ≤ ln U L } = 0 = { ( ζ k − 1 , n + ξ k , n ) 1 { 0 < ∑ j = 1 k ξ j , n ≤ ln U L } , 1 { 0 < ∑ j = 1 1 ξ j , n ≤ ln U L } ⋯ 1 { 0 < ∑ j = 1 k − 1 ξ j , n ≤ ln U L } = 1 0 , 1 { 0 < ∑ j = 1 1 ξ j , n ≤ ln U L } ⋯ 1 { 0 < ∑ j = 1 k − 1 ξ j , n ≤ ln U L } = 0 . (18)
So we know 0 ≤ ζ k , n ≤ ln U L = n d . As the possible value of ζ k , n is an integer
multiple of d, the value of ζ k , n may be 0 , d , 2 d , ⋯ , n d . For i = 0 , 1 , 2 , ⋯ , n , let
q i , k , n = P ( ζ k , n = i d ) . Notice that ζ k , n > 0 ⇔ 1 { 0 < ∑ j = 1 1 ξ j , n ≤ ln U L } ⋯ 1 { 0 < ∑ j = 1 k ξ j , n ≤ ln U L } = 1 ,
from Equation (18),
q i , k , n = P ( ζ k , n = i d ) = P ( ( ζ k , n − 1 + ξ k , n ) 1 { 0 < ∑ j = 1 k ξ j , n ≤ ln U L } 1 { ζ k , n − 1 } = i d ) = ∑ j = 1 n P ( ζ k , n − 1 = j d ) P ( ξ k , n = ( i − j ) d ) = ∑ j = 1 n q j , k − 1 , n p i − j , n , (19)
q 0 , k , n = 1 − ∑ i = 1 n q i , k , n . (20)
Using Equation (19) and Equation (20) we can calculate all q i , k , n step by step. Notice that − ( n − 1 ) ≤ i − j ≤ n − 1 , we just need to precompute p k , n for k = − n + 1 , − n + 2 , ⋯ , n − 1 . Plug it into Equation (13), we have
V ˜ n ( S , T ) = e − r T E ( max ( L e ζ m , n − K , 0 ) ) =e − r T ∑ i = 1 n q i , m , n max ( L e i d − K , 0 ) . (21)
It means we could calculate V ˜ n ( S , T ) by Equation (19), Equation (20) and Equation (21) after we got p k , n and p ˜ k , n . Actually, as we don’t need q 0 , k , n to calculate V ˜ n ( S , T ) by Equation (21), there is no need to calculate Equation (20). Equation (19) is a discrete convolution we have to calculate m times.
We use the p.d.f. of ξ i To get p k , n and p ˜ k , n . Denote
g j ( x ) = ( λ T / m ) j j ! e − λ T m ϕ ( γ T m + j μ J , σ 2 T m + j σ J 2 ) ( x ) .
Because ∑ j = 0 ∞ g j ( x ) is uniform convergence, for i = 2 , 3 , ⋯ , m , by the definition of p k , n , we have
p k , n = P ( ( k − 0.5 ) d ≤ ξ 2 < ( k + 0.5 ) d ) = ∫ ( k − 0.5 ) d ( k + 0.5 ) d h ( x ) d x = ∫ ( k − 0.5 ) d ( k + 0.5 ) d ∑ j = 0 ∞ g j ( x ) d x = ∑ j = 0 ∞ ∫ ( k − 0.5 ) d ( k + 0.5 ) d g j ( x ) d x = ∑ j = 0 ∞ ( λ T / m ) j j ! e − λ T m ( Φ ( γ T m + j μ J , σ 2 T m + j σ J 2 ) ( ( k + 0.5 ) d ) − Φ ( γ T m + j μ J , σ 2 T m + j σ J 2 ) ( ( k − 0.5 ) d ) ) = ∑ j = 0 ∞ ( λ T / m ) j j ! e − λ T m ( Φ ( 0 , 1 ) ( ( k + 0.5 ) d − γ T / m − j μ J σ 2 T / m + j σ J 2 ) − Φ ( 0 , 1 ) ( ( k − 0.5 ) d − γ T / m − j μ J σ 2 T / m + j σ J 2 ) ) , (22)
where Φ ( μ , σ 2 ) is c.d.f. of N ( μ , σ 2 ) , and Φ ( 0 , 1 ) is c.d.f. of standard normal distribution. Similarly, from the p.d.f. of ξ 1 , we can get
p ˜ k , n = ∑ j = 0 ∞ ( λ T / m ) j j ! e − λ T m ( Φ ( 0 , 1 ) ( ( k + 0.5 ) d − ln ( L / S 0 ) − γ T / m − j μ J σ 2 T / m + j σ J 2 ) − Φ ( 0 , 1 ) ( ( k − 0.5 ) d − ln ( L / S 0 ) − γ T / m − j μ J σ 2 T / m + j σ J 2 ) ) . (23)
Unfortunately, we can’t calculate p k , n and p ˜ k , n directly although we have got their analytic expression. Let
p k , n , n ′ = ∑ j = 0 n ′ ( λ T / m ) j j ! e − λ T m ( Φ ( 0 , 1 ) ( ( k + 0.5 ) d − γ T / m − j μ J σ 2 T / m + j σ J 2 ) − Φ ( 0 , 1 ) ( ( k − 0.5 ) d − γ T / m − j μ J σ 2 T / m + j σ J 2 ) ) , (24)
p ˜ k , n , n ′ = ∑ j = 0 n ′ ( λ T / m ) j j ! e − λ T m ( Φ ( 0 , 1 ) ( ( k + 0.5 ) d − ln ( L / S 0 ) − γ T / m − j μ J σ 2 T / m + j σ J 2 ) − Φ ( 0 , 1 ) ( ( k − 0.5 ) d − ln ( L / S 0 ) − γ T / m − j μ J σ 2 T / m + j σ J 2 ) ) , (25)
from above, we know lim n ′ → ∞ p k , n , n ′ = p k , n , lim n ′ → ∞ p ˜ k , n , n ′ = p ˜ k , n , and p k , n , n ′ , p ˜ k , n , n ′ can
be directly calculate. By using p k , n , n ′ , p ˜ k , n , n ′ to approximate p k , n , p ˜ k , n , we finally get an approximation of V ˜ n ( S , T ) , and denote it with V ˜ n , n ′ ( S , T ) , who is a computable approximation of V ( S , T ) . If parameter is different in different monitor interval, we should just refresh g j ( x ) in each iteration to keep the algorithm run correctly.
Secondly, we introduce our Monte Carlo simulation method. The main idea Monte Carlo simulation method is generating thousands of simulations of St. Then we can use the mean price of option base on these St to estimate V ( S , T ) according to the law of large numbers. While the price of option just bases on the value of S t on monitor date, we just need to simulation these values on monitor date. From Equation (2) we can conveniently simulate ln S t then get S t indirectly. In other words, we simulate ξ i , i = 1 , 2 , ⋯ , m . As we know ξ i is sum of independent random variables including a normal random variable
η ~ N ( γ T m , σ 2 T m ) and a series of normal random variables η k ~ N ( μ J , σ J 2 ) .
The length of the series is follow a Poisson distribution with intensity λ T / m . We simulate η , and use a while loop to simulate η k , and exit the loop with probability e − λ T / m each round. As usual, estimation error of Moto Carlo simulation is Proportional to 1 / N while estimated standard deviation is σ V / N , σ V is standard deviation of V ( S , T ) , N is the number of simulation path. Because we can know the option value if S t touch the barrier in early monitor date, so in simulation, we can also stop a simulation round in advance. However, the probability to stop is different for different parameters. So we use no-stop method to simulate and record the time in worst situation.
We use some cases to compare the estimation accuracy of two methods introduced above.
Firstly, we use parameters that Poisson intensity λ = 0 in case 1, case 2 and case 3 to compare the result with other literatures. It shows when λ tends to 0, results tends to the results base on B-S model. Using the estimate value and estimate standard error calculate by Monte Carlo Simulation as the real value, the t statistic of estimate error of numerical algorithm with n = 1000 is around 1. It means its estimate error is at the same level with the estimate standard error of Monte Carlo Simulation, i.e., the accuracy of numerical algorithm with n = 1000 is like the accuracy of Monte Carlo Simulation with simulation times = 100000. However, CPU time cost by the latter is thousands times of the former. To estimate the numerical error on the option price, we will compare the numerical result with the accurate result with n = 10000 and calculate the error.
Case 1: Prices of discrete double knock-out call option in 5 monitoring dates. The current price of the underlying asset is S 0 , the strike price is 100, the volatility is 20% per annum, the call option has six months remaining to maturity, the risk-free rate is 10% per annum (compounded continuously), the lower barrier is placed at 95, and the upper barrier is imposed at 110. Numerical method estimate numerical error (written in brackets). Monte Carlo Simulation also estimate standard error (written in brackets), Milev’s result is copy from his paper. Because they are generated by different computers, so CPU time in present methods and CPU time in Milev’s paper cannot be compared.
Case 2: Prices of discrete double knock-out call option monitored daily (125 times) for different values of the underlying asset S 0 and parameters K = 100 , σ = 0.25 , T = 0.5 , r = 0.05 , L = 95 , U = 110 , see
S0 | Numerical algorithm n = 200 | Numerical algorithm n = 1000 | Monte Carlo simulation Times = 106 | Milev’s Num. algorithm n = 1000 | Milev’s M.C. simulation times = 107 |
---|---|---|---|---|---|
95 | 0.172487 (0.00197) | 0.174095 (0.00036) | - | 0.174498 | - |
95.0001 | 0.172489 (0.00197) | 0.174096 (0.00036) | 0.174872 (0.00103) | 0.174499 | 0.17486 (0.00064) |
100 | 0.229986 (0.00247) | 0.232003 (0.00045) | 0.231914 (0.00118) | 0.232508 | 0.23263 (0.00036) |
109.9999 | 0.165450 (0.00191) | 0.167005 (0.00035) | 0.167474 (0.00101) | 0.167394 | 0.16732 (0.00062) |
110 | 0.165449 (0.00191) | 0.167004 (0.00035) | - | 0.167393 | - |
CPU | 27 ms | 78 ms | 418 s | 39 s | hundred sec. |
S0 | Numerical algorithm n = 200 | Numerical algorithm n = 1000 | Monte Carlo simulation Times = 106 | Milev’s Num. algorithm n = 1000 | Milev’s M.C. simulation times = 107 |
---|---|---|---|---|---|
95 | 0.002536 (1.619e−4) | 0.002668 (3.020e−5) | - | 0.0027003 | - |
95.0001 | 0.002536 (1.619e−4) | 0.002668 (3.020e−5) | 0.002737 (0.00012) | 0.0027005 | 0.002673 (0.00007) |
100 | 0.010918 (4.915e−4) | 0.011319 (9.055e−5) | 0.011167 (0.00025) | 0.011414 | 0.011394 (0.00015) |
109.9999 | 0.002427 (1.550e−4) | 0.002553 (2.890e−5) | 0.002697 (0.00012) | 0.00258415 | 0.002664 (0.00007) |
110 | 0.002427 (1.550e−4) | 0.002553 (2.890e−5) | - | 0.0025843 | - |
CPU | 408 ms | 2025 ms | 7836 s | 39 s | hundreds sec. |
Case 3: Prices of discrete double knock-out call option monitored weekly (25 times) for different values of the underlying asset S 0 and parameters K = 100 , σ = 0.25 , T = 0.5 , r = 0.05 , L = 95 , U = 110 , see
Secondly, we compare the efficiency of numerical method and simulation method in case 4 and case 5. Poisson intensity λ > 0 , i.e., jump is considered. We set λ = 5 , μ J = 0.05 , σ J 2 = 0.05 , other parameters except U, L and S 0 are the same with case 2. We could learn that while U and L are quite close, option is Worthless. So standard deviation of option value at maturity is so large relative to the option value at now. Both of the two methods have a large relative error. While U and L are not quite close, although calculate result’s accuracy is a bit worse than Simulation result’s, it is still much better in efficiency as it cost much less CPU time.
Case 4: U and L are close so that the option has a high probability to knock-out, see
S0 | Numerical algorithm n = 200 | Numerical algorithm n = 1000 | Monte Carlo simulation Times = 106 | Milev’s Num. algorithm n = 1000 | Milev’s M.C. simulation times = 107 |
---|---|---|---|---|---|
95 | 0.018879 (6.359e−4) | 0.019397 (1.178e−4) | - | 0.019528 | - |
95.0001 | 0.018879 (6.359e−4) | 0.019397 (1.178e−4) | 0.018508 (0.00033) | 0.019528 | 0.019515 (0.00021) |
100 | 0.041751 (1.182e−3) | 0.042716 (2.184e−4) | 0.043521 (0.00051) | 0.042957 | 0.042736 (0.00031) |
109.9999 | 0.018067 (6.086e−4) | 0.018563 (1.128e−4) | 0.018853 (0.00033) | 0.018688 | 0.018676 (0.00019) |
110 | 0.018067 (6.086e−4) | 0.018563 (1.128e−4) | - | 0.018688 | - |
CPU | 87 ms | 407 ms | 1643 s | 9 s | hundred sec. |
S0 | Numerical algorithm n = 200 | Numerical algorithm n = 1000 | Numerical algorithm n = 2000 | Monte Carlo Simulation Times = 106 |
---|---|---|---|---|
95.1 | 1.08754e−6 (1.131e−7) | 1.17917e−6 (2.149e−8) | 1.19107e−6 (9.588e−9) | 0(−) |
96 | 1.77950e−6 (1.769e−7) | 1.922880e−6 (3.353e−8) | 1.94145e−6 (1.496e−8) | 3.33815e−6 (2.41542e−6) |
100 | 3.93182e−6 (3.626e−7) | 4.22590e−6 (6.850e−8) | 4.22590e−6 (6.850e−8) | 9.290592e−7 (8.43256e−7) |
104 | 2.18637e−6 (2.171e−7) | 2.36232e−6 (4.114e−8) | 2.38510e−6 (1.835e−8) | 0(−) |
104.9 | 1.44651e−6 (1.499e−7) | 1.56798e−6 (2.847e−8) | 1.58375e−6 (1.269e−8) | 4.638891e−6 (3.373127e−6) |
CPU | 397 ms | 2072 ms | 7114 ms | 7984 s |
Case 5: U and L are not quite close so that the option has a lower probability to knock-out, see
Finally, if we predict parameters are not constants, we could set different value of parameters in different monitor interval (interval between two adjacent monitor date). In case 6, parameters are the same with case 5, except σ and r . σ will increase from 0.1 to 0.25 in linearly step in monitor intervals. r will decrease from 0.05 to 0.02 in linearly step in monitor intervals. In this case, as we should refresh g j ( x ) in each iteration, while n = 2000, CPU time mainly cost by generate p k , n , n ′ whose time cost is O ( m n n ′ ) . From the result we could learn that while n = 2000, the accuracy of numerical algorithm is a bit worse than Monte Carlo simulation. But while it just cost 1.4% CPU time of simulation method, as CPU time cost is proportional to n which means calculate result’s convergence rate is faster than simulation while n = 2000. It still has a much better efficiency.
Case 6: see
S0 | Numerical algorithm n = 200 | Numerical algorithm n = 1000 | Numerical algorithm n = 2000 | Monte Carlo Simulation Times = 106 |
---|---|---|---|---|
80.1 | 0.255603 (0.01708) | 0.269405 (0.00328) | 0.271218 (0.00146) | 0.275555 (0.00224) |
81 | 0.461714 (0.01941) | 0.477431 (0.00369) | 0.479476 (0.00165) | 0.484087 (0.00296) |
100 | 5.042788 (0.01736) | 5.028913 (0.00349) | 5.026992 (0.00156) | 5.020779 (0.00857) |
139 | 0.951235 (0.06628) | 1.005237 (0.01228) | 1.012056 (0.00546) | 1.022783 (0.00458) |
139.9 | 0.660173 (0.05794) | 0.707246 (0.01087) | 0.713274 (0.00484) | 0.716428 (0.00386) |
CPU | 376 ms | 1891 ms | 6496 ms | 7378 s |
S0 | Numerical algorithm n = 200 | Numerical algorithm n = 1000 | Numerical algorithm n = 2000 | Monte Carlo Simulation Times = 106 |
---|---|---|---|---|
80.1 | 0.109371 (0.01748) | 0.123303 (0.00355) | 0.125255 (0.00160) | 0.124955 (0.00146) |
81 | 0.329240 (0.01826) | 0.343901 (0.00360) | 0.345886 (0.00161) | 0.346085 (0.00240) |
100 | 5.349461 (0.04085) | 5.315899 (0.00730) | 5.311831 (0.00323) | 5.296170 (0.00847) |
139 | 1.613736 (0.17757) | 1.758731 (0.03257) | 1.776845 (0.01447) | 1.789104 (0.00615) |
139.9 | 0.777533 (0.16118) | 0.907367 (0.03135) | 0.924693 (0.01402) | 0.948932 (0.00457) |
CPU | 9942 ms | 49 s | 102 s | 7414 s |
While mainstream methods to price European discrete knock-out double barrier option are not better than Monte Carlo simulation method in estimated error order, the advantage of the presented numerical algorithm is that it costs less compute time than simulation method. It is benefit from its direct calculate thought. Because of the main idea of this method that is not complicated, it can be extended to the case stock price obeys Merton jump diffusion model and work well on it. However, as this numerical method is based on the analytical solution, it is applicable only to those stochastic models for which the transition probability can be computed in closed-form.
Li, M.J. (2017) Numerical Methods for Discrete Double Barrier Option Pricing Based on Merton Jump Diffusion Model. Open Journal of Statistics, 7, 446-458. https://doi.org/10.4236/ojs.2017.73032