Valuation of investment portfolios, structured products and different strategies that consist of several underlying assets may require advanced methodology and algorithms.
Monte Carlo technique that includes valuation algorithm is often used in such cases, especially if there is no closed form solution for option pricing.
Standard inputs parameters to Monte Carlo process are:
1. Correlation/covariance matrix
2. Volatility of underlyings
3. Drift and starting price
5. Assumption that prices are lognormally distributed and follow geometric Brownian motion
Random variables can be simulated in Excel, using NORMSINV(RAND)) functions.
The RAND() function generates random numbers, while NORMSINV() returns the inverse of the standard normal cumulative distribution.
Monte Carlo process can be implemented in VBA code by applying N steps simulated paths in a while loop.
Correlation matrix is used in the Cholesky decomposition along with random variables taken from NORMSINV(RAND)) functions to generate correlated random variables.
Cholesky decomposition assumes that every positive definite matrix A can be factored as multiplication of lower triangular matrix having positive diagonal elements with its inverse matrix(upper triangular).
There is no mystery and for simplicity case, here is an example:
Simple matrix multiplication(Correlation matrix A = Lower triangular matrix L * Upper Triangular) helps to understand what happens.
Cholesky decomposition means that correlation matrix A is known and L should be found.
The above calculations are made in reverse, finding L values instead of A values.
All the values from the Lower triangular matrix are found and this calculation is known as the Cholesky algorithm.
Let’s assume we have a correlation matrix of 4 underlying assets:
Using Cholesky decomposition, the lower triangular matrix is:
The first column calculation:
The second column calculation(numbers rounded two the second decimal):
0.17 = (0.5-0.5*0.8)/0.6
The third column calculation(numbers rounded two the second decimal):
The last column calculation(numbers rounded two the second decimal):