我想用Matlab解决一个简单的优化问题,但是我在实现上苦苦挣扎。我的目标是从给定的“最佳”投资组合权重集合中隐含的收益,这与通常的投资组合优化问题相反。详细信息如下:
考虑到一组资产的收益和协方差矩阵,我可以使用标准均值方差优化技术找到最佳的投资组合权重集,以提供最低的目标收益风险。
一个简单的例子如下所示。
data = xlsread('euroxx.xlsx') %daily asset prices from EUROSTOXX50 companies
nAssets = size(data, 2);
rets = data(2:end, :)./data(1:end-1,:)-1;
%annualize the returns and covariance
mu = 250 * mean(rets);
sigma = 250 * cov(rets);
%formulate the problem/optimization
r_target = 0.10; %r_target is the required return
f = zeros(nAssets, 1); %there is no constant
A = [-mu; -eye(nAssets)]; %besides the returns we forbid short selling
b = [-r_target; zeros(nAssets, 1)]; % required return and weights greater/equals 0
Aeq = ones(1, nAssets); %All weights should sum up...
beq = 1; %... to one (1)
%solve the optimization
w = quadprog(sigma,f,A,b,Aeq,beq);
但是,我不想解决最佳权重问题,而是想解决这个问题并解决收益问题-例如,对于给定的权重集合,如果将其放入均值方差中,将产生这些权重的相应收益集是什么?优化器?
我如何转换上面的代码来解决“ mu”而不是“ w”?在这种情况下,我不需要r_target变量。资产的数量以及所有资产的sigma /协方差仍将是已知的;只有“ mu”是未知的。