主要内容

setBounds

设置范围为投资组合权重组合

描述

例子

obj= setBounds (obj,下界)设置范围为投资组合权重投资组合,PortfolioCVaR,或PortfolioMAD对象。有关相应的工作流使用这些不同的对象时,看到的组合对象的工作流,PortfolioCVaR对象的工作流,PortfolioMAD对象的工作流

例子

obj= setBounds (___,名称,值)指定选项使用一个或多个名称-值对参数除了输入参数在前面的语法,包括BoundType作为“简单”“条件”

例子

obj= setBounds (obj,下界,UpperBound)设置边界组合权重组合对象与一个额外的选择UpperBound

考虑到约束限制下界UpperBound“简单”BoundType重量,每在一个投资组合港口必须满足以下几点:

下界< = < = UpperBound港

考虑到约束限制下界UpperBound,“条件”BoundType重量,每在一个投资组合港口必须满足以下几点:

端口= 0或下界< = < = UpperBound港

例子

obj= setBounds (___,名称,值)指定选项使用一个或多个名称-值对参数除了输入参数在前面的语法,包括BoundType作为“简单”“条件”

例子

全部折叠

假设您有一个平衡基金和股票,范围从50%到75%的投资组合和债券的范围可以从25%到50%的投资组合。使用setBounds设置绑定约束平衡基金。注意,这个设置默认“简单”BoundType负责执行0.5 < = x1 < = 0.75、0.25 < = x2 < = 0.5。

磅= (0.5;0.25);乌兰巴托= (0.75;0.5);p =投资组合;p = setBounds (p,磅,乌兰巴托);disp (p.NumAssets);
2
disp (p.LowerBound);
0.5000 - 0.2500
disp (p.UpperBound);
0.7500 - 0.5000

假设你有资产回报率的均值和协方差的三个资产组合:

AssetMean = (0.0101110;0.0043532;0.0137058);AssetCovar = [0.00324625 0.00022983 0.00420395;0.00022983 0.00049937 0.00019247;0.00420395 0.00019247 0.00764097);

以下使用setBounds“条件”BoundType(半连续)约束集=00.02< =< =0.5对所有=1,……NumAssets

p =组合(“AssetMean”AssetMean,“AssetCovar”,AssetCovar);p = setBounds (p, 0.02, 0.5,“BoundType”,“条件”,“NumAssets”3)
p =组合的属性:BuyCost: [] SellCost: [] RiskFreeRate: [] AssetMean: x1双[3]AssetCovar: [3 x3双]TrackingError: [] TrackingPort:[]营业额:[]BuyTurnover: [] SellTurnover:[]的名字:[]NumAssets: 3 AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality:[]下界:x1双[3]UpperBound: x1双[3]LowerBudget: [] UpperBudget: [] GroupMatrix: [] LowerGroup: [] UpperGroup: [] GroupA: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets: [] MaxNumAssets: [] BoundType: [3 x1分类)
disp (p.LowerBound);
0.0200 0.0200 0.0200
disp (p.UpperBound);
0.5000 0.5000 0.5000
disp (p.BoundType);
有条件的条件条件

假设你有资产回报率的均值和协方差的三个资产组合:

AssetMean = (0.0101110;0.0043532;0.0137058);AssetCovar = [0.00324625 0.00022983 0.00420395;0.00022983 0.00049937 0.00019247;0.00420395 0.00019247 0.00764097);

以下使用setBounds“简单”“条件”BoundType约束条件为所有=1,……NumAssets

p =组合(“AssetMean”AssetMean,“AssetCovar”,AssetCovar);p = setBounds (p, 0.1, 0.5,“BoundType”,(“简单”;“条件”;“条件”])
p =组合的属性:BuyCost: [] SellCost: [] RiskFreeRate: [] AssetMean: x1双[3]AssetCovar: [3 x3双]TrackingError: [] TrackingPort:[]营业额:[]BuyTurnover: [] SellTurnover:[]的名字:[]NumAssets: 3 AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality:[]下界:x1双[3]UpperBound: x1双[3]LowerBudget: [] UpperBudget: [] GroupMatrix: [] LowerGroup: [] UpperGroup: [] GroupA: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets: [] MaxNumAssets: [] BoundType: [3 x1分类)
disp (p.LowerBound);
0.1000 0.1000 0.1000
disp (p.UpperBound);
0.5000 0.5000 0.5000
disp (p.BoundType);
简单的条件条件

