Skip to content
All library documents

Monte Carlo Price Paths Must Evolve from Simulated Values

Article Quant Q&A · Author: sound wave

Summary

The discussion clarifies how to simulate an oil spot price trajectory when starting from observed market data. For each simulated path, the first simulated value uses the actual starting spot price; subsequent values should be generated recursively from the previous simulated value. Reusing later observed prices as inputs would splice market history into the simulated path, rather than produce a trajectory from the specified stochastic process.

The questioner reports that paths generated from observed prices appear to track the data more closely, while recursively simulated paths look smoother and diverge. The answer explains that these approaches answer different questions and recommends first simulating from one starting spot, then repeating with other starting dates if needed. It also notes that standard random number generators are often pseudo-random and mentions Sobol sequences as a possible next step. No specific process coefficients, validation, or forward-pricing results are provided, so the recursive principle does not verify whether the chosen model is appropriate.

Key ideas

  • Initialize each simulated path with an observed starting spot price.
  • Generate each later simulated price from the prior simulated price, not the next historical observation.
  • Simulating from multiple historical starting spots means creating separate paths for each initial value.
  • Pseudo-random number generation and low-discrepancy sequences are implementation choices for Monte Carlo simulation.
  • Recursive simulation mechanics do not establish that the underlying price model is suitable.

Tags

Full text
# Answer by Chris (score 1, accepted)


# When pricing with Monte Carlo using market prices, should we use only the first price or all the prices to create the paths?












I have a vector $S=(S_0,S_1,...)$ of monthly oil spot prices and for each of them I have to compute, using Monte Carlo, the price of the forward contract having it as underlying asset. The equation that I have to use to model the prices of the asset is of the form $S_t = S_0f(t)+...+\sigma g(t)\mathcal N(0,1)$ where $\mathcal N(0,1)$ is a random number from the standard normal distribution and $f$ and $g$ are known functions.

I think it can be transformed into $S_t = S_{t-1} f(\Delta t)+...+\sigma g(\Delta t)\mathcal N(0,1)$ with $\Delta t = t-(t-1)=1$, is it true?

Anyway, my main doubt is about the Monte Carlo method. From what I understood the method uses the first spot price, $S_0$, to randomly generate the other prices $\hat S_1, \hat S_2,...$ (notice the $\hat{}$ to distinguish them from data spot prices), which are then used to compute the prices of the contract, but what I don't understand is if the price $S_{t-1}$ appearing in the equation refers to the data spot price or to the $\hat S_{t-1}$ computed using the equation.

For example the first price to be computed is $\hat S_1=S_0f(1)+...$, but what about $\hat S_2$? Should it be computed by $\hat S_2=S_1f(1)+...$ or by $\hat S_2=\hat S_1f(1)+...$?

I tried to compute the prices in both ways and the two plots are very different, in particular when using $\hat S_2=S_1f(1)+...$ the mean of the paths (blue line) is very close to the data (black line), while when using $\hat S_2=\hat S_1f(1)+...$ the paths are far from the data and the mean path is smooth and approaches an horizontal line as the number of simulation increases.

So which is the correct way of performing the Monte Carlo method?

## Answer by Chris (score 1, accepted)

https://quant.stackexchange.com/a/58220

I think you're getting confused because you're attempting to calculate simulated spot prices using actual starting spot prices taken over a number of dates.

Ignore wanting to do the same thing for any number of starting spot prices and just do it for one to start.

Assuming you'd like to simulate price using the process referenced:

$S_t=S_0f(t)+...+σg(t)N(0,1)$

Your first simulated data point, $S_1$, uses the starting actual spot price data, $S_0$, and $S_2$ is calculated in a similar manner using the simulated $S_1$, and so on. You can simulate spot trajectory using any of the other starting spot rates in a similar way.

Monte Carlo is commonly first implemented using a native (to whatever language or application you're using) random number generator, but these numbers aren't really random and depend on starting seed. As the commenter above referenced, pseudo-random number generators (eg, Sobol) are often used as a preferable next step.

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.