MVO Question - The Implementation Details

I’m looking for advice on the technical implementation of MVO. Specifically, I have daily, monthly and annual price data for my portfolio stocks. I want to use the daily, or worst case, monthly returns to derive the correlation matrix for the MVO.

  1. Since I’m minimizing the variance of the ANNUAL returns, do I need to scale the correlations that I’ve derived off of daily/monthly price data?

  2. Currently I use a Price_6/1/2015 / Price_6/1/2014 calculation to derive the annual return for each stock. The problem with this approach is that the result is extremely dependent on the point in time at which I choose to apply the calculation. Is there a better way to do this that wouldn’t depend on the particular market conditions at that point in time?

Any and all suggestions will be greatly appreciated. Thank you.

Maybe I don’t understand your reasons, but why would you use annual returns for the variance and daily/monthly price data for the correlation matrix? Since a correlation matrix is a joint elliptical distribution of the mixture of any two assets A and B, and each asset A and B have their own volatility/variance estimates, it makes sense that you would want to compare apples to apples and use the same data frequency for both.

On the return side, you could then take the subannual frequency and annualize from there. What program are you using to conduct the analysis? I wouldn’t tweak the correlation matrix without determining internal matrix consistency is correct (i.e., you don’t want to adjust correlations haphazardly; to make sure you don’t have funky results the matrix needs to be positive semi-definite). There are some techniques that can be used to ensure consistency, such as examining eigenvalues, but you would either need a program that checks the matrix or you would need to know how to do this yourself.

Most important to understand, regardless of how you ultimately shape your inputs up, is that MVO is HIGHLY sensitive to constraints and inputs. In fact, many people fail to understand that the design of constraints has the highest impact to the end result. If you look at unconstrained optimizations, you typically end up with the optimization process wanting massive allocations to 2 or 3 assets at the extreme ends of the efficient frontier. However, you may have reasons for imparting mins and maxes on various assets…this is the part that requires serious thought before setting constraints and re-running.

Thanks Oppenheimer. :slight_smile: In this case, there’s no concern that MVO constraints will result in a poor diversification b/c I’m told that my portfolio is made up of only 3 investments - a diversified equity index (S&P 500), a diversified IG bond index and cash. Leverage is not allowed.

I’ll be using the daily correlations based on 2007-2015 price data. I’m not sure what you mean by “internal matrix consistency” and “tweaking the correlation matrix”. The correlations are what your price data tells you they are. There’s no tweaking of any sort unless you don’t trust your price data.

Correlation is a dimensionless variable, so there shouldn’t be a problem with using DAILY correlations to minimize the variance of ANNUAL returns, but I wanted to get other people’s take on whether there’re possible issues with this approach.

I agree that compounding the daily returns into a true TWRR annual rate of return is definitely the way to go, but since I’m using Excel, I was wondering whether there’s an simpler calculation that is 99% as good as the TWRR calculation. I currently derive the annual return based on today’s price level and the price from a year ago. I don’t like this approach b/c the return can vary greatly depending on which dates I use in my calculation.


I have to use MVO in practice, in addition to other types of portfolio optimizations. Making correlation adjustments based on assumptions about changes in expected relationships in some of the variables is common practice. What you are talking about, doing MVO with strict historical data, is technically not what one is supposed to do as they are supposed to impart some idea about the expectations of the inputs. But I won’t bore you with that philosophy, mainly pushed by the academics who don’t need to do this in the real world, and we’ll keep the assumption that your historical data approach is fine (it also sounds like you don’t want to introduce that kind of sophistication into your optimization, so no problem). Some points…

The fact that correlation is a dimensionless variable is actually not related to what I’m talking about.

Say you have 40 years of data for your S&P500, Barclays Agg and Cash Indices. You calculate the returns, variances and covariances for all at various frequencies – i.e., annual, quarterly, monthly, weekly, daily. You will see different results for all of them when calculated at different frequencies. In other words, your correlation will not be the same when calculated at a monthly frequency as it is when calculated at an annual frequency, and so on. Dimensionality has nothing to do with it. The timeframe over which an input is relevant to the investor, however, has everything to do with it.

If I have a day trader’s timeframe, I am more interested in intra-day or daily scale for my inputs, as that is the correlation and volatility that is relevant to what I’ll be experiencing. If I have a long-term timeframe of 20-30 years, then I am probably more interested in correlations and vols calculated over monthly, or perhaps even quarterly or annual timeframes. In either case, I’ll want my returns to be scaled consistently with the frequency I’m using with my correlations and vols.

Don’t make the assumption that everything scales up nice and neat. If you are not working with time series that are purely a random walk, scaling up, say, weekly volatility by the square root of time is not necessarily going to yield the same volatililty that would be calculated by using monthly or annual returns. This is due to the fact that very few time series in finance follow a true random walk. So if your calculations are different depending on what frequency you use, there should be a clear philosophical reason why you would calculate correlations and vols based on smaller timeframes versus returns calculated based on longer timeframes.

I see your issue in coming up with estimates for annual returns and the frustration you have. I suspect this may be due to you dealing with limited data sources. If the variability of the return calcs are frustrating, why not roll the end-to-end estimates down in Excel (drop one day off the end, add one to the front), and then take the average of the rolling series?

FYI, depending on what you are talking about measuring in terms of TWRR, this may not be the correct approach to use in estimating return within a traditional MVO framework (are you talking about just doing the TWRR of the individual index price series?).

I like your suggestion to check correlation consistencies and use eigenvalues. However, I’m of a different opinion regarding making changes to correlation values to reflect “the [forward looking] expectations of the inputs”. I’m of the opinion that markets are weak-form efficient and that you can’t predict the future. By tweaking correlations you’re effectively imposing your view of the future on the unbiased data.

I like your idea to take an average of all the the pont-to-point annual returns. That would work and smooth the data. Cheers.