PortfolioMAD对象
PortfolioMAD对象属性和函数
的PortfolioMAD
对象实现了平均绝对偏差(MAD)投资组合优化,它派生自抽象类AbstractPortfolio
.的每一个性质和功能PortfolioMAD
对象是公共的,尽管有些属性和函数是隐藏的。的PortfolioMAD
对象是一个值对象,其中对象的每个实例都是该对象的不同版本。自PortfolioMAD
对象也是一个MATLAB®对象,它继承了与MATLAB对象关联的默认函数。
使用PortfolioMAD对象
的PortfolioMAD
对象及其函数是平均绝对偏差投资组合优化的接口。所以,几乎所有你做的PortfolioMAD
对象可以使用函数来实现。基本工作流程是:
设计你的作品集问题。
使用
PortfolioMAD
创建PortfolioMAD
对象或使用各种设置函数来设置您的作品集问题。使用估计函数来解决你的投资组合问题。
此外,还有一些函数可以帮助您查看中间结果和诊断计算。由于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
对象,以便您可以设置下界和上界磅
而且乌兰巴托
对于(我
,j
,k
)的三维数组元素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投资组合优化工具遵循以下关于与投资组合优化相关的不同数量的表示约定:
场景中的资产回报或价格是矩阵形式的,给定资产的样本在行中向下,资产在列中跨越。在价格的情况下,最早的日期必须在矩阵的顶部,随着日期的增加而下降。
投资组合是向量或矩阵形式的,给定投资组合的权重在行中向下,不同的投资组合在列中横过。
对投资组合的约束是这样形成的:一个投资组合是一个列向量。
投资组合风险和回报要么是标量,要么是列向量(用于多个投资组合风险和回报)。