Brownian Motion and Geometric Growth
Univariate Stochastic Processes
Under market efficiency, financial prices should exhibit a random walk.
Eugene Fama is the big guy behind market efficiency. He was interviewed by the Financial Times (Open question: read the article) and shared the Nobel prize with Robert Shiller (Rational Exuberance). Fama came up with the efficient market hypothesis, which tells us that if people are seeking profits and you start trading that, putting millions in, the price will go up and it will become expensive. Any time there’s insight or information, that gets priced. A random walk means that it’s unpredictable what the next result will be. As soon as information comes in, everybody starts trading, the price goes up, maybe negative information the next day, and then price goes down. We will say that these returns are not correlated. How are market participants able to process and price information? Some people say that efficient markets are not possible for behavioral reasons. In our class, we will keep it on the iid assumption to keep it simple.
Week 4
Lecture Notes
Univariate Stochastic Processes (cont.)
Under the efficient market hypothesis, every new piece of information changes the price, which creates a random walk. This means you only care about the previous point because the price should encode all of the information up to that point, which is why it’s a Markov process. If we think about price jumps:
So the movement/change in that price only depends on the return. Our argument is that these returns are independent. We have this iid assumption so that returns are uncorrelated.
Markov property (weak):
The next flip of a coin is independent of the previous flip.
On average these jumps will be positives, so we have a certain level of growth or expected return . Our volatility is how much it goes differently from expected. We need to pay attention to our time period . basically says that if we do these stochastic processes a million times, on average it goes to a certain point. Variance asks how much the process will be dispersed. Time asks where we’re modeling. Dispersion is generally larger with increased time, which is why options pricing makes options more expensive over long periods of time.
We will look at three different distributions:
Brownian Motion
: This is a natural phenomenon. The best biologist is a chemist, the best chemist is a physicist, the best physicist is a mathematician. Also known as Weiner process.
It might go up and down, but it only goes one way.
This has three different properties.
We are reviewing probability and statistics, since we are looking at quantitative analysis.
We have a process that starts at time 0, with value starting at 0.
The very important property is that the process has a Gaussian distribution:
Its variance depends on time (think quadratic variation).
Let’s think about simulations. We’re sampling from the normal distribution.
In Excel, we have the function =NORM.INV(RAND(), 0, 1) which generates the next number.
What is the value of now that we have observed i.e. ? The increments are independent and also follow a normal distribution:
In order to generate , I need to think about the value of .
where is a constant and is a random variable.
We can generate this by simulation to find the properties of the distribution. Eventually you get
We can generate this into the distribution if we assume returns are iid as variance of summations:
There should be an Excel spreadsheet related to Brownian motion:
FE_535_Session_02_games_SBM_sim
If we look at the expectation of the values here, this is a simulation of the terminal point of the Brownian path. We created this over smaller increments. I want to validate that this is in fact normal . We have a “large” simulation so according to the LLN the average should converge to 0. This is a validation of the two moments if we see −0.006788 and 0.985446m, then it’s close enough. If we look in aggregate from a distributional point of view, how do these prices look?
In R, you use the functions rnorm for a randomly generated normal distribution, and dnorm for a true normal distribution. If we lay them on each other, we can see that they are very similar for larger numbers of rnorm.
This gives a good tool to understand pricing.
General Brownian Motion
When we talk about normal distribution, there’s only single probabilities within a standard. There are infinite tables that depend on and . When we model this, we add two degrees of freedom. One is how the process is changing over time. I start at point , but what it actually implies is that we have some expected increase like in real stocks. That number depends on the . We could imagine a casino where is negative. The other question is how volatile this is, which is . This is the generalized process:
where
If we simulate this process over multiple periods instead of just using , we get this.
The problem with the previous BM is that prices could take negative values. But actually stock prices cannot go negative. If you have a limited liability company, the equity value cannot go negative. Whoever owns those stocks is not responsible for e.g. the debts of the company.
You can also think about it as a percentage change, which cannot go to 0 just by multiplication.
Whatever assets you invested in, I lose only what I put in. I don’t care that much if the company goes bankrupt, the only thing that happens is that I lose the money I invested.
If we take this process with the random variable in the same way as with regular Brownian motion, we can see
Why am I wasting your time with this? If we go back to the initial notation, this 0.01 is the , is 100, and our is . For calculating , we cancel out all the deltas in between and get . By construction , so this is .
Now we have a solution for the process.
If I know what is going to be, that matrix, then I know what is going to be. This is also related to geometric Brownian motion. If we’re able to create , we’re done.
Lab
We have our sheet X_general_bm.
The variance of half year through is 50%.
The simulated value basically tells you, you can go on and pick up the time of 50 which is half year from now, then take the average of that, take the variance of that, that will give you a proxy for the moments you actually want to calculate. Then you need to do this for six months then 1 year.
We have reference points of True Value that simulated value should resemble.
Let’s take the solution that
T always refers to years for simplicity.
We can all relate to annual numbers.
If T was equal to days, then the parameters should represent that.
We need to find the expectation of
is a constant
How do we get there analytically? By simulation we got a hint that it is the correct answer.
Wikipedia tells us the expected value of the log normal distribution, which our returns are.
If we plug it in, we get
then when we simplify after ignoring volatility we get
You can repeat this process for variance, where pulling out the constant has to square it
plug in wikipedia log normal variance for returns
Geometric Brownian Motion
The most common process to simulate stock prices is the Geometric Brownian Motion (GBM).
By design we know by the motion itself that
In the other example we aggregated. How do you aggregate continuously? The integral, which is
This is an ordinary differential equation (only one dimension, time)
We have a constant process which evolves with respect to time.
The distribution would be skewed upwards because this cannot take negative values.
We need to use something called Ito’s Lemma, which gives us the nice solution that
which is equation 4.6 from the textbook.
If you take the out with nothing stochastic, you end up with the ODE solution.
The point of the solution is to simulate the price at time , aka returns over time .
The log-normal distribution tells us that if a random variable is log-normally distributed, then the natural log of the random variable has the normal distribution.
Excel formula for variance of geometric Brownian motion: =C8^2*EXP(2*C4*C3)*(EXP(C5^2*C3)-1).
Proposed simulation code:
=B2*EXP(NORMINV(RAND(), (Inputs!$C$4-Inputs!$C$5/2)*Inputs!$C$3, Inputs!$C$5*SQRT(Inputs!$C$3)))