使用投资组合对象使用组约束
组约束是可选的线性约束,将资产组合在一起并在组权重上执行界限(请参阅组约束)。尽管这些约束是作为一般约束实现的,但通常的惯例是形成一个组矩阵,该矩阵标识带有布尔指标的特定组中每个资产的成员资格(要么真的
或者错误的
或与1
或者0
)对于组矩阵中的每个元素。组约束具有属性GroupMatrix
对于小组成员矩阵,下组
对于对组的较低限制,以及上群
对于对组的上限约束。
使用文件夹
功能
组约束的属性是通过文件夹
目的。假设您拥有五个资产的投资组合,并希望确保前三个资产构成不超过投资组合的30%,那么您可以设置组约束:
g = [1 1 1 0 0];p =投资组合('groupmatrix', G,“上群”,0.3);disp(p.numassets)disp(p.groupmatrix)disp(p.uppergroup)
5 1 1 1 0 0 0.3000
组矩阵G
也可以是逻辑矩阵,因此以下代码可以实现相同的结果。
g = [true true true false];p =投资组合('groupmatrix', G,“上群”,0.3);disp(p.numassets)disp(p.groupmatrix)disp(p.uppergroup)
5 1 1 1 0 0 0.3000
使用setGroups
和addGroups
功能
您还可以使用使用setGroups
。假设您拥有五个资产的投资组合,并希望确保前三项资产占投资组合的30%。给定文件夹
目的p
, 利用setGroups
设置组约束:
g = [true true true false];p = portfolio;p = setGroups(p,g,[],0.3);disp(p.numassets)disp(p.groupmatrix)disp(p.uppergroup)
5 1 1 1 0 0 0.3000
在此示例中,您将设置下组
属性为空([]
)。
假设您要添加另一组约束来制作奇数资产至少占投资组合的20%。设置一个增强组矩阵,并引入无限群体界限或使用无限的界限或使用addGroups
功能以建立组约束。对于此示例,为第二组约束创建另一个组矩阵:
p = portfolio;g = [true true true false];第一组约束的%组矩阵p = setGroups(p,g,[],0.3);g = [true false true false true];第二组约束的%组矩阵p = addGroups(p,g,0.2);disp(p.numassets)disp(p.groupmatrix)disp(p.lowergroup)disp(p.uppergroup)
5 1 1 1 1 0 0 1 0 1 0 1 -INF 0.2000 0.3000 INF
addGroups
确定哪些范围是无限的,因此您只需要专注于要设置的约束。
这文件夹
对象和setGroups
和addGroups
在任一方面实施标量扩展下组
或者上群
基于属性中组矩阵的尺寸的属性GroupMatrix
。假设您拥有30个资产的宇宙,其中有六个资产类别,例如资产1-5,资产6-12,资产13-18,资产19-22,资产23-27和资产28-30构成了您的六个资产类别,您希望每个资产类别从投资组合的0%下降到25%。让以下组矩阵定义您的组,并标量扩展定义每个组的共同边界:
p = portfolio;g = blkdiag(true(1,5),true(1,7),true(1,6),true(1,4),true(1,5),true(1,3));p = setGroups(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 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 1 1 1 1 1 1 1 1 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 1 11 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00列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 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 1 11 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 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.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.25000.2500
也可以看看
文件夹
|setDefaultConstraints
|setbounds
|setBudget
|setGroups
|setGroupratio
|固定性
|setinequality
|定居
|setonewaytournover
|SetTrackingPort
|setTrackingerror
相关示例
- 创建投资组合对象
- 使用默认设置处理投资组合约束
- 验证投资组合对象的投资组合问题
- 估计投资组合对象的整个有效边界的有效投资组合
- 估计投资组合对象的有效边界
- 使用投资组合对象的约束规范
- 资产分配案例研究
- 投资组合优化示例
- 投资组合优化具有半连续和基数约束
- 黑色列者投资组合优化
- 使用因子模型优化投资组合
- 使用社会绩效指标优化投资组合
- 投资组合的多元化