The Brownian motion is certainly the most famous stochastic process (a random variable evolving in the time). It has been the first way to model a stock option price (Louis Bachelier’s thesis in 1900).
The reason why is easy to understand, a Brownian motion is graphically very similar to the historical price of a stock option.
A Brownian motion generated with R (n = 1000) |
The historical price of the index FTSE MID 250, source Yahoo Finance. |
Even though it is not any more considered as the real distribution of stock options, it is still used in finance and methods to simulate a Brownian motion are really useful. As you will see the code is strikingly easy. We have used the Donsker’s principle.
If Y(i) is a serie of k variables normally distributed, then we can create X(i) = (Y(1) + … + Y(i))sqrt(i/k). Then X(i) is a proxy of the Brownian motion.
The code (R) :
size = 1000
y = rnorm(size)
x = y
for (i in 1:size){
x[i] = 1/sqrt(size)*(sum(y[1:i])*sqrt(i))
}
plot(x, type = ‘l’, xlab = ‘Time’, ylab = ‘Profit’)