• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering.
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Coming soon.
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models.

Geometric Brownian motion simulation and extracting mu and sigma


This is my usual way of creating stock simulations
View attachment 33716

But then what confuses me is that when I run simulations using python using the code below

View attachment 33717
mu and sigma extracted for the simple returns are almost always closer to the values I have set.
mu = 0.001
sigma = 0.05

(to give you a brief explanation of the code - I have simulated 100000 paths with 10 steps
for each simulation I store in list - mean of log returns, simple returns and sample standard deviation of log returns, simple returns.
Then after 100000 simulations, I calculated their average)

What am I getting wrong here?
Thank you in advance for your thoughts!
Last edited:


now I think mu should be log return + 1/2 * log sample standard deviation squared
sigma should be the log sample standard deviation