组约束是可选的线性约束,它将资产分组在一起并强制组权重的界限(参见组约束).尽管约束是作为一般约束实现的,但通常的惯例是形成一个组矩阵,用布尔指标(或布尔指标)来标识特定组中每个资产的成员符合事实的
或假
或与1
或0
)表示组矩阵中的每个元素。组约束具有属性GroupMatrix
对于组成员矩阵,LowerGroup
对于群的下界约束,为UpperGroup
对于群的上界约束。
PortfolioCVaR
作用组约束的属性是通过PortfolioCVaR
对象。假设你有一个由5种资产组成的投资组合,并希望确保前3种资产占投资组合的比例不超过30%,那么你可以设置组约束:
G = [1 1 1 0 0];p = PortfolioCVaR (“组矩阵”, G,“UpperGroup”, 0.3); disp(p.NumAssets)disp(p.GroupMatrix)disp(p.UpperGroup)
5 1 1 1 00 0.3000
群矩阵G
也可以是逻辑矩阵,以便下面的代码实现相同的结果。
G =[真真真假假];p = PortfolioCVaR (“组矩阵”, G,“UpperGroup”, 0.3); disp(p.NumAssets)disp(p.GroupMatrix)disp(p.UpperGroup)
5 1 1 1 00 0.3000
setGroups
和addGroups
功能还可以使用设置组约束的特性setGroups
。假设您有五项资产的投资组合,并希望确保前三项资产在您的投资组合中所占比例不超过30%。给定PortfolioCVaR
对象p
使用setGroups
要设置组约束,请执行以下操作:
G=[true-false];p=PortfolioCVaR;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 = PortfolioCVaR;G =[真真真假假];%组矩阵为第一组约束p = setGroups(p, G, [], 0.3);G =[真假真假];%第二组约束的组矩阵p = addGroups(p, G, 0.2);p.NumAssets (p.GroupMatrix) p.LowerGroup (p.UpperGroup)
5 1 1 1 00 1 0 1 0 1 -Inf 0.2000 0.3000 Inf
addGroups
确定哪些边界是无界的,因此只需关注要设置的约束即可。
的PortfolioCVaR
对象setGroups
和addGroups
对象上实现标量展开LowerGroup
或UpperGroup
基于属性中组矩阵的维数的属性GroupMatrix
.假设你有一个包含6种资产类别的30种资产的宇宙,其中资产1-5、资产6 - 12、资产13-18、资产19-22、资产23-27和资产28-30组成了每一种资产类别,你希望每一种资产在你的投资组合中所占的比例从0%降至25%。让下面的组矩阵定义你的组,标量展开定义每个组的公共边界:
p=PortfolioCVaR;G=blkdiag(真(1,5)、真(1,7)、真(1,6)、真(1,4)、真(1,5)、真(1,3));p=设定组(p,G,0,0.25);disp(p.NumAssets)disp(p.GroupMatrix)disp(p.LowerGroup)disp(p.UpperGroup)
30列1到16 1 1 1 1 1 0 0 0 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 0 0 0 1 1 1 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 0 0 0 0 0 0 0 0 0列17到30 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 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 00 0 0 0 0 0 1 1 1 1 1 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
PortfolioCVaR
|setBounds
|setBudget
|setDefaultConstraints
|setEquality
|setGroupRatio
|setGroups
|集不等式
|Setoneway营业额
|周转率