主要内容

创建Portfolio对象

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

语法

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

p =投资组合;
此语法创建一个投资组合对象,p,使所有对象属性为空。

投资组合对象还接受属性及其值的参数名-值对参数的集合。的投资组合对象使用通用语法接受公共属性的输入:

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

如果一个投资组合对象已经存在时,语法允许的第一个(且仅允许第一个参数)投资组合为一个已存在的对象,具有要添加或修改的属性的后续参数名称-值对参数。例如,给定一个现有的投资组合对象p,一般语法为:

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

输入参数名不区分大小写,但必须完全指定。此外,可以使用其他参数名指定几个属性(参见属性名的快捷方式).的投资组合对象从输入中检测问题维度,一旦设置好,后续输入就可以进行各种标量或矩阵展开操作,从而简化整个过程以确定问题。此外,a投资组合对象是一个值对象,因此,给定portfoliop,下面的代码创建了两个对象,p而且,它们是不同的:

q =投资组合(p,…)

投资组合问题充分性

均值-方差投资组合优化完全由投资组合如果满足以下两个条件:

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

    第一个条件是通过设置与资产收益时刻相关的属性来满足的。

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

    第二个条件通过定义不同类型的约束以形成一组可行组合的属性的广泛集合来满足。由于这样的集合必须是有界的,因此可以施加显式或隐式约束,以及一些函数,例如estimateBounds,提供方法来确保你的问题被恰当地表述。

虽然均值-方差投资组合优化的一般充分性条件超出了这两个条件,但是投资组合在Financial Toolbox™中实现的对象隐式地处理所有这些附加条件。有关均值-方差投资组合优化的马科维茨模型的更多信息,请参见投资组合优化

组合函数示例

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

p =投资组合;disp (p)
带属性的组合:BuyCost: [] SellCost: [] RiskFreeRate: [] AssetMean: [] AssetCovar: [] TrackingError: [] TrackingPort:[]周转:[]BuyTurnover: [] SellTurnover:[]名称:[]NumAssets: [] AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality: [] LowerBound: [] UpperBound: [] UpperBound: [] UpperBudget: [] UpperBudget: [] GroupMatrix: [] LowerGroup: [] UpperGroup: [] GroupA: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets: [] MaxNumAssets: [] BoundType: []

所列出的方法提供了一种方法来设置一个组合优化问题投资组合对象。的属性中的属性集合提供了额外的设置和修改方法投资组合对象。

使用Portfolio函数进行单步设置

您可以使用投资组合对象直接建立了一个“标准”的投资组合优化问题,给出了资产收益的均值和协方差中的变量而且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 double] AssetCovar: [4×4 double] TrackingError: [] TrackingPort: [] Turnover: [] BuyTurnover: [] SellTurnover:[]名称:[]NumAssets: 4 AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality: [] LowerBound: [] UpperBudget: 1 UpperBudget: 1 GroupMatrix: [] LowerGroup: [] UpperGroup: [] GroupA: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets:[] MaxNumAssets: [] BoundType: []
下界属性值自那时起进行标量展开AssetMean而且AssetCovar提供问题的维度。

可以对函数使用点表示法plotFrontier

p.plotFrontier

按步骤顺序使用Portfolio函数

另一种方法可以完成同样的任务,即建立一个“标准”投资组合优化问题,给定变量中资产回报的平均值和协方差而且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属性被设置为相同的值以形成相等的预算约束。

属性名的快捷方式

快捷参数名称

等效参数/属性名

ae

AEquality

人工智能

AInequality

柯伐合金

AssetCovar

assetnames资产

AssetList

的意思是

AssetMean

bEquality

bi

bInequality

集团

GroupMatrix

下界

n全国矿工工会

NumAssets

rfr

RiskFreeRate

乌兰巴托

UpperBound

预算

UpperBudget而且LowerBudget

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

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)

另请参阅

|

相关的例子

更多关于

外部网站