Generate stock option prices – How to simulate a Brownian motion
[This article was first published on ProbaPerception, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
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).Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
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’)
To leave a comment for the author, please follow the link and comment on their blog: ProbaPerception.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.