使用PortfolioMAD对象处理组约束
组约束是可选的线性约束,它将资产分组在一起,并强制组权值的边界(参见组约束).尽管约束被实现为通用约束,但通常的约定是形成一个组矩阵,用布尔指示符(或真正的
或假
或与1
或0
)为组矩阵中的每个元素。组约束具有属性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
对象上实现标量展开LowerGroup
或UpperGroup
属性中基于组矩阵的维度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
另请参阅
PortfolioMAD
|setDefaultConstraints
|setBounds
|setBudget
|setGroups
|setGroupRatio
|setEquality
|setInequality
|setTurnover
|setOneWayTurnover
相关的例子
- 使用PortfolioMAD Object为投资组合权重设置默认约束
- 创建portfolio omad对象
- 验证MAD投资组合问题
- PortfolioMAD对象沿整个边界估计有效投资组合
- 为PortfolioMAD对象估计有效边界
- 资产回报和使用PortfolioMAD对象的场景