Sunteți pe pagina 1din 11

Comparison of Monte Carlo to Black & Scholes for European Call Options

5/10/2012 Cedric LaMarca

ABSTRACT The Monte Carlo Method is a technique of statistical sampling employed to approximate solutions to quantitative problems. Essentially, the Monte Carlo method solves a problem by simulating the physical process and then calculating the average result of the process. This very general approach is valid in areas such as physics, chemistry, reliability and finance. Although the Monte Carlo method provides flexibility and can handle multiple sources of uncertainty, the use of this technique is not always appropriate. In general, the simulation is preferable to other evaluation techniques only when there are several state variables. In the world of finance, the Monte Carlo Method is used for calculating the various sources of uncertainty that effect the value of the portfolio or investment in question, and from that calculate a representative value given the values of the underlying inputs. In terms of financial theory, this is an application of risk neutral evaluation. The most common usage of the Monte Carlo Method is in determining the future price of stocks and bonds. This allows a firm to place put and call options on a portfolio with reliability. These calls are useful as a firm can make large sums of money if they are correct. If they are wrong they lose significantly, thus the need for an accurate probability model. For this write up I will be comparing the accuracy of European call option pricing for Monte Carlo versus Black-Scholes Model. A European call option is a contract between two parties, a holder and a writer, whereby, for a premium paid to the writer, the holder can purchase the stock at a future date T (the expiration date) at a price K (the strike price) agreed upon in the contract. If the buyer elects to exercise the option on the expiration date, the writer is obligated to sell the stock to the buyer at the price K, the strike price. Thus, the option has a payoff function of: f(S) = max(S K, 0) where S = S(T) is the price of the underlying stock at the time T when the option expires. This equation produces one option value at the expiration time and thus cannot be held accurate. As such the Monte Carlo simulation will be run for n=10000 times alongside the Black-Scholes Model to determine the error rate. Equation(1.1) is also known as the value of the option at time T since if S(T) > K, the holder can purchase, at price K, the stock with market value S(T) and thereby make a profit equal to S(T) K. However, if S(T) < K, the holder will simply let the option expire as there should be no reason to purchase stock at a price that exceeds the current market value.

SECTION 1 1.1 Introduction and History The Monte Carlo (MC) method is a general name of any method that uses a sequence of random numbers to perform different types of calculations. The method can be used to approximate solutions of problems in different areas. It was developed during the twenties century, but there are some older experiments from the second half of the nineteenth century which showed that different kind of deterministic problems can be solved by using random processes. A systematic development of the method started about 1944 and was named during the World War II, by a team working on the development of the atomic bomb. The method was named after the city of Monte Carlo, a center of gambling. Because of the similarity between the games of chance played in the casinos, and the random numbers in a statistical simulation. The method was in the beginning used in order to solve nuclear physics problems, but soon it became a well-known method that could be applied in different fields. 1.2 Why a Simulation? The objective of a simulation is to understand how something works in the reality. Simulations are experiments that are performed on designed models instead of real objects. In order to understand how something works and to prove the correctness, a model and its assumptions must be tested by repetitions of the behavior. Repetitions can be achieved by performing several physical experiments. But, in many cases the restrictions of both time and money makes it impossible to perform the experiments in the reality. A simulation is then a very competitive alternative to an experiment, since it is more cost and time effective in most cases. In some cases it might even be impossible to perform real experiments. It is possible to simulate how fast a mortal disease could be spread across the world and how large casualties that could be expected. Yet, no one would perform a real experimental study on a human population. A simulation is also a good tool to produce new artificial data from data collected by measurements, this technique is known as resampling. 1.3 The Method MC methods can handle two types of problems. They can either be probabilistic or deterministic. The difference between the two types is whether or not they are dealing with objects, operations or processes that involve randomness. A deterministic simulation deals with a process where all of the object and operations are non-random. In a probabilistic simulation, on the other hand, there are random objects or processes that cannot be predicted. In the real world there are a lot of randomness, therefore it is hard to find a real situation that can be described as purely deterministic. For instance, a studied steel girder could have a higher or lower strength, length, height, etc. compared to the values which the manufacturer gives. Probabilistic simulations can deal with these variations. There is only one requirement for probabilistic problems solved by MC simulations. They must have solutions that can be described by probability density functions or probability mass functions. (Hammersley and Handscomb 1979, Marek et al. 2003)

