Main Content

获取整个有效边界上的投资组合

要获得最优投资组合,最基本的方法是获取整个有效边界范围上的各个点。

给定一个关于 PortfolioMAD 对象的投资组合优化问题,estimateFrontier 函数将根据从最小到最大收益有效投资组合的收益代理计算均匀分布的有效投资组合。估计的投资组合数量由隐藏属性 defaultNumPorts 控制,其值为 10。如果要将估计的投资组合数量指定为其他值,可通过指定 estimateFrontier 的输入参量来实现。以下示例显示了整个有效边界范围上的默认有效投资组合数量。

m = [ 0.05; 0.1; 0.12; 0.18 ];
C = [ 0.0064 0.00408 0.00192 0; 
    0.00408 0.0289 0.0204 0.0119;
    0.00192 0.0204 0.0576 0.0336;
    0 0.0119 0.0336 0.1225 ];
m = m/12;
C = C/12;

AssetScenarios = mvnrnd(m, C, 20000);

p = PortfolioMAD;
p = setScenarios(p, AssetScenarios);
p = setDefaultConstraints(p);
pwgt = estimateFrontier(p);
disp(pwgt)
    0.8823    0.7156    0.5497    0.3854    0.2199    0.0530         0         0         0         0
    0.0427    0.1427    0.2404    0.3378    0.4365    0.5342    0.4710    0.3338    0.1681         0
    0.0392    0.0434    0.0490    0.0518    0.0553    0.0628    0.0404    0.0029         0         0
    0.0358    0.0982    0.1608    0.2250    0.2883    0.3500    0.4886    0.6633    0.8319    1.0000

如果您只需要四个投资组合,您可以使用 estimateFrontier 并将 NumPorts 指定为 4

pwgt = estimateFrontier(p, 4);
disp(pwgt)
    0.8823    0.3854         0         0
    0.0427    0.3378    0.4710         0
    0.0392    0.0518    0.0404         0
    0.0358    0.2250    0.4886    1.0000

从初始投资组合开始,estimateFrontier 还会返回从您的初始投资组合到有效边界上每个有效投资组合的买入交易和卖出交易。例如,给定 pwgt0 中的初始投资组合,您可以得到以下买入交易和卖出交易:

pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ];
p = setInitPort(p, pwgt0);
[pwgt, pbuy, psell] = estimateFrontier(p);

display(pwgt)
pwgt = 4×10

    0.8823    0.7156    0.5497    0.3854    0.2199    0.0530         0         0         0         0
    0.0427    0.1427    0.2404    0.3378    0.4365    0.5342    0.4710    0.3338    0.1681         0
    0.0392    0.0434    0.0490    0.0518    0.0553    0.0628    0.0404    0.0029         0         0
    0.0358    0.0982    0.1608    0.2250    0.2883    0.3500    0.4886    0.6633    0.8319    1.0000

display(pbuy)
pbuy = 4×10

    0.5823    0.4156    0.2497    0.0854         0         0         0         0         0         0
         0         0         0    0.0378    0.1365    0.2342    0.1710    0.0338         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0    0.0608    0.1250    0.1883    0.2500    0.3886    0.5633    0.7319    0.9000

display(psell)
psell = 4×10

         0         0         0         0    0.0801    0.2470    0.3000    0.3000    0.3000    0.3000
    0.2573    0.1573    0.0596         0         0         0         0         0    0.1319    0.3000
    0.1608    0.1566    0.1510    0.1482    0.1447    0.1372    0.1596    0.1971    0.2000    0.2000
    0.0642    0.0018         0         0         0         0         0         0         0         0

如果您没有指定初始投资组合,则买入和卖出权重假设您的初始投资组合为 0

另请参阅

| | | | | | | |

相关示例

详细信息