. Math 623 - Computational Finance Option pricing using Brownian bridge and Stratified samlping Pratik Mehta pbmehta@eden.rutgers.edu Masters of Science in Mathematical Finance Department of Mathematics, Rutgers University This paper describes the implementation of a C++ program to calculate the value of a european style call option, a discretely sampled arithmetic and geometric Asian option on an underlying asset, given input parameters for stock price (s=100), strike price (k=110),volatility (v=30%), interest rate (r=5%), maturity (T=1 year) usingbrownian bridge with terminal stratification, Quasi Monte Carlo simulation with low discrepancy Sobol sequences and Monte Carlo with antithetic sampling. We compare the results of all these methods. The underlying stock price is assumed to follow geometric brownian motion. The program calculates the option prices using the Monte Carlo/Quasi MC method with 10,000 simulations, 1000 strata for stratified sampling and uses the solution to the Stochastic differential equation of the stock process [3]. I. INTRODUCTION In this assignment we are pricing a European style vanilla call option and Asian option using Brownian Bridge with terminal stratification, low discrepancy Sobol sequences and comparing results with closed form solution and Monte Carlo using antithetic sampling. ds(t) = (rs(t)dt + σs(t)dw (t) (1) the solution to the above Stochastic Differential Equation is, S(T ) = S(0)e (r 1 2 σ2 )T +σw (T ) the payoff for the call option is, (2) (S(T ) k) + (3) and Asian option continuously averaged, ( + 1 T S u du K) (4) T 0 We have modified Joshi s code from chapter 7 (EquityFXMain.cpp), as was required for this assignment. II. VANILLA CALL : CLOSED FORM BLACK-SCHOLES-MERTON Here, K is the strike price and S(T ) is the terminal stock price at the payoff date. The price of the underlying at terminal time,t, is given by [4] A closed form solution for the price of a European Call and Put is given by [4] and c(t, x) = xe at N(d + (T, x)) e rt KN(d (τ, x)) (6) p(t, x) = e rt KN( d (T, x)) xe at N( d + (τ, x)). (7) Here, N is the Normal Cumulative Distribution density and the parameters, d + and d are given by d + = d + σ T = 1 [log σ xk (r T + + 12 ) ] σ2 T.(8) The function bsm in the file Equity- MainFX.cpp describes the implementation of the above closed form Black Scholes Merton model. The output is as follows, Closed form option price = 9.057 (9) III. VANILLA CALL : MONTE CARLO WITH PARK-MILLER AND ANTITHETIC SAMPLING Park-Miller is one of the many random number generators thats are used to produce random samples for Monte Carlo simulation. It is on of the Linear Congruential Generators (LCG). It has a period of, 2 31 1 (10) The general form of a LCG generator is, x i+1 = (ax i + c) mod m 1 (11) u i+1 = x i+1 /m 1 (12) S(T ) = S(0)e (r a 1 2 σ2 )T +σw (T ) (5) x = initial seed
2 a = multiplier m = modulus c = shift The following are the values for the variables m = 2 31 1, a = 16807 (13) Park Miller s uniform random number generator is implemented by Mark Joshi. We then pass these uniform values to inverse cumulative distribution to get normally distributed variables. We use antithetic sampling which is described below. The files ParkMiller.h, Park- Miller.cpp, Antithetic.h and Antithetic.cpp implements the function for the above formula as a class. In Antithetic sampling we take one sample using Park Miller and the use the negative of the same value as second sample. In this was we get the following equation S(t i+1 ) = S(t i )(1 + rτ + σ T Z i+1 ) (14) S(t i+1 ) = S(t i )(1 + rτ σ T Z i+1 ) (15) Using the above formula, we can reduce the variance of the samples.the result of Monte Carlo simulation on using the above variance reduction technique. Ŷ AV = 1 + Y i n (Σni=1(Ỹi )) (16) 2 The output for out call option is, MC vanilla call with P ark Miller = 9.20 (17) IV. QUASI MONTE CARLO WITH SOBOL SEQUENCE A major drawback of Monte Carlo integration with pseudo-random numbers is given by the fact that the error term scales only as 1/ N.This is inherent to methods based on random numbers.this leads to the idea to choose the points deterministically such that to minimize the integration error.low-discrepancy sequence is a sequence with the property that for all values of N, its subsequence x1,..., xn has a low discrepancy. Roughly speaking, the discrepancy of a sequence is low if the number of points in the sequence falling into an arbitrary set B is close to proportional to the measure of B, as would happen on average (but not for particular samples) in the case of a uniform distribution[5]. We now have the main theorem of quasi-monte Carlo integration: If f has bounded variation on [0, 1] d then for any x 1,..., x N [0, 1] d we have 1 N N n=1 f(x n ) dxf(x) V (f)d (x 1,..., x N ). (18) Sobol sequences [6] are obtained by first choosing a primitive polynomial over Z of degree g: P = x g + a 1 x g 1 +... + a g 1 x + 1, (19) where each a i is either 0 or 1. The coefficients a i are used in the recurrence relation v i = a 1 v i 1 a 2 v i 2... a g 1 v i g+1 v i g [v i g /2 (20) g ], where denotes the bitwise exclusive-or operation and each v i is a number which can be written as v i = m i /(2 i ) with 0 < m i < 2 i. Consequetive quasi-random numbers are then obtained from the relation x n+1 = x n v c, (21) where the index c is equal to the place of the rightmost zero-bit in the binary representation of n. For example n = 11 has the binary representation 1011 and the rightmost zero-bit is the third one. Therefore c = 3 in this case. For a primitive polynomial of degree g we also have to choose the first g values for the m i. The only restriction is that the m i are all odd and m i < 2 i. There is an alternative way of computing x n : x n = g 1 v 1 g 2 v 2... (22) where...g 3 g 2 g 1 is the Gray code representation of n. The basic property of the Gray code is that the representations for n and n + 1 differ in only one position. The Gray code representation can be obtained from the binary representation according to...g 3 g 2 g 1 =...b 3 b 2 b 1...b 4 b 3 b 2. (23) The above description of the sobol sequence generation was taken from [2].We have used Sobol sequence generator by S.Joe and R.Y.Kuo. We pass a file with the primitive polynomial and values of all the coefficient. This Sobol generator is capable of producing vary high dimensional sequences from 0 to 1. In our application we need only 1 dimensional sequence since we are evaluating a vanilla call option at expiry. We have implemented a function MCSobol in Sobol.cpp which uses sobol sequences to implement Quasi Monte Carlo simulation. The function sobolpoints returns an array with sobol sequences which are used for option price calculation. The price with this method is, QM C vanilla call with Sobol sequences = 9.055 (24) As we can see that the option price using sobol sequences and quasi monti carlo method is the closest to the closed formed solution. V. ASIAN CALL OPTIONS Asian options are path-dependent options, with payoffs that depend on the average price of the underlying
3 asset or the average exercise price. There are two categories or types of Asian options: average rate options (also known as average price options) and average strike options. The payoffs depend on the average price of the underlying asset over a predetermined time period. An average is less volatile than the underlying asset, therefore making Asian options less expensive than standard European options. Asian options are commonly used in currency and commodity markets. The payoff of asian option continuously averaged is, ( + 1 T S u du K) (25) T 0 The payoff of asian option using Arithmetic averaging is, ( 1 T + N S(t i ) K) (26) n=1 The Geometric average is the nth root of the product of the n sample points. The Arithmetic average is the sum of the stock values divided by the number of sampling points. Although Geometric Asian options are not commonly used in practice, they are often used as a good initial guess for the price of arithmetic Asian options. This technique is used to improve the convergence rate of the Monte Carlo model when pricing arithmetic Asian options.the above description of asian option was taken from [9] and the payoff of asian option using Geometric averaging is, ( exp( 1 T + N ln(s(t)) K) (27) n=1 The closed form C++ code for geometric averaged asian option is given in asianclosed().we have also implemented C++ pricing using Monte Carlo simulation with Park-Miller uniforms with antithetics for Arithmetic, Geometric Asian call and using Quasi Monte Carlo technique with Sobol sequences. The results are below For Geometric Asian call options Closed form geometric Asiancall = 3.80 (33) MC geometric, P ark Miller, antithetics = 3.03 (34) QMC geometric, Sobol sequence = 3.92 (35) For Geometric Asian call options MC arithmetic, P ark Miller, antithetics = 4.09(36) QM C arithmetic, Sobol sequence = 4.22(37) VI. BROWNIAN BRIDGE WITH TERMINAL STRATIFICATION The brownian bridge path generation is usually used in conjunction with variance reduction techniques like stratified sampling. Suppose W (t) is a R-valued Brownian motion and suppose we know the some values of Brownian motion, W (s 1 ) = x 1,..., W (s k ) = x k (38) we can find the value of W (s) where s in (s i, s i+1 ) conditional on the k values. This conditional distribution of W (s) is on W (s i ) = x i (39) W (s i+1 ) = x i+1 (40) Asian option with Geometric averaging also has a closed form solution which we have implemented in the C++ code. The closed form formula is given below, V = V (0)N(d 1 ) e rt KN(d 2 ) (28) (s s i )) + where ( ) 1 1 V (0) = D(t)exp (N + 1)v t + 2 12N (N + 1)(2N + 1)σ2 twhere Z is Normally distributed random variable. (29) Stratified (Regional) sampling. σ avg = D(t) = e rt S(0) (30) σ 1 N(N + 1)(2N + 1) (31) N 3/2 6 v = r d σ2 2 (32) and is given by, W (s) = W (s i ) + (s s i )W (s i+1 ) (41) (42) Stratified sampling is a divide-and-conquer strategy which partitions the state space into regions, and then a sampling plan is devised for each region. Moreover, common sense suggests that the smaller the region, the less variance that should exist in that region, and so a variance reduction may be achievable in each of the smaller regions that partition the entire space.
4 Divide U into k subdivisions, or strata, U i, where k is the total number of possible combinations described above. We have U = U 1 U 2... U k such that U i U j =, for all i j and 1i, j k. if we let N i = U i, then N = k N i. i=1 Draw a sample S i from each stratum U i. The above description of asian option was taken from [8] The algorithm for implementing Brownian bridge with Stratification is given below (43) for i = 1,..., k, (44) generate U nif[0, 1]; (45) V = (i 1 + U)/K; (46) W (t m ) = t m φ 1 (47) a = W (s i ) + (s s i )W (s i+1 ) (48) b = (s s i )) (49) W i = a + bz (50) return(w (t 1 )...W (t m )) (51) We have implemented this algorithm in the file GeometricBrownianPath.h and cpp. It is implemented as a class and uses different member function to calculate prices of Vanilla and Asian options. We have used the above algorithm in conjunction with Park-Miller uniforms. For vanilla Asian call options (52) MC V anilla, P ark Miller, stratified = 9.05 (53) For Geometric Asian call options (54) MC geometric, P ark Miller, stratified = 3.53 (55) For Arithmetic Asian call options (56) MC arithmetic, P ark Miller, stratified = 3.82 (57) VII. ANSWER TO THE QUESTIONS Brownian Bridge Suppose W (t) is a R-valued Brownian motion and suppose we know the some values of Brownian motion, W (s 1 ) = x 1,..., W (s k ) = x k (58) we can find the value of W (s) where s in (s i, s i+1 ) conditional on the k values. This conditional distribution of W (s) is on and is given by, W (s i ) = x i (59) W (s i+1 ) = x i+1 (60) W (s) = W (s i ) + (s s i )W (s i+1 ) (s s i )) + (61) (62) The brownian motions here are conditionally dependent. We begin by W (t 0 ) = 0 and we use inverse CDF to calculate W (t m ) and we use the above conditional distribution to calculate the intermediate Brownian motion. In this way we can calculate the brownian motions at all the required points. We use the algorithm described in the above section to pre-generate brownian motions at all the required intermediate points and the use them to calculate the spot process in the following way, logs(t i ) = logs(t i 1 ) + (r σ2 2 ) (t i t i 1 ) (63) +σ (W (t i) W (t i 1 )) (64) As we can see we use the regenerated pairs of brownian motions to calculate the spot process. Joshi s Method Mark Joshi uses the function GetGaussian to get a Independent gaussian variables and stores it in the array MJArray names Variates. This is in contradiction to the Brownian motions generated by Brownian Bridge where they are conditionally dependent on two neighboring brownian motion. Mark Joshi uses random numbers and implements the following equation to replace W(T), W (T ) = tn(0, 1) (65) And his code uses the above substitution of multiplying standard deviation with Normally distributed random variable. ) logs(t i ) = logs(t i 1 ) + (r σ2 (t i t i 1 ) (66) 2 ( ) +σ tn(0, 1) (67) Effect of varying strata size We have varied the number of strata, and hence the strata size and calculated the option price. We used the following number of strata, 1,50,100,500 and 1000. The results of varying the number of strata are presented in the second table below. We find that varying the size changes the answers marginally. The change is not significant. Besides the most optimal answers are found around the strata size of 100.
5 VIII. BENCHMARKING We have used many spreadsheet based model to benchmark our results. The summary go the benchmarking is given below and is also tabularised below. Numerix and the Excel spreadsheets by Haug does not provide the user the ability to produce Sobol sequences and also they use Arithmetic averaging. Hence we have benchmarked our results using the closed form and monte carlo simulations in Numerix and Haug VBA sheets.we have also used Kerry Back s spreadsheet for closed form solution to geometric averaging Asian option as well as Curran approximation for Arithmetic averaging.[7] N umerix option price vanilla = 9.08 (68) Haug Excel option price, vanilla = 9.05 (69) N umerix option price Asian = 4.66 (70) Haug Excel option price, Asian = 4.11 (71) Kerry Back s closed form = 3.81 (72) Curran approximation, arithmetic = 4.12 (73)
6 TABLE I: Vanilla and Asian Call pricing using Methods for S(0)=100 and K=110 Option Closed Form Park-Miller,Antithetic Park-Miller with Stratified Sobol sequence Numerix Haug European Vanilla Call 9.05 9.20 9.75 9.05 9.08 9.05 Asian Geometric Call 3.81 3.03 3.53 3.92 - - Asian Arithmetic Call - 4.09 3.82 4.22 4.66 4.11 TABLE II: Effect of varying Strata size S(0)=100 and K=110 Strata size Vanilla call Asian option, Geometric Asian option, Arithmetic 1 9.746 3.538 3.877 50 9.752 3.525 3.825 100 9.757 3.538 3.829 500 9.757 3.534 3.843 1000 9.761 3.539 3.826
FIG. 1: Vanilla call 7
8 FIG. 2: Curran Approximation. FIG. 3: Closed form Asian, Back s model.
FIG. 4: Haug s model 9
[1] wwwthep.physik.uni-mainz.de/ stefanw/download/lecture [2] M.S. Joshi, C++ design Patterns and Derivative Pricing, (Wiley 2008). [3] S.E. Shreve, Stochastic Calculus for Finance II Continuous Time Models, (Springer, 2004). [4] Wikipedia page for low discrepancy sequence [5] I M Sobol, USSR comp. Math [6] used Daksh Aggrawal s computer for some of the benchmarking [7] www.cecs.csulb.edu/ ebert/teaching/lectures/552/ [8] rss.acs.unt.edu/rdoc/library/fexoticoptions 10