创建投资组合对象
要创建一个完全指定的均值-方差投资组合优化问题,请实例化投资组合
对象使用投资组合
.有关使用时工作流的信息投资组合
对象,看到组合对象的工作流.
语法
使用投资组合
对象的实例投资组合
类。您可以使用投资组合
在几个方面。建立一个投资组合优化问题投资组合
对象,最简单的语法是:
p =投资组合;
投资组合
对象,p
,这样所有对象属性都为空。
的投资组合
对象还接受属性及其值的参数名值对参数的集合。的投资组合
对象使用通用语法接受公共属性的输入:
p = Portfolio('property1', value1, 'property2', value2,…);
如果一个投资组合
对象已经存在,则语法允许的第一个(且仅允许第一个参数)投资组合
作为一个已存在的对象,具有后续参数名称-值对参数,用于添加或修改属性。例如,给定一个现有的投资组合
对象p
,一般语法为:
p = Portfolio(p, 'property1', value1, 'property2', value2,…);
输入参数名不区分大小写,但必须完全指定。此外,还可以用其他参数名指定一些属性(参见属性名称的快捷方式).的投资组合
对象从输入中检测问题维度,一旦设置,后续输入可以进行各种标量或矩阵展开操作,从而简化制定问题的整个过程。此外,一个投资组合
对象是一个值对象,给定的投资组合p
,下面的代码创建了两个对象,p
而且问
,它们是截然不同的:
q = Portfolio(p,…)
投资组合问题充分性
均值-方差投资组合优化完全由投资组合
如果满足以下两个条件,则反对:
资产回报的时刻必须指定,使财产
AssetMean
包含有效的资产收益和属性的有限平均向量AssetCovar
包含一个有效的对称正半定矩阵,用于资产收益的协方差。通过设置与资产收益矩相关的属性,可以满足第一个条件。
可行组合的集合必须是一个非空的紧集,其中紧集是闭的和有界的。
第二个条件通过定义不同类型的约束以形成一组可行投资组合的大量属性集合来满足。由于这样的集合必须是有界的,因此可以施加显式或隐式的约束,以及若干函数,例如
estimateBounds
,提供方法来确保你的问题得到了恰当的表述。
虽然均值-方差投资组合优化的一般充分性条件超出了这两个条件,但是投资组合
在Financial Toolbox™中实现的对象隐式地处理所有这些附加条件。有关均值-方差投资组合优化的马科维茨模型的更多信息,请参见投资组合优化.
投资组合函数的例子
如果你创建一个投资组合
对象,p
,没有输入参数,您可以使用disp
:
p =投资组合;disp (p)
资产组合属性:BuyCost: [] SellCost: [] RiskFreeRate: [] AssetMean: [] AssetCovar: [] TrackingError: [] TrackingPort: [] Turnover: [] BuyTurnover: [] SellTurnover: [] Name: [] NumAssets: [] AssetList: [] InitPort: [] AInequality: [] bInequality: [] aquality: [] bEquality: [] LowerBound: [] UpperBound: [] UpperBudget: [] GroupMatrix: [] LowerGroup: [] UpperGroup: [] grouppa: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets: [] BoundType: []
所列出的方法提供了一种使用投资组合
对象。的集
函数提供了设置和修改属性集合的其他方法投资组合
对象。
使用作品集功能进行单步设置
您可以使用投资组合
对象直接建立一个“标准”投资组合优化问题,给定变量中的资产收益的均值和协方差米
而且C
:
M = [0.05;0.1;0.12;0.18);C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];p =组合(“assetmean”米,“assetcovar”C...“lowerbudget”, 1“upperbudget”, 1下界的, 0)
p = Portfolio with properties: BuyCost: [] SellCost: [] RiskFreeRate: [] AssetMean: [4×1 double] AssetCovar: [4×4 double] TrackingError: [] TrackingPort: [] Turnover: [] BuyTurnover: [] SellTurnover: [] Name: [] NumAssets: 4 AssetList: [] InitPort: [] [] AInequality: [] bInequality: [] AEquality: [] bEquality: [] LowerBound: [] LowerBudget: 1 UpperBudget: 1 GroupMatrix: [] LowerGroup: [] UpperGroup: [] grouppa: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets:[] MaxNumAssets: [] BoundType: []
下界
属性值自开始进行标量扩展AssetMean
而且AssetCovar
提供问题的维度。
你可以在函数中使用点表示法plotFrontier
.
p.plotFrontier
使用带有一系列步骤的投资组合函数
另一种方法可以完成同样的任务,即建立一个“标准”投资组合优化问题,给定变量中资产回报的均值和协方差米
而且C
(这也说明了参数名不区分大小写):
M = [0.05;0.1;0.12;0.18);C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];p =投资组合;p =组合(p,“assetmean”米,“assetcovar”C);p =组合(p,“lowerbudget”, 1“upperbudget”1);p =组合(p,下界的, 0);plotFrontier (p)
这种方式可以工作,因为调用投资组合
都是按这个顺序排列的。在本例中,调用初始化AssetMean
而且AssetCovar
提供问题的维度。如果最后执行此步骤,则必须显式地对下界
属性如下:
M = [0.05;0.1;0.12;0.18);C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];p =投资组合;p =组合(p,下界的, 0(大小(m)));p =组合(p,“LowerBudget”, 1“UpperBudget”1);p =组合(p,“AssetMean”米,“AssetCovar”C);plotFrontier (p)
的大小下界
但是,相反,输入一个标量参数投资组合
对象假设您正在定义一个单一资产问题,并在调用时产生一个错误,以设置具有四个资产的资产时刻。
属性名称的快捷方式
的投资组合
类的特定属性关联的较长参数名投资组合
对象。例如,而不是进入“assetcovar”
,投资组合
对象接受不区分大小写的名称“柯伐合金”
设置AssetCovar
属性在一个投资组合
对象。类中的单个属性对应每个较短的参数名投资组合
对象。唯一的例外是备用参数名“预算”
,表示LowerBudget
而且UpperBudget
属性。当“预算”
是用的,那么LowerBudget
而且UpperBudget
属性被设置为相同的值,以形成相等的预算约束。
属性名称的快捷方式
快捷键参数名称 |
等效参数/属性名 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
例如,这个调用投资组合
为属性使用这些快捷方式,与前面的例子等价:
M = [0.05;0.1;0.12;0.18);C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];p =组合(“的意思是”米,“柯伐合金”C“预算”, 1“磅”, 0);plotFrontier (p)
投资组合对象属性的直接设置
虽然不推荐,但你可以直接设置属性,但是不会对你的输入进行错误检查:
M = [0.05;0.1;0.12;0.18);C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];p =投资组合;p.NumAssets =元素个数(m); p.AssetMean = m; p.AssetCovar = C; p.LowerBudget = 1; p.UpperBudget = 1; p.LowerBound = zeros(size(m)); plotFrontier(p)
另请参阅
相关的例子
- 投资组合对象上的常见操作
- 使用默认值处理投资组合约束
- 资产配置案例研究
- 使用财务工具箱™的投资组合优化示例
- 具有半连续和基数约束的投资组合优化
- Black-Litterman投资组合优化使用财务工具箱™
- 利用因子模型优化投资组合
- 使用自定义目标使投资组合多样化
- 利用社会绩效指标优化投资组合