matlab求有效前沿
时间: 2023-11-29 22:46:24 浏览: 35
以下是使用MATLAB求有效前沿的步骤:
1.首先,你需要准备一些数据,例如资产的收益率和波动率。你可以使用以下代码生成一些随机数据:
```matlab
rand('seed', 100);
randn('seed', 100);
retE = rand(1, 100);
volE = rand(1, 100);
```
2.接下来,你需要计算出有效前沿。你可以使用以下代码:
```matlab
rmat = linspace(min(retE), max(retE), 40);
K = length(rmat);
riskmat_noshort = zeros(K, 1);
riskmat_short = zeros(K, 1);
for i = 1:K
[riskmat_noshort(i), ~, ~] = portopt(retE, volE, rmat(i));
[riskmat_short(i), ~, ~] = portopt(retE, volE, rmat(i), [], 'short');
end
plot(riskmat_noshort, rmat, 'b', 'LineWidth', 2);
hold on;
plot(riskmat_short, rmat, 'r', 'LineWidth', 2);
xlabel('Risk');
ylabel('Expected Return');
title('Efficient Frontier');
legend('No Short Sales', 'Short Sales');
```
3.最后,你可以运行代码并查看有效前沿图表。该图表将显示在MATLAB的图形窗口中。