Simulating Geometric Brownian Motion at Multiple Checkpoints
Summary
The question asks whether an exact geometric Brownian motion simulation can use separate independent normal variables for an intermediate barrier check and the final value. The answer reframes the issue in terms of Brownian paths: a path over a partition consists of increments, and each increment can be generated from an independent standard normal draw scaled by the square root of its time interval. A path with many increments can be viewed as one vector of draws or divided into several vectors without changing its distribution.
For a barrier-forward-starting payoff, the key is to simulate the process at the relevant times with the correct dependence. The intermediate price and terminal price are not generated by independent shocks in isolation: the terminal value must incorporate the earlier increment and a subsequent independent increment. The answer illustrates normal draws for a discretized path, but does not spell out the two-time conditional formula, barrier-crossing correction, or variance reduction. Its discussion is about Brownian path construction, not evidence from a pricing experiment.
Key ideas
- A discretized Brownian path is built from independent normal increments scaled to each time interval.
- The same path can be generated in one array or assembled from multiple arrays of independent draws.
- Prices at an intermediate checkpoint and at maturity must preserve the dependence induced by the shared path.
- A barrier payoff may require additional treatment to account for crossings between simulated time points.
Tags
Full text
# Sample path simulation using two random variables
# Sample path simulation using two random variables
I was wondering if there is a way of generating a sample path of a Geometric Brownian Motion using two independent standard normal random variables instead of just one.
The exact scheme that uses one standard normal random variable
$$ \hat{S}_{t_{i+1}}= \hat{S}_{t_{i}} \text{exp}\left( (r- \frac{\sigma^2}{2})(t_{i+1}-t_i)+ \sigma \sqrt{t_{i+1}-t_i} Z \right), \ i=0, \dots, n-1$$.
I want to know if there is an exact scheme that uses multiple independent normal random variables. I am asking this specifically for a barrier-forward start type option which has a "barrier check" at say a time $t$.
The idea I had for this case is to have $Z_1$ simulate $S_{t}$ and then have an independent $Z_2$ simulate the final $S_T$ but I am not sure.
## Answer by Stéphane (score 2, accepted)
https://quant.stackexchange.com/a/53799
When you simulate a sample path of a standard Brownian motion, you are generating a sequence $(B_t)_{t \in \mathbb{\Pi}}$ where $\mathbb{\Pi} := \{t_0, ..., t_n\}$ is your time partition. You can view that sequence as $n$ draws of the same random variable, although no one could say that this isn't also 1 draw each of $n$ independent normal random variables.
This is true by definition. You can divide your sample path however you want and name/define things so that as many random variables as you wish get involved, but besides being a huge waste of time, I do not see the point.
EDIT
Say we use a Euler discretization. You split a month into a grid using 1000 time steps. For each sample path, you need $(Z_t)_{t=1,...,1000}$ where each $Z_t \sim N(0, 1/1000)$.
On your computer, you could do:
```
B = np.random.normal(loc=0, scale=1, size=1000 )
Z = np.sqrt(1/1000)*B
```
Or
```
B1 = np.random.normal(loc=0, scale=1, size=500 )
B2 = np.random.normal(loc=0, scale=1, size=500 )
B = np.hstack( (B1,B2) )
Z = np.sqrt(1/1000)*B
```
You can split those steps in as many vectors as you like. Each vector is a set of draws from a random normal distribution. You can treat this as many draws of 1 r.v., 500 draws each of 2 r.v., etc. It's just a question of definitions.Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.