I've written a matlab code in order to calculate the market price of risk for historic data. But the market price of risk with more than one asset is somehow not realistic.

Just to have a commen understanding:

market price of risk = (drift - risk-free rate)/volatility

Now, for one asset this is pretty simple. I calculate the mean annual drift rate and the annual volatility (by using log-returns). With an average risk-free rate of about 4% I get a market price of risk of about 0.40. Of course the result depends on the assset and the time horizon of my financial data but the result is usually between 0.3 and 0.5. Seems plausible to me (hope you agree).

However, when I calculate the market price of risk with several assets I run into some troubles.

My calculations:

1. calculate the log-returns of each asset over time

2. calculate variance-covariance matrix (vcm) by using the log-returns

3. calculate volatility matrix by performing the cholesky decomposition (chol(vcm))

4. annualize the volatility matrix

5. calculate mean annual drift-rates for each asset

up to that point the data looks quite plausible. I have volatilities between 10 and 25%, covariances from -2% to +5% and drift rates of 7% to 12%.

Now I would like to calculate the market price of risk of all the assets as a vector. Of course I have to take the covariances into account, so I can not simply calculate it for each asset isolated.

Assuming that I have n assets, I calculated it as follows:

market price of risk vector = (drift - risk-free)/volatility,

where drift is a nx1 vector with the mean drift-rates, risk-free is a nx1 vector with the risk-free rate and volatility is the volatility matrix (calculated in step 4, see above).

The troubling thing is the result. I get a nx1 vector with some components below -1 and above +1. This seems to be not really plausible.

Just a side note: I can not calculate the market price of risk as an aggregated value (e.g. by aggregating the assets with equal weights into an index) because I need the vector for portfolio optimization later on.

Has anyone done a similar calculations and can give me some advice? Every comment is appreciated.

Thank you.