- While optimizing a portfolio using 'Global Minimum Variance' (GMV) method, I found that annualizing a sampled covariance matrix makes a difference in stock weight vector.
- Q1. Why annualizing (multiplying by 252) a covariance matrix makes a difference in weight vectors?
- Q2. Is it correct to annualize a variance and covariance by multiplying them by 252?
Information in detail
- I check the portfolio optimization result by using the python library PyPortfolioOpt.
- In this library, the input for the math formula of optimization is a daily returns of assets.
- The library "annualize" the variance-covariance matrix by multiplying by 252. You can check the code here. The excerpt of the code is as follows :
def sample_cov(prices, frequency=252): ... return daily_returns.cov() * frequency
To annualize a sharpe ratio cacluated from the daily returns, we multiply them by square root of 252, which is almost equal to 15.87. But to annualize a covarinace, we multiply them just 252? It does not make sense to me.
Furthermoe, multiplying a covariance by a constant number such as 252, does not change a rankings of covariances between variables. For example, let's suppose that we have 3 random variables A,B, and C and cov(A,B) = 0.4, cov(A,C) = -0.4, cov(B,c) = -0.7. Then if we still multiply them by 252, the relative co-movement is still the same.
So I cannot understand why the annualizing (multiplying by 252) the variancce-covariance matrix change the portfolio optimization result.