主要内容

addGroups

向现有的组约束中添加组合权重的组约束

描述

例子

obj= addGroups (objGroupMatrixLowerGroup为的现有组约束添加组合权重的组约束投资组合PortfolioCVaR,或PortfolioMAD对象。有关使用这些不同对象时各自工作流程的详细信息,请参见组合对象的工作流PortfolioCVaR对象的工作流,PortfolioMAD对象的工作流

鉴于GroupMatrix,要么LowerGroupUpperGroup投资组合港口必须满足以下条件:

LowerGroup <= GroupMatrix * Port <= UpperGroup

例子

obj= addGroups (objGroupMatrixLowerGroupUpperGroup为现有的组约束添加用于组合权重的组约束,并提供附加的选项UpperGroup

鉴于GroupMatrix,要么LowerGroupUpperGroup投资组合港口必须满足以下条件:

LowerGroup <= GroupMatrix * Port <= UpperGroup

例子

全部折叠

设置一个组约束,以确保前三个资产最多占投资组合的30%。然后添加另一个组约束,以确保奇数的资产至少占投资组合的20%。

p =投资组合;G =[真真真假假];%组矩阵为第一组约束p = setGroups(p, G, [], 0.3);G =[真假真假];%组矩阵为第二组约束p = addGroups(p, G, 0.2);disp (p.NumAssets);
5
disp (p.GroupMatrix);
1 1 1 0 0 1 0 1 0 1 0 1
disp (p.LowerGroup);
从负0.2000
disp (p.UpperGroup);
0.3000正

设置一个组约束,以确保前三个资产最多占投资组合的30%。然后添加另一个组约束,以确保奇数的资产至少占投资组合的20%。

p = PortfolioCVaR;G =[真真真假假];%组矩阵为第一组约束p = setGroups(p, G, [], 0.3);G =[真假真假];%组矩阵为第二组约束p = addGroups(p, G, 0.2);disp (p.NumAssets);
5
disp (p.GroupMatrix);
1 1 1 0 0 1 0 1 0 1 0 1
disp (p.LowerGroup);
从负0.2000
disp (p.UpperGroup);
0.3000正

设置一个组约束,以确保前三个资产最多占投资组合的30%。然后添加另一个组约束,以确保奇数的资产至少占投资组合的20%。

p = PortfolioMAD;G =[真真真假假];%组矩阵为第一组约束p = setGroups(p, G, [], 0.3);G =[真假真假];%组矩阵为第二组约束p = addGroups(p, G, 0.2);disp (p.NumAssets);
5
disp (p.GroupMatrix);
1 1 1 0 0 1 0 1 0 1 0 1
disp (p.LowerGroup);
从负0.2000
disp (p.UpperGroup);
0.3000正

输入参数

全部折叠

对象的组合,指定使用投资组合PortfolioCVaR,或PortfolioMAD对象。有关创建组合对象的更多信息,请参见

数据类型:对象

群约束矩阵,指定为矩阵。

请注意

一组矩阵GroupMatrix通常表示组成员关系,这意味着它的元素通常是01.因为这个解释,GroupMatrix可以是逻辑矩阵或数字矩阵。

数据类型:

组约束的下界,指定为向量。

请注意

如果输入是标量,LowerGroup经过标量展开符合GroupMatrix

数据类型:

组约束的上界,指定为向量。

请注意

如果输入是标量,UpperGroup经过标量展开符合GroupMatrix

数据类型:

输出参数

全部折叠

更新的组合对象,返回为投资组合PortfolioCVaR,或PortfolioMAD对象。有关创建组合对象的更多信息,请参见

提示

  • 您还可以使用点表示法为组合权重添加组约束。

    obj = obj。addGroups(GroupMatrix, LowerGroup, UpperGroup)

  • 若要使用点表示法从任何组合对象中删除组约束,请为相应的数组输入空数组。

介绍了R2011a