主要内容

addInequality

在现有约束条件的基础上,加入权重的线性不等式约束

描述

例子

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

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

不等式* Port <= b不等式

这个函数将额外的线性不等式约束“堆叠”到输入组合对象中存在的任何现有线性不等式约束上。如果不存在约束,则该函数与setInequality

例子

全部折叠

设置线性不等式约束,以确保前三种资产最多占投资组合的50%。然后添加另一个线性不等式约束,以确保最后三种资产至少占投资组合的50%。

p =投资组合;A = [1 1 1 0 0];%第一不等式约束b = 0.5;p = set不等式(p, A, b);A = [0 0 -1 -1];%次不等式约束b = -0.5;p = addinequal (p, A, b);disp (p.NumAssets);
5
disp (p.AInequality);
1 1 1 0 0 0 1 1 1 1
disp (p.bInequality);
0.5000 - -0.5000

设置线性不等式约束,以确保前三种资产最多占投资组合的50%。然后添加另一个线性不等式约束,以确保最后三种资产至少占投资组合的50%。

p = PortfolioCVaR;A = [1 1 1 0 0];%第一不等式约束b = 0.5;p = set不等式(p, A, b);A = [0 0 -1 -1];%次不等式约束b = -0.5;p = addinequal (p, A, b);disp (p.NumAssets);
5
disp (p.AInequality);
1 1 1 0 0 0 1 1 1 1
disp (p.bInequality);
0.5000 - -0.5000

设置线性不等式约束,以确保前三种资产最多占投资组合的50%。然后添加另一个线性不等式约束,以确保最后三种资产至少占投资组合的50%。

p = PortfolioMAD;A = [1 1 1 0 0];%第一不等式约束b = 0.5;p = set不等式(p, A, b);A = [0 0 -1 -1];%次不等式约束b = -0.5;p = addinequal (p, A, b);disp (p.NumAssets);
5
disp (p.AInequality);
1 1 1 0 0 0 1 1 1 1
disp (p.bInequality);
0.5000 - -0.5000

输入参数

全部折叠

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

数据类型:对象

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

请注意

如果出现错误AInequality是空的,bInequality非空的。

数据类型:

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

请注意

如果出现错误bInequality是空的,AInequality非空的。

数据类型:

输出参数

全部折叠

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

提示

  • 您还可以使用点符号来添加投资组合权重的线性不等式约束。

    obj = obj。addInequality (AInequality bInequality)

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

    obj = obj。set不等式([],[])

介绍了R2011a