Nested for loop portfolio optimization

1 次查看(过去 30 天)
Hi guys,
I am probably doing something utterly silly which holds me back from retrieving the desired results.
I have two matrices: Matrix(A), which is a vector containing returns from three risky assets, and Matrix C, which consists of optimally genereated weights of those risky assets. To obtain the return, I wrote the following loop:
for i = 1:155
for j = 1:155
returns = A(i,:)*C(j,:)'
end
end
This code yields a 1x155 matrix, exactly as I asked for, But, the answers are not correct.
Does anyone have a clue what I do wrong here?
Thanks for the effort!
Cheers,
Kevin
  2 个评论
Matt J
Matt J 2013-5-2
The code you've shown returns a scalar, not a 1x155 vector. You should show us the code you're actually using.
Kevin van Berkel
Kevin van Berkel 2013-5-3
Hi Matt, thanks for your response.
s = size(A);
C = zeros(s);
for j1 = 1:s(1)
C(j1,:) = A(j1,:)*B((j1-1)*s(2)+1:j1*s(2),:);
end
and this yields me the the weight's vector 'C'. 'A' is also a 155x3 vector. So I only need to multiply every row with the transpose of the other vector. E.G. A(row 1,col 1-3)*C'(row 1, col 1-3)
Hope this clarifies my question. Thanks!

请先登录,再进行评论。

回答(1 个)

Kevin van Berkel
Kevin van Berkel 2013-5-3
Hi Matt, thanks for your response.
s = size(A);
C = zeros(s);
for j1 = 1:s(1)
C(j1,:) = A(j1,:)*B((j1-1)*s(2)+1:j1*s(2),:);
end
and this yields me the the weight's vector 'C'. 'A' is also a 155x3 vector. So I only need to multiply every row with the transpose of the other vector. E.G. A(row 1,col 1-3)*C'(row 1, col 1-3)
Hope this clarifies my question. Thanks!

类别

Help CenterFile Exchange 中查找有关 Portfolio Optimization and Asset Allocation 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by