主要内容

使用PortfolioMAD对象处理组约束

组约束是可选的线性约束,它将资产分组在一起,并强制组权值的边界(参见组约束).尽管约束被实现为通用约束,但通常的约定是形成一个组矩阵,用布尔指示符(或真正的或与10)为组矩阵中的每个元素。组约束具有属性GroupMatrix对于组成员矩阵,LowerGroup对于组的下限约束,和UpperGroup对于组的上限约束。

设置组约束使用PortfolioMAD函数

控件设置组约束的属性PortfolioMAD对象。假设你有一个由五种资产组成的投资组合,并希望确保前三种资产构成的投资组合不超过30%,那么你可以设置组约束:

G = [1 1 1 0 0];p = PortfolioMAD(“GroupMatrix”, G,“UpperGroup”, 0.3);disp(p.NumAssets) disp(p.GroupMatrix) disp(p.UpperGroup)
5 1 1 1 00 0.3000

群矩阵G也可以是逻辑矩阵,以便下面的代码实现相同的结果。

G =[真真真假假];p = PortfolioMAD(“GroupMatrix”, G,“UpperGroup”, 0.3);disp(p.NumAssets) disp(p.GroupMatrix) disp(p.UpperGroup)
5 1 1 1 00 0.3000

设置组约束使用setGroups而且addGroups功能

还可以使用设置组约束的属性setGroups.假设您有一个由五种资产组成的投资组合,并希望确保前三种资产占您投资组合的比例不超过30%。给定一个PortfolioMAD对象p,使用setGroups设置群组约束。

G =[真真真假假];p = PortfolioMAD;p = setGroups(p, G, [], 0.3);disp (p.NumAssets);disp (p.GroupMatrix);disp (p.UpperGroup);
5 1 1 1 00 0.3000

在本例中,您将设置LowerGroup物业为空([]).

假设您想要添加另一个组约束,以使奇数资产至少占您投资组合的20%。建立一个增广的群矩阵,为无约束的群边界引入无限界,或者使用addGroups函数来建立组约束。对于本例,为第二个组约束创建另一个组矩阵:

p = PortfolioMAD;G =[真真真假假];第一个组约束的%组矩阵p = setGroups(p, G, [], 0.3);G =[真假真假真];%组矩阵用于第二个组约束p = addGroups(p, G, 0.2);disp(p.NumAssets) disp(p.GroupMatrix) disp(p.LowerGroup) disp(p.UpperGroup)
5 1 1 1 00 1 0 1 0 1 0 1 -Inf 0.2000 0.3000 Inf
addGroups确定哪些边界是无界的,因此只需要关注想要设置的约束。

PortfolioMAD对象,setGroups,addGroups对象上实现标量展开LowerGroupUpperGroup属性中基于组矩阵的维度GroupMatrix.假设你有30种资产和6种资产类别,资产1-5、资产6 - 12、资产13-18、资产19-22、资产23-27和资产28-30构成你的每个资产类别,你希望每个资产类别在你的投资组合中的比例从0%下降到25%。让下面的组矩阵定义你的组,标量展开定义每个组的公共边界:

p = PortfolioMAD;G = blkdiag(真(1、5),真(7),真正的(1,6),真正的(1、4),真正的(1、5),真正的(1、3));p = setGroups(p, G, 0, 0.25);disp(p.NumAssets) disp(p.GroupMatrix) disp(p.LowerGroup) disp(p.UpperGroup)
30列1到13 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0列14到26日0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0列27到30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0.2500 0.2500 0.2500 0.2500 0.2500 - 0.2500

另请参阅

|||||||||

相关的例子

更多关于