主要内容

addEquality

将投资组合权重的线性相等约束添加到现有约束中

描述

例子

obj= addEquality (objAEqualitybEquality的现有约束中添加组合权重的线性相等约束投资组合PortfolioCVaR,或PortfolioMAD对象。有关使用这些不同对象时各自工作流的详细信息,请参见投资组合对象工作流对象工作流,PortfolioMAD对象工作流

给定一个线性等式约束矩阵AEquality和向量bEquality投资组合中的每一个权重港口必须满足以下条件:

aquality * Port = bEquality

该函数将附加的线性等式约束“堆栈”到输入组合对象中存在的任何现有线性等式约束上。如果不存在约束,此方法与setEquality

例子

全部折叠

使用addEquality方法创建线性等式约束。添加另一个线性等式约束,以确保最后三个资产构成投资组合的50%。

p =投资组合;A = [1 1 1 0 0];第一个等式约束B = 0.5;p = setquality (p, A, b);A = [0 0 1 1 1];第二个等式约束B = 0.5;addEquality(p, A, b);disp (p.NumAssets);
5
disp (p.AEquality);
1 1 1 0 0 0 0 1 1 1
disp (p.bEquality);
0.5000 - 0.5000

使用addEquality方法创建线性等式约束。添加另一个线性等式约束,以确保最后三个资产构成投资组合的50%。

p = PortfolioCVaR;A = [1 1 1 0 0];第一个等式约束B = 0.5;p = setquality (p, A, b);A = [0 0 1 1 1];第二个等式约束B = 0.5;addEquality(p, A, b);disp (p.NumAssets);
5
disp (p.AEquality);
1 1 1 0 0 0 0 1 1 1
disp (p.bEquality);
0.5000 - 0.5000

使用addEquality方法创建线性等式约束。添加另一个线性等式约束,以确保最后三个资产构成投资组合的50%。

p = PortfolioMAD;A = [1 1 1 0 0];第一个等式约束B = 0.5;p = setquality (p, A, b);A = [0 0 1 1 1];第二个等式约束B = 0.5;addEquality(p, A, b);disp (p.NumAssets);
5
disp (p.AEquality);
1 1 1 0 0 0 0 1 1 1
disp (p.bEquality);
0.5000 - 0.5000

输入参数

全部折叠

对象的投资组合,指定使用投资组合PortfolioCVaR,或PortfolioMAD对象。有关创建投资组合对象的更多信息,请参见

数据类型:对象

线性等式约束,指定为矩阵。

请注意

如果出现以下情况,则会产生错误AEquality为空,并且bEquality非空的。

数据类型:

线性等式约束,指定为向量。

请注意

如果出现以下情况,则会产生错误bEquality为空,并且AEquality非空的。

数据类型:

输出参数

全部折叠

更新的投资组合对象,返回为投资组合PortfolioCVaR,或PortfolioMAD对象。有关创建投资组合对象的更多信息,请参见

提示

  • 您还可以使用点表示法为投资组合权重添加线性等式约束。

    Obj = Obj。addEquality (AEquality bEquality)

  • 您还可以使用点表示法从投资组合对象中删除线性等式约束。

    Obj = Obj。setEquality([], [])

版本历史

在R2011a中引入

Baidu
map