A mathematical model that describes the problem is created, and the input and output variables are defined. The input values are randomly picked out of their probability distribution functions, which are used to describe the input variables. One set of input values will result in one set of output values, which will be stored in one way or another. The law of large numbers is one of the fundamental things which the MC method is based on. A short version of the law of large numbers is given by Marek et al. (2003) The empirical distribution of a random variable converges to the theoretical one if the number of samples increases to infinity. The consequence of this law is that mathematical models are looped as many times as necessary in order to get the desired accuracy of the results. SECTION 2 2.1 Theory The problem is to determine the fair price of the option at the time that the holder and writer enter into the contract. In order to estimate the price call of a call option using a Monte Carlo method, a collection of M stock at expiration is generated using the difference equation:

where . Option pricing requires that the average value of the payouts be equal to the compounded total return obtained by investing the option premium C(s), at rate r over the life of option dictated by:

(Equation 2.2) If equation 2.2 is solved for C(s), the equation for the Monte Carlo Simulation can be determined.

(Equation 2.3) From this, it is seen that the Monte Carlo estimate C(s) is essentially the present average value payouts determined using compound interest. 2.2 Determining Monte Carlo Equation (2.3) is used to compute a Monte Carlo estimate of the value of a five month call option for the following values: r = 0.03, =

, N = 252, and K = US$100. N is the number of trading periods before

the call expires. The Matlab work for this can be found in appendix A.

2.3 Black-Scholes model Black-Scholes model is the traditional method of calculating European calls. As such the equation requires no extra work to be used in this problem. The formulas used are as follows:

(Equation 2.4) Where

(Equation 2.5) These formulas already exist in matlab and are activated by the call function blsprice(). SECTION 3 3.1 Comparison
Simulated Stock Paths 300

200

Price
100 0 0

50

150 200 250 Period Comparison of Monte Carlo to Black & Scholes

100

300

0.5

Difference

-0.5

-1

100

200

300

400 500 600 700 Number of Replications

800

900

1000

Figure 3.1

Simulated Stock Paths 300

200

Price
100 0 0

50

150 200 250 Period Comparison of Monte Carlo to Black & Scholes

100

300

Difference

-1

500

1000

1500

2000 2500 3000 3500 Number of Replications

4000

4500

5000

Figure 3.2
Simulated Stock Paths 400 300

Price

200 100 0

50

150 200 250 Period Comparison of Monte Carlo to Black & Scholes

100

300

Difference

0.5 0 -0.5 -1

1000

2000

3000

4000 5000 6000 7000 Number of Replications

8000

9000 10000

Figure 3.3 USD Black-Schole put Black-Schole call Black-Schole price Monte Carlo put Monte Carlo call Monte Carlo price 1000 runs 1.0173e-006 100 0.7598 100.3134 99.6821 0.7553 5000 runs 1.0173e-006 100 0.7598 100.3163 99.6865 0.7777 10000 runs 1.0173e-006 100 0.7598 100.3162 99.6831 0.7862

As can be seen the Monte Carlo simulation gives a more representative sample of the price. This means that while the Black-Schole method gives a single consistent price, it does not adjust for past performance or possible future. As such it should be taken as a guideline instead of as what should be done. However Monte Carlo Simulation requires a sufficiently large sample size, and thus is inaccurate if this sample size is not met. CONCLUSION Monte Carlo Simulation gives the stock price as a sample average, thus according to the principle of statistics, its standard deviation is the standard deviation of the sample divided by the square root of the sample size. So, the error reduces at the rate of 1 over the square root of the sample size. To sum up, the accuracy of Monte Carlo Simulation is increasing by increasing the size of the sample. As such it is found to be superior to the Black & Scholes method of pricing at a sample size of 2000. This is acceptable as the most commonly used number of path lines is 10000. Thus there is little reason not to use the Monte Carlo Simulation method.

References Boyle, P., 1979, Options: a Monte Carlo Approach," Journal of Financial Economics, 4, 323-338. Cox, J. C., S. A. Ross, and M. Rubinstein, 1979, \Option Pricing: A Simplified Approach," Journal of Financial Economics, 7(3), 229-263. Fishman, G., 1996, Monte Carlo : Concepts, Algorithms, and Applications. Springer-Verlag, New York. Duffie, D., 1992, Dynamic Asset Pricing Theory. Princeton University Press

APPENDIX A MATLAB CODE mcvsbsrun1.m


