主要内容

PortfolioMAD对象

PortfolioMAD对象属性和函数

PortfolioMAD对象实现了平均绝对偏差(MAD)投资组合优化,它派生自抽象类AbstractPortfolio.的每一个性质和功能PortfolioMAD对象是公共的,尽管有些属性和函数是隐藏的。的PortfolioMAD对象是一个值对象,其中对象的每个实例都是该对象的不同版本。自PortfolioMAD对象也是一个MATLAB®对象,它继承了与MATLAB对象关联的默认函数。

使用PortfolioMAD对象

PortfolioMAD对象及其函数是平均绝对偏差投资组合优化的接口。所以,几乎所有你做的PortfolioMAD对象可以使用函数来实现。基本工作流程是:

  1. 设计你的作品集问题。

  2. 使用PortfolioMAD创建PortfolioMAD对象或使用各种设置函数来设置您的作品集问题。

  3. 使用估计函数来解决你的投资组合问题。

此外,还有一些函数可以帮助您查看中间结果和诊断计算。由于MATLAB的功能是一部分PortfolioMAD对象,您可以从工作空间保存和加载对象,并创建和操作对象数组。在确定了一个问题之后,在MAD投资组合优化的情况下,这意味着您有关于资产回报的场景、数据或时刻,以及对您的投资组合的一系列约束,使用PortfolioMAD属性的属性PortfolioMAD对象。

PortfolioMAD允许您从头创建对象或更新现有对象。自PortfolioMAD对象是一个值对象,很容易创建一个基本对象,然后使用函数在基本对象的基础上创建基本对象的新版本。将基本问题与从基本问题派生出的备选方案进行比较是很有用的。详情请参见创建portfolio omad对象

设置和获取属性

的属性PortfolioMAD对象使用PortfolioMAD或各种功能。

请注意

虽然也可以直接设置属性,但不建议这样做,因为直接设置属性时不会执行错误检查。

PortfolioMAD对象支持使用名称-值对参数设置属性,这样每个参数名称都是一个属性,每个值都是要分配给该属性的值。例如,设置下界而且预算现有的PortfolioMAD对象p,使用语法:

p = PortfolioMAD(p,下界的0,“预算”1);

除了PortfolioMAD对象,该对象允许您一次设置一个属性,而属性组则设置在PortfolioMAD对象,具有各种“set”和“add”函数。例如,要设置平均周转约束,可以使用setTurnover函数指定投资组合周转率和初始投资组合的界限。获取单个属性PortfolioMAD对象直接获取属性,或使用各种“get”函数从对象中获取属性组PortfolioMAD对象。的PortfolioMAD对象和函数有几个有用的特性:

  • PortfolioMAD对象和函数尝试用显式或隐式输入来确定问题的维度。

  • PortfolioMAD对象和函数尝试用默认选择来解决歧义。

  • PortfolioMAD对象和函数在可能的情况下对数组执行标量展开。

  • PortfolioMAD函数试图对问题进行诊断和警告。

显示portfolio omad对象

PortfolioMAD对象使用MATLAB提供的默认显示函数,其中显示而且disp显示一个PortfolioMAD对象及其属性带有或不带有对象变量名。

保存和加载PortfolioMAD对象

保存和加载PortfolioMAD对象使用MATLAB保存而且负载命令。

估计有效的投资组合和前沿

估计有效的投资组合和有效前沿是MAD投资组合优化工具的主要目的。一个有效投资组合是指在给定的收益水平下满足最小风险和给定的风险水平下满足最大收益的投资组合。“估计”和“绘图”函数的集合提供了探索高效前沿的方法。“估计”函数要么获得有效的投资组合,要么获得风险和回报代理,以形成有效边界。在投资组合级别,函数集合在函数的有效边界上估计有效的投资组合,以获得有效的投资组合:

  • 在有效边界的端点处

  • 为返回代理获得目标值

  • 达到风险代理的目标值

  • 沿着整个有效边界

这些功能还提供从初始或当前投资组合转换到每个有效投资组合所需的购买和销售。在有效前沿层面,一组函数绘制出有效前沿,并在有效前沿上估计有效投资组合的风险或回报代理。您可以在后续的分析中使用结果的有效投资组合或风险和回报代理。

PortfolioMAD对象数组

尽管所有与a相关的函数PortfolioMAD对象设计为在标量上工作PortfolioMAD对象,MATLAB的数组功能使您能够设置和使用数组PortfolioMAD对象。最简单的方法是使用repmat函数。例如,创建一个3 × 2的数组PortfolioMAD对象:

p = repmat(portfolio, 3,2);disp (p)
3×2 PortfolioMAD数组的属性:BuyCost SellCost RiskFreeRate Turnover BuyTurnover SellTurnover NumScenarios Name NumAssets AssetList InitPort AInequality b不等式AEquality bEquality LowerBound UpperBound LowerBudget UpperBudget GroupMatrix LowerGroup UpperGroup GroupA GroupB LowerRatio UpperRatio MinNumAssets MaxNumAssets BoundType
设置数组后PortfolioMAD对象,你可以单独工作PortfolioMAD对象的索引。例如:
p(i,j) = portfolio (p(i,j),…);
此示例调用PortfolioMAD对于(j的矩阵的元素PortfolioMAD变量中的对象p

如果你设置一个数组PortfolioMAD对象,您可以访问特定的属性PortfolioMAD对象,以便您可以设置下界和上界而且乌兰巴托对于(jk)的三维数组元素PortfolioMAD对象与

p(i,j,k) = setBounds(p(i,j,k),lb, ub);
一旦设置好,你就可以用
[lb, ub] = getBounds(p(i,j,k));
PortfolioMAD对象函数只能在一个对象上工作PortfolioMAD一次一个对象。

子类化PortfolioMAD对象

的子类PortfolioMAD对象来覆盖现有函数或添加新属性或函数。方法创建一个派生类PortfolioMAD类。函数的所有属性和函数PortfolioMAD类以及您选择添加到子类对象中的任何新特性。的PortfolioMAD类派生自一个抽象类AbstractPortfolio.因此,您还可以从中创建派生类AbstractPortfolio的属性和函数实现了一种完全不同形式的投资组合优化AbstractPortfolio类。

数据表示约定

MAD投资组合优化工具遵循以下关于与投资组合优化相关的不同数量的表示约定:

  • 场景中的资产回报或价格是矩阵形式的,给定资产的样本在行中向下,资产在列中跨越。在价格的情况下,最早的日期必须在矩阵的顶部,随着日期的增加而下降。

  • 投资组合是向量或矩阵形式的,给定投资组合的权重在行中向下,不同的投资组合在列中横过。

  • 对投资组合的约束是这样形成的:一个投资组合是一个列向量。

  • 投资组合风险和回报要么是标量,要么是列向量(用于多个投资组合风险和回报)。

另请参阅

相关的例子

更多关于

Baidu
map