I am running Monte Carlo simulations to estimate future share prices of some stocks.

For stock A, I need 1 share price exactly one year from now.

For stock B, I need daily prices for each trading day for the coming year.

Both models are simulated, lets say, 1000 times.

As dt is smaller for B, this increases the accurateness on the share price on the date one year from now. But how to prove this? And, what is the relation between the number of simulations and the time step size?

Edit: I am using 3 year lognormal daily returns to estimate volatility; drift is based on a zero-coupon bond with the term equal to the term of the option/share (in this case 1 year). Both remain constant during the simulation year. Random numbers are generated using Mersenne Twister algorithm.

Stock price at time t is being calculated by:

For A, dt = 1 $$ S_{t}= S_0 \cdot exp((r-\frac{1}{2}\sigma^2)dt+\sigma\sqrt{dt}Z) $$

For B, I am using Euler's discretization, dt = 1/255 $$ S_{t+dt}= S_t \cdot exp((r-\frac{1}{2}\sigma^2)dt+\sigma\sqrt{dt}Z) $$

  • 1
    $\begingroup$ I am not sure I understand. What you're trying to prove sounds wrong. $\endgroup$ – pincopallino Jan 4 '16 at 18:19
  • $\begingroup$ What are you assuming about the prob density of 1-day price moves? Is it normal/lognormal? Is it the same every day or does it change (e.g. GARCH?). $\endgroup$ – noob2 Jan 4 '16 at 20:21
  • $\begingroup$ I'm using 3 year averages of daily lognormal returns. This remains constant for the simulation period (no moving averages). $\endgroup$ – Barry Jan 5 '16 at 21:21

Since you are using geometric brownian motion (GBM) as your model, there is a strong (and therefore weak) solution to the SDE. That is to say, your simulation that presumably looks like

$$ S^A_T \sim S^A_0 \exp\left( \left(r-q-\frac12 \sigma^2\right) T + z \sigma \sqrt{T} \right) $$

for standard gaussian $z$ has precisely the correct distribution.

Because sums of gaussian variables are themselves gaussian, your chained simulation for stock B follows the formula

$$ S^B_{t_i} \sim S^B_{t_{i-1}} \exp\left( \left(r-q-\frac12 \sigma^2\right) (t_{i}-t_{i-1}) + z \sigma \sqrt{t_{i}-t_{i-1}} \right) $$

which telescopes into

$$ S^B_{t_N} \sim S^B_0 \prod_{i=1}^N \exp\left( \left(r-q-\frac12 \sigma^2\right) (t_{i}-t_{i-1}) + z \sigma \sqrt{t_{i}-t_{i-1}} \right) $$


$$ S^B_{t_N} \sim S^B_0 \exp\left( \sum_{i=1}^N \left(r-q-\frac12 \sigma^2\right) (t_{i}-t_{i-1}) + z \sigma \sqrt{t_{i}-t_{i-1}} \right) $$

and also is precisely correct in distributional terms.

Therefore the simulation for stock A with a 1 year time interval is no less "accurate" than the simulation for stock B.

Now, if you were using an Euler or Milstein discretization of the GBM of the stock B SDE, then you would have cause to worry about the relative accuracy.

| improve this answer | |
  • $\begingroup$ Stock price at time t is being calculated by: For A, dt = 1 $$ S_{t}= S_0+exp((r-\frac{1}{2}\sigma^2)dt+\sigma\sqrt{dt}Z) $$ For B, I am using Euler's discretization, dt = 1/255 $$ S_{t+dt}= S_t+exp((r-\frac{1}{2}\sigma^2)dt+\sigma\sqrt{dt}Z) $$ At each time step, the simulated price depends on the previous simulated time step. Do I see correct that there is a discretization error? How "accurate" is A compared to B? $\endgroup$ – Barry Jan 6 '16 at 13:06
  • $\begingroup$ Your equations above are completely wrong, including because they do not scale the exponential term by $S$. You should use the strong solution instead. $\endgroup$ – Brian B Jan 6 '16 at 14:45
  • $\begingroup$ Thanks for your help so far! Improved hopefully: For A: $$ S_{0} \\ S_{1}= S_0 \cdot exp((r-\frac{1}{2}\sigma^2)dt+\sigma\sqrt{dt}Z) $$ with dt=1 For B: $$ S_{0} \\ S_{(1/255)}= S_0 \cdot exp((r-\frac{1}{2}\sigma^2)dt+\sigma\sqrt{dt}Z) \\ S_{(2/255)}= S_{(1/255)} \cdot exp((r-\frac{1}{2}\sigma^2)dt+\sigma\sqrt{dt}Z) \\ S_{1}= S_{(254/255)} \cdot exp((r-\frac{1}{2}\sigma^2)dt+\sigma\sqrt{dt}Z) $$ with dt = 1/255 $\endgroup$ – Barry Jan 6 '16 at 15:54
  • $\begingroup$ Hi, could you have a look at the above? Do I see correct that there is a discretization error? How "accurate" is A compared to B? $\endgroup$ – Barry Jan 7 '16 at 18:14
  • $\begingroup$ There is no discretization error $\endgroup$ – Brian B Jan 7 '16 at 20:40

a) there is no point to make any simulations between NOW and 1 YEAR. simulate 1 year stock price directly.

b) here you concern about PATH of stoch process, so simulate each day, but do not simulate "between" or "inside" days.

effectively procedure b uses algo from procedure a with appropriate adjustments for drift and vol

to measure "accuracy" calculate confidence intervals. your estimates have normal distribution, sample variance is proportional to SQRT (N), where N - number of simulations. so if you make 4 times more simulation you get twice more accurate estimate SQRT(4)=2. increase of N is very costly, better use Variance reduction techniques (see wiki).

| improve this answer | |
  • $\begingroup$ What do you mean with that b uses a with "appropriate adjustments for drift and volatility"? See answer from Brian B. Thank you for your suggestion, I am indeed using antithetic variates. $\endgroup$ – Barry Jan 5 '16 at 21:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.