Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

使用后处理结果设置可交易投资组合

获得有效的投资组合或对预期投资组合风险和收益的估计后,请使用您的结果设置交易,以实现有效的投资组合。有关使用 PortfolioCVaR 对象时的工作流的信息,请参阅 PortfolioCVaR 对象工作流

设置可交易投资组合

假设您设置了一个投资组合优化问题并获得了有效边界上的投资组合。使用 Statistics and Machine Learning Toolbox™ 中的 dataset 对象形成一个交易记事本,列出您的投资组合以及每项资产的名称。例如,假设您想获得有效边界上的五种投资组合。您可以设置一个交易记事本,将权重乘以 100,以此来查看每种投资组合的配置:

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 ];

pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ];

p = PortfolioCVaR;
p = setAssetList(p, 'Bonds','Large-Cap Equities','Small-Cap Equities','Emerging Equities');
p = setInitPort(p, pwgt0);
p = simulateNormalScenariosByMoments(p, m, C, 20000);
p = setDefaultConstraints(p);
p = setProbabilityLevel(p, 0.9);

pwgt = estimateFrontier(p, 5);

pnames = cell(1,5);
for i = 1:5
pnames{i} = sprintf('Port%d',i);
end

Blotter = dataset([{100*pwgt},pnames],'obsnames',p.AssetList);
display(Blotter)
Blotter = 

                          Port1     Port2     Port3     Port4     Port5     
    Bonds                  78.84    43.688    8.3448         0    1.2501e-12
    Large-Cap Equities    9.3338    29.131    48.467    23.602    9.4219e-13
    Small-Cap Equities    4.8843    8.1284    12.419    16.357     8.281e-14
    Emerging Equities     6.9419    19.053    30.769    60.041           100

注意

根据模拟情景的不同,您得出的结果可能与此结果有所不同。

此结果表明,在有效边界的最小风险/最小收益端 (Port1) 主要投资债券,在有效边界的最大风险/最大收益端 (Port5) 则完全投资在新兴股票。您还可以选择一个特定的有效投资组合,例如,假设您想要一个风险为 15% 的投资组合,可加上从 “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 ];

pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ];

p = PortfolioCVaR;
p = setAssetList(p, 'Bonds','Large-Cap Equities','Small-Cap Equities','Emerging Equities');

p = setInitPort(p, pwgt0);
p = simulateNormalScenariosByMoments(p, m, C, 20000);
p = setDefaultConstraints(p);
p = setProbabilityLevel(p, 0.9);

[pwgt, pbuy, psell] = estimateFrontierByRisk(p, 0.15);

Blotter = dataset([{100*[pwgt0, pwgt, pbuy, psell]}, ...
{'Initial','Weight', 'Purchases','Sales'}],'obsnames',p.AssetList);
display(Blotter)
Blotter = 

                          Initial    Weight    Purchases    Sales 
    Bonds                 30         15.036         0       14.964
    Large-Cap Equities    30         45.357    15.357            0
    Small-Cap Equities    20         12.102         0       7.8982
    Emerging Equities     10         27.505    17.505            0
如果您有每种资产的价格(在本例中,它们可以是 ETF),请将其添加到您的交易记事本中,然后使用 dataset 对象的工具得到份额和待交易的份额。

另请参阅

| |

相关示例

详细信息

外部网站