clc clear all clf %n=>1000 or it will crash! % r = rate % s0 = Initial Price K % mu = Drift % Sig = Standard deviation % T = number of trading periods for expiration date N % n = Number of paths r=.03; T=252; strike=100; maturity=1; s0=100; mu=r/T; sig=10*r/sqrt(T); n=1000 [simprice]=sim_single_2(s0,mu,sig,T,n); [BSCall, BSPut] = blsprice(s0,mu,sig,T,n) run putoptionmontecarlosim [mc_price,bs_price,diff_price]=deriv_pricing(s0,mu,sig,T,n,strike,maturity); figure subplot(2,1,1), plot(simprice'); xlabel('Period'); ylabel('Price'); title('Simulated Stock Paths'); %Plot difference subplot(2,1,2), plot(diff_price); xlabel('Number of Replications'); ylabel('Difference'); title('Comparison of Monte Carlo to Black & Scholes'); clear all n=5000 T=252; strike=100; maturity=1; s0=100; mu=.03/T; sig=.3/sqrt(T); [simprice]=sim_single_2(s0,mu,sig,T,n); [BSCall, BSPut] = blsprice(s0,mu,sig,T,n) run putoptionmontecarlosim [mc_price,bs_price,diff_price]=deriv_pricing(s0,mu,sig,T,n,strike,maturity); figure subplot(2,1,1), plot(simprice'); xlabel('Period'); ylabel('Price'); title('Simulated Stock Paths'); %Plot difference subplot(2,1,2), plot(diff_price); xlabel('Number of Replications'); ylabel('Difference');

title('Comparison of Monte Carlo to Black & Scholes'); clear all n=10000 T=252; strike=100; maturity=1; s0=100; mu=.03/T; sig=.3/sqrt(T); [simprice]=sim_single_2(s0,mu,sig,T,n); [BSCall, BSPut] = blsprice(s0,mu,sig,T,n) run putoptionmontecarlosim [mc_price,bs_price,diff_price]=deriv_pricing(s0,mu,sig,T,n,strike,maturity); figure subplot(2,1,1), plot(simprice'); xlabel('Period'); ylabel('Price'); title('Simulated Stock Paths'); %Plot difference subplot(2,1,2), plot(diff_price); xlabel('Number of Replications'); ylabel('Difference'); title('Comparison of Monte Carlo to Black & Scholes');

Functions
function [simprice]=sim_single_2(s0,mu,sig,T,n) % Simulate stock paths following Brownian motion processes % s0 = Initial Price % mu = Drift % Sig = Standard deviation % T = number of trading periods % n = Number of paths % Generates n x T matrix with normally distributed shocks e = randn(n,n); simprice=zeros(n,T); simprice(:,1)=s0.*exp((mu-0.5*(sig^2)) + sig*e(:,1)); for i=2:T simprice(:,i)=simprice(:,i-1).*exp((mu-0.5*(sig^2)) + sig*e(:,i)); end; function [mc_price,bs_price,diff_price]=deriv_pricing(s0,mu,sig,T,n,strike,maturity); %Simulate stock paths [simprice]=sim_single_2(s0,mu,sig,T,n); %Find derivative payoff mc_price_N=(max(simprice(:,maturity)-strike,0))/exp(mu*maturity); %PV of Call mc_price=mean(mc_price_N) % Simulated prices % Black & Scholes call price bs_price=blsprice(s0,strike,mu*T,maturity/T,sig*sqrt(T)) %Difference between B&S diff_price=zeros(size(simprice,1),1);

i=1:size(simprice,1)'; diff_price=cumsum(mc_price_N-bs_price)./i'; end

putoptionmontecarlosim.m
SP =100; % Price of stock today (S0) X = 100; % Strike at expiration ER = .15/252; % expected return (MU) VOL = 1.5/sqrt(252); % expected volitility of stock (SD) dt = 1/365; % time steps steps = 252; % days to expiration T = dt*steps; % years to expiration r=.15; %risk free rate of stock found at http://www.treasury.gov/resourcecenter/data-chart-center/interest-rates/pages/textview.aspx?data=yield sims = 10000; % Number of simulated paths % Generate potential future asset paths S = AssetPaths1(SP,ER,VOL,dt,steps,sims); % calculate the payoff for each path for a Put PutPayoffT = max(X-mean(S),0); % calculate the payoff for each path for a Call CallPayoffT = max(mean(S)-X,0); % money back MCput = SP+mean(PutPayoffT)*exp(-r*T) MCcall = SP-mean(CallPayoffT)*exp(-r*T)

S-ar putea să vă placă și