# Monte Carlo approach and methods for generating random returns

Recently I found myself reading more about Monte Carlo approach in m.v. portfolio optimization framework.

I already discuss the topic on this forum (if interested please consider the following links - Monte Carlo (resampling) in m.v. portfolio optimization , Quasi Random Monte Carlo in m.v. portfolio optimization ) however the following question arises:

What does it means "draw" or "generate" random returns samples from the assets distribution or from the multivariate distribution?

All literature I have been able to read until now seem not to address the "practical aspects" of the Monte Carlo approach (only its application in different quantitative finance problems). Of course simply calling a random generating function in our code (i.e. .rvs() in scipy python package) is what probably came first to a reader's mind however I think there is or could be more than this.

Specifically which other techniques/methods one can apply? What is the best practice in the industry?

Maybe one should randomly generate prices instead returns and apply a random walks model (econometric models, i.e. arithmetic, geometric etc.).

To "draw" random returns samples from the assets' distribution, you first download empirical price data for $$N$$ assets, convert them to returns then collect into matrix form, and then take subsets of these empirical multivariate returns data $$m$$ times.
• After running the mean-variance model on each of these $$m$$ Monte Carlo simulations, you average across all of the $$m$$ performance criterion (e.g. Sharpe ratio) belonging to each run to have an aggregated picture of how well the model performed.
To "generate" random returns samples from the multivariate distribution, you first simulate artificial random prices or returns with random walk process or Geometric Brownian motion for $$N$$ assets, and then take subsets of these artificial multivariate returns data $$m$$ times.
• After running the mean-variance model on each of these $$m$$ Monte Carlo simulations, you average across all of the $$m$$ performance criterion (e.g. Sharpe ratio) belonging to each run to have an aggregated picture of how well the model performed.
• In the simplest case, each $$n$$th asset is generated one by one if the univariate GBM process is used, for example. This allows you to target a unique mean and variance for each individual asset (each univariate return series), to mimic how stocks in real life have different statistical properties, which are then collected into an asset returns matrix.