setBounds
设置范围为投资组合权重组合
语法
描述
设置范围为投资组合权重obj
= setBounds (obj
,下界
)投资组合
,PortfolioCVaR
,或PortfolioMAD
对象。有关相应的工作流使用这些不同的对象时,看到的组合对象的工作流,PortfolioCVaR对象的工作流,PortfolioMAD对象的工作流。
设置边界组合权重组合对象与一个额外的选择obj
= setBounds (obj
,下界
,UpperBound
)UpperBound
。
考虑到约束限制下界
和UpperBound
和“简单”
BoundType
重量,每在一个投资组合港口
必须满足以下几点:
下界< = < = UpperBound港
考虑到约束限制下界
和UpperBound
,“条件”
BoundType
重量,每在一个投资组合港口
必须满足以下几点:
端口= 0或下界< = < = UpperBound港
例子
设置绑定约束组合对象
假设您有一个平衡基金和股票,范围从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
设置绑定约束来定义“条件”
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
(半连续)约束集习=0
或0.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);
有条件的条件条件
设置绑定约束定义混合BoundTypes
对于一个投资组合对象
假设你有资产回报率的均值和协方差的三个资产组合:
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 < =x
1 < = 0.2;x
2 = 0或0.1 < =x
2 < = 0.5;x
或0.1 < = 3 = 0x
3 < = 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);
简单的条件条件
集MinNumAssets
约束条件为一个投资组合
对象
设置最低基数约束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
设置绑定约束PortfolioCVaR对象
假设您有一个平衡基金和股票,范围从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
设置绑定约束来定义“条件”
BoundType
约束PortfolioCVaR对象
假设您有一个平衡基金和股票,范围从50%到75%的投资组合和债券的范围可以从25%到50%的投资组合。设置绑定约束与半连续约束,平衡基金使用setBounds
与“条件”
BoundType
限制设置习=0.25
或0.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
设置绑定约束PortfolioMAD对象
假设您有一个平衡基金和股票,范围从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
设置绑定约束来定义“条件”
BoundType
约束PortfolioMAD对象
假设您有一个平衡基金和股票,范围从50%到75%的投资组合和债券的范围可以从25%到50%的投资组合。设置绑定约束与半连续约束,平衡基金使用setBounds
与“条件”
BoundType
限制设置习=0.25
或0.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
输入参数
obj
- - - - - -对象组合
对象
对象组合,使用指定的投资组合
,PortfolioCVaR
,或PortfolioMAD
对象。创建一个组合对象的更多信息,请参阅
数据类型:对象
下界
- - - - - -下界重量为每个资产
标量|向量
下界重量为每个资产,指定为一个标量或矢量投资组合
,PortfolioCVaR
,或PortfolioMAD
输入对象(obj
)。
请注意
如果任何一
下界
或UpperBound
输入为空[]
中相应的属性投资组合
,PortfolioCVaR
,或PortfolioMAD
对象被清除并设置[]
。如果
下界
或UpperBound
被指定为标量和NumAssets
存在或计算,然后进行标量扩张。的默认值NumAssets
是1
。如果两个
下界
和UpperBound
存在,他们不是命令正确,setBounds
必要时开关函数边界。如果
“条件”
BoundType
是指定的,下界
不能一个负值。
数据类型:双
UpperBound
- - - - - -重量上限为每一个资产
标量|向量
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:obj = setBounds (p, 0.02,“BoundType”、“条件”);
BoundType
- - - - - -为每个资产类型的界限的重量
“简单”
(默认)|特征向量和价值“简单”
或“条件”
|字符串值“简单”
或“条件”
|单元阵列特征向量的值“简单”
或“条件”
|字符串数组的值“简单”
或“条件”
为每个资产类型的界限重量,指定为逗号分隔组成的“BoundType”
和一个标量特征向量或字符串的值“简单”
或“条件”
或一个细胞特征向量的值的数组“简单”
或“条件”
。
“简单”
是下界
< = AssetWeight < =UpperBound
。“条件”
是下界
< = AssetWeight < =UpperBound
或AssetWeight = 0。警告
如果你指定要包括零约束范围(使用一个
“简单”
或“条件”
BoundType
),当你使用setMinMaxNumAssets
指定MinNumAssets
约束,然后使用一个估计
函数,模糊优化器来定义分配资产的最低要求。在这种情况下,优化器认为资产为零重量是一个有效的资产和优化收入分配,但警告称,分配比MinNumAssets
必需的。有关更多信息,请参见故障排除设置“条件”BoundType, MinNumAssets, MaxNumAssets约束。
数据类型:字符
|细胞
|字符串
NumAssets
- - - - - -投资组合的资产数量
1
(默认)|标量数值
投资组合的资产数量,指定为逗号分隔组成的“NumAssets”
和一个标量数值。
请注意
NumAssets
不能用于改变的维度投资组合
,PortfolioCVaR
,或PortfolioMAD
对象。
如果任何一
下界
或UpperBound
输入为空[]
中相应的属性投资组合
,PortfolioCVaR
,或PortfolioMAD
对象被清除并设置[]
。如果
下界
或UpperBound
被指定为标量和NumAssets
存在或可以估算,然后他们进行标量的扩张。的默认值NumAssets
是1
。如果两个
下界
和UpperBound
存在,他们不是命令正确,setBounds
必要时开关函数边界。
数据类型:双
输出参数
obj
——更新投资组合对象
对象
更新投资组合对象,作为一个返回投资组合
,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
另请参阅
getBounds
|setMinMaxNumAssets
|setSolverMINLP
|estimateAssetMoments
|estimateFrontier
|estimateFrontierByReturn
|estimateFrontierByRisk
|estimateFrontierLimits
|estimateMaxSharpeRatio
|estimatePortSharpeRatio
|estimatePortMoments
|estimatePortReturn
|estimatePortRisk
主题
- 使用“简单”绑定约束使用组合对象
- 使用“简单”绑定约束使用PortfolioCVaR对象
- 使用“简单”绑定约束使用PortfolioMAD对象
- 使用“条件”BoundType、MinNumAssets MaxNumAssets约束使用组合对象
- 使用“条件”BoundType、MinNumAssets MaxNumAssets约束使用PortfolioCVaR对象
- 使用“条件”BoundType、MinNumAssets MaxNumAssets约束使用PortfolioMAD对象
- 故障排除设置“条件”BoundType, MinNumAssets, MaxNumAssets约束
- 投资组合优化的例子使用金融工具箱™
- 投资组合优化与半连续和基数约束
- 投资组合优化使用组合对象
- 投资组合优化使用PortfolioCVaR对象
- 投资组合优化使用PortfolioMAD对象
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。