addEquality

在现有约束条件下,为组合权重添加线性等式约束条件

描述

例子

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

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

AEquality * Port = bEquality

此函数将额外的线性相等约束“堆叠”到输入组合对象中存在的任何现有线性相等约束上。如果不存在约束,则此方法与setEquality

例子

全部折叠

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

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

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

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

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

p = PortfolioMAD;A = [1 1 1 0 0];%第一等式约束b = 0.5;p = setEquality(p, A, b);A = [0 0 1 1 1];第二等式约束b = 0.5;p = add (p, A, b);disp (p.NumAssets);
5
disp (p.AEquality);
1 1 1 0 0 0 1 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