0
$\begingroup$

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.).

$\endgroup$
1
$\begingroup$

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.
  • The subsets are equal length to one another, but of shorter length than the parent "full sample" data, and should be sampled at random with replacement.
  • Before taking subsets of the empirical asset returns, you should downsample them to a lower frequency, since portfolio optimization is a low frequency/long horizon problem (usage of monthly data makes more sense than daily data).

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.
  • The subsets are equal length to one another, but of shorter length than the parent "full sample" data, and should be sampled at random with replacement.
  • 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.
  • What's important when generating artificial data is that GBM allows you to incorporate pair-wise correlations between the assets using the Cholesky decomposition inversion method to make them more realistic (empirical data usually has asset dependencies, whereas random number generators by default don't so the Cholesky inserts these properties during data construction)
| improve this answer | |
$\endgroup$

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.