Purpose
Today while designing glide path based simulation, I realized that I had committed a blunder After using robust covariance matrix as the cov estimator, I was extracting risk in a wrong manner.

Return was fine, but the risk was over estimated .. ok instead of blabbering some crap, let me code and show what blunder I have been making

> my.frontier.classic <- portfolioFrontier(all.master, my.spec,
+     boxConstraints)
> sig <- my.frontier.classic@portfolio@portfolio$targetRisk[, 1]
> ret <- my.frontier.classic@portfolio@portfolio$targetReturn[,
+     1]
> wts <- round(my.frontier.classic@portfolio@portfolio$weights *
+     100, 2)
> points.classic <- getUpperFrontierPoints(sig, ret, wts)
> colnames(points.classic) <- c("risk", "return", "wt.nifty.100",
+     "wt.gold", "liquid")
> head(points.classic, 10)
             risk     return wt.nifty.100 wt.gold liquid
 [1,] 0.009268103 0.05065980         0.83    0.26  98.91
 [2,] 0.009295172 0.05181244         1.08    0.64  98.28
 [3,] 0.009435476 0.05296508         1.33    1.02  97.65
 [4,] 0.009684095 0.05411773         1.58    1.40  97.02
 [5,] 0.010032979 0.05527037         1.83    1.78  96.39
 [6,] 0.010472112 0.05642302         2.08    2.16  95.77
 [7,] 0.010990683 0.05757566         2.33    2.53  95.14
 [8,] 0.011578021 0.05872830         2.58    2.91  94.51
 [9,] 0.012224219 0.05988095         2.83    3.29  93.88
[10,] 0.012920448 0.06103359         3.08    3.67  93.25

So, here are sample 10 portfolios which will give you the allocation for the desired risk However this is pure bs..if you do t(w) * cov * w , you do not get the risk mentioned.

What was going wrong ? Well, let me tell you what was going wrong ? In my.frontier.classic@portfolio@portfolio, targetRisk has cov and Sigma.. Whenever you use alternate cov estimate , you have to use Sigma and not cov.. cov gives sample covariance and nothing but that Sigma gives you alterate covariance THIS STATEMENT IS WRONG…………

> sig <- my.frontier.classic@portfolio@portfolio$targetRisk[, 1]

IT SHOULD HAVE BEEN……………

> sig <- my.frontier.classic@portfolio@portfolio$targetRisk[, 2]

becoz in 2 col , the risk is stored based on the alternate covariance estimate

How did i realize this ? All I was doing was to check t(w) * cov * w and i found that the first column does not match the risk and it is the second column which matches the risk

Thankfully the risk calculated by sample is higher and hence if at all one uses this as frontier you will be over estimating risk ..so, it is good meaning…you wont take a lot of risk

But at the end of the day….it is extremely valuable lesson that I have learnt today and will never repeat again