主要内容

使用组合对象处理组比率约束

组比率约束是可选的线性约束,维持资产组之间比例关系的边界(参见群体比率约束).尽管约束是作为一般约束实现的,但通常的约定是指定一对组矩阵,用布尔指示符(或真正的或与10)为每个组矩阵中的每个元素。目标是确保基本组与比较组的比例在指定的范围内。组比约束具有以下属性:

  • GroupA对于基隶属矩阵

  • GroupB对于比较隶属度矩阵

  • LowerRatio对于基团比例的下界约束

  • UpperRatio对于组的比例的上限约束

设置组比约束投资组合函数

属性设置组比率约束的属性投资组合对象。例如,假设您希望投资组合中金融公司与非金融公司的比例永远不超过50%。假设你有六项资产,分别是三家金融公司(资产1-3)和三家非金融公司(资产4-6)。设置分组比例约束。

Ga = [1 1 1 0 0 0];%金融公司Gb = [0 0 0 1 1 1];%非金融公司p =投资组合(“GroupA”遗传算法,“GroupB”、GB、“UpperRatio”, 0.5);disp(p.NumAssets) disp(p.GroupA) disp(p.GroupB) disp(p.UpperRatio)
6 1 1 1 000 00 1 1 1 0.5000

组矩阵遗传算法而且GB在这个例子中可以用逻辑矩阵真正的而且产生相同结果的元素:

GA = [true true true false false false];%金融公司GB = [false false false true true true];%非金融公司p =投资组合(“GroupA”遗传算法,“GroupB”、GB、“UpperRatio”, 0.5);disp(p.NumAssets) disp(p.GroupA) disp(p.GroupB) disp(p.UpperRatio)
6 1 1 1 000 00 1 1 1 0.5000

设置组比约束setGroupRatio而且addGroupRatio功能

还可以使用以下命令设置组比率约束的属性setGroupRatio.例如,假设您希望投资组合中金融公司与非金融公司的比例永远不超过50%。假设你有六项资产,分别是三家金融公司(资产1-3)和三家非金融公司(资产4-6)。给定一个投资组合对象p,使用setGroupRatio设置组约束。

GA = [true true true false false false];%金融公司GB = [false false false true true true];%非金融公司p =投资组合;p = setGroupRatio(p, GA, GB, [], 0.5);disp(p.NumAssets) disp(p.GroupA) disp(p.GroupB) disp(p.UpperRatio)
6 1 1 1 000 00 1 1 1 0.5000
在本例中,您将设置LowerRatio属性为空([]).

假设您希望添加另一个组比率约束,以确保奇数资产的权重至少占投资组合中非金融资产权重的20%。可以设置增广群比矩阵,并为无约束群比边界引入无限边界,或者可以使用addGroupRatio函数构建组比率约束。在本例中,为第二个组约束创建另一个组矩阵:

p =投资组合;GA = [true true true false false false];%金融公司GB = [false false false true true true];%非金融公司p = setGroupRatio(p, GA, GB, [], 0.5);GA = [true false true false true false true false];%奇数公司GB = [false false false true true true];%非金融公司p = addGroupRatio(p, GA, GB, 0.2);disp(p.NumAssets) disp(p.GroupA) disp(p.GroupB) disp(p.LowerRatio) disp(p.UpperRatio)
6 1 1 1 000 1 0 1 0 1 000 0 1 1 1 1 000 1 1 1 1 1 000 1 1 1 1 -Inf 0.2000 0.5000 Inf
请注意,addGroupRatio确定哪些边界是无界的,因此您只需要关注想要设置的约束。

投资组合对象,setGroupRatio,addGroupRatio对象上实现标量展开LowerRatioUpperRatio中基于组矩阵维数的属性GroupA而且GroupB属性。

另请参阅

|||||||||||

相关的例子

更多关于

外部网站