主要内容

创建组合对象

要创建一个完全指定的均值-方差投资组合优化问题,实例化投资组合对象使用投资组合。工作流在使用信息投资组合对象,看到组合对象的工作流

语法

使用投资组合创建一个对象的一个实例投资组合类。您可以使用投资组合在几个方面。建立一个投资组合优化问题中投资组合对象,最简单的语法是:

p =投资组合;
这个语法创建一个投资组合对象,p,这样所有对象属性是空的。

投资组合对象也接受参数名称-值对集合的参数属性和它们的值。的投资组合对象接受输入的公共属性一般的语法:

p =组合(property1, value1, property2, value2,…);

如果一个投资组合对象已经存在,语法允许第一(只有第一个参数)投资组合与后续的参数名称-值对现有对象参数的属性被添加或修改。例如,现有的投资组合对象p一般的语法是:

p =组合(p ' property1 value1, property2, value2,…);

输入参数名称不区分大小写,但必须完全指定。此外,一些属性可以指定替代参数名称(见快捷方式的属性名)。的投资组合对象检测问题从输入和维度,一旦设置好了,后续的输入可以接受各种标量或矩阵扩张操作,简化整个过程制定一个问题。此外,一个投资组合对象是一个值对象,给出投资组合p下面的代码创建了两个对象,p,这是不同的:

q =组合(p,…)

投资组合问题充分性

均值-方差投资组合优化是完全指定的投资组合对象如果满足这两个条件:

  • 资产回报的时刻必须指定的属性AssetMean包含一个有效的资产回报有限均值向量和财产AssetCovar包含一个有效的对称半正定矩阵的协方差的资产回报。

    第一个条件是满足通过设置属性相关的资产回报的时刻。

  • 一组可行的投资组合必须是一个非空的紧集,一个紧集是封闭的、有界的。

    第二个条件是满足于一个广泛的属性集合定义不同类型的约束,形成一套切实可行的投资组合。因为这样集必须是有界的,显式或隐式约束可以实施,和几个功能,如estimateBounds提供方法来确保你的问题是正确制定。

虽然通用充分性条件均值-方差投资组合优化超越这两个条件,投资组合对象中实现金融工具箱™隐式地处理所有这些额外的条件。更多信息在马科维茨均值-方差投资组合优化模型,明白了投资组合优化

投资组合函数的例子

如果您创建了一个投资组合对象,p,没有输入参数,您可以使用显示disp:

p =投资组合;disp (p)
投资组合的属性:BuyCost: [] SellCost: [] RiskFreeRate: [] AssetMean: [] AssetCovar: [] TrackingError: [] TrackingPort:[]营业额:[]BuyTurnover: [] SellTurnover:[]的名字:[]NumAssets: [] AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality:[]下界:[]UpperBound: [] LowerBudget: [] UpperBudget: [] GroupMatrix: [] LowerGroup: [] UpperGroup: [] GroupA: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets: [] MaxNumAssets: [] 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 =组合的属性:BuyCost: [] SellCost: [] RiskFreeRate: [] AssetMean:[4×1双]AssetCovar:[4×4双]TrackingError: [] TrackingPort:[]营业额:[]BuyTurnover: [] SellTurnover:[]的名字:[]NumAssets: 4 AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality:[]下界:[4×1双]UpperBound: [] LowerBudget: 1 UpperBudget: 1 GroupMatrix: [] LowerGroup: [] UpperGroup: [] GroupA: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets: [] MaxNumAssets: [] BoundType: []
下界属性值进行标量扩张AssetMeanAssetCovar提供的尺寸问题。

可以使用点符号的功能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)

这种方式工作,因为调用投资组合在这个特定的顺序。在这种情况下,调用初始化AssetMeanAssetCovar提供的尺寸问题。如果你做这个步骤,您必须显式地维度下界属性如下:

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属性在一个投资组合对象。每个短参数名称对应的一个属性投资组合对象。一个例外是替代参数名称“预算”,这意味着两个LowerBudgetUpperBudget属性。当“预算”使用,那么LowerBudgetUpperBudget属性设置为相同的值,形成一个平等的预算约束。

快捷方式的属性名

快捷键参数名称

等效参数/属性名

ae

AEquality

人工智能

AInequality

柯伐合金

AssetCovar

assetnames资产

AssetList

的意思是

AssetMean

bEquality

bi

bInequality

集团

GroupMatrix

下界

n全国矿工工会

NumAssets

rfr

RiskFreeRate

乌兰巴托

UpperBound

预算

UpperBudgetLowerBudget

例如,这个调用投资组合使用这些快捷方式属性和相当于前面的例子:

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 = numel(m); p.AssetMean = m; p.AssetCovar = C; p.LowerBudget = 1; p.UpperBudget = 1; p.LowerBound = zeros(size(m)); plotFrontier(p)

另请参阅

|

相关的例子

更多关于

外部网站