您可以使用供应上下边界向量,每个资产定义不同的值。以下-0.8 < =x1 < = 0.2;x2 = 0或0.1 < =x2 < = 0.5;x或0.1 < = 3 = 0x3 < = 0.5。请注意,如“简单”BoundType,资产可以作为短期或长期的立场。然而,当使用“条件”BoundType,资产只能多头仓位。

p = setBounds (p (-0.8, 0.1, 0.1), (-0.2, 0.5, 0.5),“BoundType”,(“简单”;“条件”;“条件”]);disp (p.LowerBound);
-0.8000 0.1000 0.1000
disp (p.UpperBound);
-0.2000 0.5000 0.5000
disp (p.BoundType);
简单的条件条件

设置最低基数约束three-asset投资组合的均值和协方差值的资产回报。

AssetMean = (0.0101110;0.0043532;0.0137058);AssetCovar = [0.00324625 0.00022983 0.00420395;0.00022983 0.00049937 0.00019247;0.00420395 0.00019247 0.00764097);p =组合(“AssetMean”AssetMean,“AssetCovar”,AssetCovar);p = setDefaultConstraints (p);

当处理一个投资组合对象,setMinMaxNumAssets功能使您能够设置限制资产投资的数量。这些限制也被称为基数约束。当管理一个投资组合,是很常见的,你想投资至少一定数量的资产。此外,你也应该清楚地定义每个投资资产的重量要求。您可以使用setBounds与一个“条件”BoundType。如果你不指定一个“条件”BoundType,优化器不能理解,不能制定资产投资资产MinNumAssets约束。

下面的例子至少指定两个资产投资和投资应该大于16%。

p = setMinMaxNumAssets (p 2 []);p = setBounds (p, 0.16,“BoundType”,“条件”);

使用estimateFrontierByReturn估计最优投资组合和有针对性的投资组合的回报。

pwgt = estimateFrontierByReturn (p [0.008, 0.01])
pwgt =3×20.2861 0.3967 0.5001 0.2437 0.2138 0.3595

假设您有一个平衡基金和股票,范围从50%到75%的投资组合和债券的范围可以从25%到50%的投资组合。设置绑定约束平衡基金。

磅= (0.5;0.25);乌兰巴托= (0.75;0.5);p = PortfolioCVaR;p = setBounds (p,磅,乌兰巴托);disp (p.NumAssets);
2
disp (p.LowerBound);
0.5000 - 0.2500
disp (p.UpperBound);
0.7500 - 0.5000

假设您有一个平衡基金和股票,范围从50%到75%的投资组合和债券的范围可以从25%到50%的投资组合。设置绑定约束与半连续约束,平衡基金使用setBounds“条件”BoundType限制设置=0.250.5< =< =0.5或0.75对所有=1,……NumAssets

磅= (0.5;0.25);乌兰巴托= (0.75;0.5);p = PortfolioCVaR;p = setBounds (p,磅,乌兰巴托,“BoundType”,(“条件”;“条件”]);disp (p.NumAssets);
2
disp (p.LowerBound);
0.5000 - 0.2500
disp (p.UpperBound);
0.7500 - 0.5000

假设您有一个平衡基金和股票,范围从50%到75%的投资组合和债券的范围可以从25%到50%的投资组合。设置绑定约束平衡基金。

磅= (0.5;0.25);乌兰巴托= (0.75;0.5);p = PortfolioMAD;p = setBounds (p,磅,乌兰巴托);disp (p.NumAssets);
2
disp (p.LowerBound);
0.5000 - 0.2500
disp (p.UpperBound);
0.7500 - 0.5000

假设您有一个平衡基金和股票,范围从50%到75%的投资组合和债券的范围可以从25%到50%的投资组合。设置绑定约束与半连续约束,平衡基金使用setBounds“条件”BoundType限制设置=0.250.5< =< =0.5或0.75对所有=1,……NumAssets

