addInequality

加入线性不等式约束的投资组合权重存在的制约因素

描述

OBJ= addInequality(OBJAInequalitybInequality增加了对投资组合权重线性不等式约束为现有的约束投资组合PortfolioCVaR, 要么PortfolioMAD对象。有关使用这些不同的对象时,相应的工作流程的详细信息,请参阅项目组合对象工作流PortfolioCVaR对象工作流程PortfolioMAD对象工作流程

给出的线性不等式约束矩阵AInequality和矢量bInequality,在投资组合中每重量港口必须满足以下要求:

AInequality*Port=bInequality

该函数“栈”附加线性不等式约束到存在于输入组合对象的任何现有线性不等式约束。如果没有限制,这个功能是一样的setInequality

例子

全部收缩

设定一个线性不等式约束,以确保前三的资产组成至多一个投资组合的50%。然后添加其他线性不等式约束,以确保最后三个资产构成的投资组合中至少50%。

P =组合;A = [1 1 1 0 0];%第一不等式约束B = 0.5;P = setInequality(P,A,B);A = [0 0 -1 -1 -1];第二%不等式约束B = -0.5;P = addInequality(P,A,B);DISP(p.NumAssets);
DISP(p.AInequality);
1 1 1 0 0 0 0 -1 -1 -1
DISP(p.bInequality);
0.5000 -0.5000

设定一个线性不等式约束,以确保前三的资产组成至多一个投资组合的50%。然后添加其他线性不等式约束,以确保最后三个资产构成的投资组合中至少50%。

P = PortfolioCVaR;A = [1 1 1 0 0];%第一不等式约束B = 0.5;P = setInequality(P,A,B);A = [0 0 -1 -1 -1];第二%不等式约束B = -0.5;P = addInequality(P,A,B);DISP(p.NumAssets);
DISP(p.AInequality);
1 1 1 0 0 0 0 -1 -1 -1
DISP(p.bInequality);
0.5000 -0.5000

设定一个线性不等式约束,以确保前三的资产组成至多一个投资组合的50%。然后添加其他线性不等式约束,以确保最后三个资产构成的投资组合中至少50%。

P = PortfolioMAD;A = [1 1 1 0 0];%第一不等式约束B = 0.5;P = setInequality(P,A,B);A = [0 0 -1 -1 -1];第二%不等式约束B = -0.5;P = addInequality(P,A,B);DISP(p.NumAssets);
DISP(p.AInequality);
1 1 1 0 0 0 0 -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.setInequality([],[])

介绍了在R2011a