I am performing portfolio optimization, and I would like to extend the discussion here with the following:
I have a vector of weights w_bench that is used as a benchmark. I would like to optimize a portfolio weight vector w_pf that satisfies
sum(pmin(w_bench, w_pf)) > 0.7
pmin here is the pairwise minimum. This forces the optimized portfolio weights w_pf to be similar to the benchmark weights w_bench, and the right-hand-size (0.7 in this case) controls how closely they need to match. As that value gets larger, we require the portfolios to be more similar.
Initially I thought I could easily do it with fPortfolio package (still trying). But so far no dice. I also think that solving this with quadprog would be a lot more intuitive, but I do not know how to incorporate said function into the process.
Excel implementation:
Covariance matrix:
0.003015254 -0.000235924 0.000242836
-0.000235924 0.002910845 0.000411308
0.000242836 0.000411308 0.002027183
Weights:
w_pf w_bench min
V1 0.32 0.40 0.32
V2 0.31 0.50 0.31
V3 0.38 0.10 0.10
Ss 1.00 1.00 0.72
Minimize Variance (=MMULT(TRANSPOSE(H8:H10),MMULT(H3:J5,H8:H10))) with constraints of Ss(w_pf) = 1 and Ss(min) > 0.7