0
$\begingroup$

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?

enter image description here

$\endgroup$
2
  • $\begingroup$ It's really unclear what you want to do. Montecarlo is a method where you simulate the underlying using (pseudo)random numbers (either using normal numers like you mention above, or using some other distribution), and then use those simulated random processes to model something else. What do you want to obtain from your simulation? $\endgroup$ – will Sep 24 '20 at 20:33
  • $\begingroup$ @will I don't understand how to properly simulate the underlying, in particular, the equation to compute the price at time $t$ contains the price at time $t-1$, but I don't understand if this price at time $t-1$ is the one from the market data ($S_{t-1}$) or the one generated randomly ($\hat S_{t-1}$) in the previous step. As you can see from the plot it makes a big difference to choose one way or the other, and so since I have then to use the prices of the underlying to compute the prices of the forward contract, I have to choose the correct way of computing the prices of the underlying $\endgroup$ – sound wave Sep 24 '20 at 20:44
1
$\begingroup$

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.

$\endgroup$
3
  • $\begingroup$ Thank you for the help. So if I understand correctly, are you saying that the correct formula is $\hat S_{t}=\hat S_{t-1}f(1)+...$ and the wrong one is $\hat S_{t}=S_{t-1}f(1)+...$? (where I recall you that $\hat S_{t-1}$ is the simulated price, while $S_{t-1}$ is the market price from real data) And so the correct plot is the second one, while the wrong plot is the first one? $\endgroup$ – sound wave Sep 25 '20 at 6:41
  • 1
    $\begingroup$ @soundwave, that's correct. It's not entirely clear what's going on in your plots absent a legend, but I wouldn't, path by path, expect your simulated paths to mirror your actual spot trajectory. $\endgroup$ – Chris Sep 25 '20 at 20:48
  • $\begingroup$ Thanks, the big black line represents the market spot prices (real data), the big blue line represents the mean of the simulated paths and each of the other curves represents one simulated path $\endgroup$ – sound wave Sep 26 '20 at 14:54

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.