Simulating Normally Distributed Returns with an Activity-Time Price Path
Summary
The question asks how to simulate stock prices using returns that are normally distributed, with time measured by trading activity such as volume rather than by calendar intervals. It frames the issue through a geometric Brownian motion model expressed in activity time, but gives no implementation details for subordinating a process to a stochastic clock.
The response offers a simpler construction: generate independent normal returns using a chosen mean and volatility, then compound them to form a price path. It says the same approach can be indexed by time, volume, or another activity measure. This produces normally distributed returns by construction, but the brief answer does not specify a stochastic time-change model, calibrate parameters, or assess whether the generated series matches real market returns. The method is therefore a basic simulation recipe rather than evidence that observed prices follow the assumed distribution.
Key ideas
- Normally distributed returns can be generated from a chosen mean and volatility.
- Compounding sequential returns creates a simulated price path.
- The return sequence can be indexed by volume or another activity measure.
- The example does not establish that real market returns are normally distributed.
Tags
Full text
# How to simulate stock prices with stochastic time change subordinated arithmetic Brownian Motion? # How to simulate stock prices with stochastic time change subordinated arithmetic Brownian Motion? the idea is to simulate price returns thus to be normally distributed i 'am trying to use subordinated arithmetic brownian motion subordinated to time activity (volume) stock prices are following GBM then you can say $$ dS_t=μS_tdt+σS_tdW_t $$ where the time considered is not the calendar time but activity time (Ané & Geman 2000). I faced problems while implementing it in matlab so any help would be appreciated. ## Answer by Serg (score 3) https://quant.stackexchange.com/a/9028 Here it is. Returns here are normally distributed by construction. It doesn't involve time scale, you can use time, volume, or any other "activity". ``` >> sigma = 0.001; >> mu = 0; >> returns = mu + sigma * randn(1000,1); >> price = cumprod(1 + returns); >> plot(price) ```
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.