磅= (0.5;0.25);乌兰巴托= (0.75;0.5);p = PortfolioMAD;p = setBounds (p,磅,乌兰巴托,“BoundType”,(“条件”;“条件”]);disp (p.NumAssets);
2
disp (p.LowerBound);
0.5000 - 0.2500
disp (p.UpperBound);
0.7500 - 0.5000

输入参数

全部折叠

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

数据类型:对象

下界重量为每个资产,指定为一个标量或矢量投资组合,PortfolioCVaR,或PortfolioMAD输入对象(obj)。

请注意

  • 如果任何一下界UpperBound输入为空[]中相应的属性投资组合,PortfolioCVaR,或PortfolioMAD对象被清除并设置[]

  • 如果下界UpperBound被指定为标量和NumAssets存在或计算,然后进行标量扩张。的默认值NumAssets1

  • 如果两个下界UpperBound存在,他们不是命令正确,setBounds必要时开关函数边界。

  • 如果“条件”BoundType是指定的,下界不能一个负值。

数据类型:

(可选)上限体重对于每个资产,指定为一个标量或矢量投资组合,PortfolioCVaR,或PortfolioMAD输入对象(obj)。

请注意

  • 如果任何一下界UpperBound输入为空[]中相应的属性投资组合,PortfolioCVaR,或PortfolioMAD对象被清除并设置[]

  • 如果下界UpperBound被指定为标量和NumAssets存在或计算,然后进行标量扩张。的默认值NumAssets1

  • 如果两个下界UpperBound存在,他们不是命令正确,setBounds必要时开关函数边界。

  • 如果“条件”BoundType是指定的,UpperBound不能一个负值。

数据类型:

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:obj = setBounds (p, 0.02,“BoundType”、“条件”);

为每个资产类型的界限重量,指定为逗号分隔组成的“BoundType”和一个标量特征向量或字符串的值“简单”“条件”或一个细胞特征向量的值的数组“简单”“条件”

  • “简单”下界< = AssetWeight < =UpperBound

  • “条件”下界< = AssetWeight < =UpperBound或AssetWeight = 0。

    警告

    如果你指定要包括零约束范围(使用一个“简单”“条件”BoundType),当你使用setMinMaxNumAssets指定MinNumAssets约束,然后使用一个估计函数,模糊优化器来定义分配资产的最低要求。在这种情况下,优化器认为资产为零重量是一个有效的资产和优化收入分配,但警告称,分配比MinNumAssets必需的。有关更多信息,请参见故障排除设置“条件”BoundType, MinNumAssets, MaxNumAssets约束

数据类型:字符|细胞|字符串

投资组合的资产数量,指定为逗号分隔组成的“NumAssets”和一个标量数值。

请注意

NumAssets不能用于改变的维度投资组合,PortfolioCVaR,或PortfolioMAD对象。

  • 如果任何一下界UpperBound输入为空[]中相应的属性投资组合,PortfolioCVaR,或PortfolioMAD对象被清除并设置[]

  • 如果下界UpperBound被指定为标量和NumAssets存在或可以估算,然后他们进行标量的扩张。的默认值NumAssets1

  • 如果两个下界UpperBound存在,他们不是命令正确,setBounds必要时开关函数边界。

数据类型:

输出参数

全部折叠

更新投资组合对象,作为一个返回投资组合,PortfolioCVaR,或PortfolioMAD对象。

提示

您还可以使用点符号建立投资组合权重的界限。

obj = obj。setBounds(LowerBound, UpperBound, Name,Value);

如果任何下界,UpperBound,或BoundType输入为空[],相应的属性组合对象被清除并设置[]。如果BoundType是清除[],默认的绑定类型“简单”

p = setBounds (p,下界,[],“BoundType”, []);

重置投资组合对象是一个持续的问题,运行以下:

p = setMinMaxNumAssets (p [] []);p = setBounds (p, p。下界,p。UpperBound,“BoundType”,“简单”);

版本历史

介绍了R2011a