我目前参与一个小组项目,我们必须进行投资组合选择和优化。这里给出了被引用的论文:(特别是第 5 页和第 6 页,等式 7-10)
http://faculty.london.edu/avmiguel/DeMiguel-Nogales-OR.pdf
我们在使用 M-Portfolios 创建优化问题时遇到了麻烦,如下所示
min (wrt w,m) (1/T) * sum_(rho)*(w'*r_t - m) (对不起,我无法使格式正常工作)
st w'e = 1(只是表示所有权重加到 1 的条件)
到目前为止,这是我们尝试过的:
function optPortfolio = portfoliofminconM(returns,theta)
% Compute the inputs of the mean-variance model
mu = mean(returns)';
sigma = cov(returns);
% Inputs for the fmincon function
T = 120;
n = length(mu);
w = theta(1:n);
m = theta((n+1):(2*n));
c = 0.01*ones(1,n);
Aeq = ones(1,(2*n));
beq = 1;
lb = zeros(2,n);
ub = ones(2,n);
x0 = ones(n,2) / n; % Start with the equally-weighted portfolio
options = optimset('Algorithm', 'interior-point', ...
'MaxIter', 1E10, 'MaxFunEvals', 1E10);
% Nested function which is used as the objective function
function objValue = objfunction(w,m)
cRp = (w'*(returns - (ones(T,1)*m'))';
objValue = 0;
for i = 1:T
if abs(cRp(i)) <= c;
objValue = objValue + (((cRp(i))^2)/2);
else
objValue = objValue + (c*(abs(cRp(i))-(c/2)));
end
end
问题始于我们将 theta 定义为 w 和 m 的向量。我们不知道如何在目标函数中正确使用带有 2 个变量的 fmincon。此外,目标函数的值取决于另一个值(如论文所示),这需要在 120 个月的滚动时间窗口内完成,总共 264 个月。(因此 for 循环和如果别的)
如果需要更多信息,我很乐意提供!
如果您可以另外提供一个处理类似问题的示例,您能否将我们链接到它。
先感谢您。