的PortfolioMAD
对象实现了平均绝对偏差(MAD)投资组合优化,并派生自抽象类AbstractPortfolio
.每一个性质和功能PortfolioMAD
对象是公共的,尽管一些属性和函数是隐藏的。的PortfolioMAD
对象是一个值对象,其中对象的每个实例都是该对象的不同版本。自PortfolioMAD
对象也是一个MATLAB®对象,它继承与MATLAB对象相关的默认函数。
的PortfolioMAD
对象及其函数是平均绝对偏差投资组合优化的界面。所以,几乎所有你用PortfolioMAD
对象可以使用函数来完成。基本的工作流程是:
设计你的投资组合问题。
使用PortfolioMAD
创建PortfolioMAD
对象或使用各种设置函数来设置您的投资组合问题。
使用评估函数来解决投资组合问题。
此外,还有一些函数可以帮助您查看中间结果和诊断计算结果。由于MATLAB特性是一个PortfolioMAD
对象,您可以从工作区中保存和加载对象,并创建和操作对象数组。在解决了一个问题之后(在MAD投资组合优化的情况下,这意味着你要么有场景、数据或资产回报时刻,以及对你的投资组合的约束集合),使用PortfolioMAD
的属性PortfolioMAD
对象。
PortfolioMAD
允许您从头创建对象或更新现有对象。自PortfolioMAD
对象是一个值对象,很容易创建一个基本对象,然后使用函数在基本对象的基础上构建,以创建基本对象的新版本。将基本问题与从基本问题衍生出来的备选方案进行比较是有用的。有关详细信息,请参见创建portfolio对象.
您可以设置属性PortfolioMAD
对象使用PortfolioMAD
或各种集
功能。
请注意
尽管您也可以直接设置属性,但不建议这样做,因为直接设置属性时不会执行错误检查。
的PortfolioMAD
对象支持使用名万博1manbetx称-值对参数设置属性,这样每个参数名称都是一个属性,每个值都是要分配给该属性的值。例如,要设置下界
和预算
现有的属性PortfolioMAD
对象p
,使用语法:
p = PortfolioMAD (p,下界的0,“预算”1);
除了PortfolioMAD
对象,该对象允许您一次设置一个单独的属性,在PortfolioMAD
对象具有各种“设置”和“添加”功能。例如,要建立一个平均成交量约束,可以使用setTurnover
函数指定投资组合周转率和初始投资组合的界限。从PortfolioMAD
对象,直接获取属性或使用“get”函数的分类,这些函数从PortfolioMAD
对象。的PortfolioMAD
对象和集
函数有几个有用的功能:
的PortfolioMAD
对象和集
函数试图通过显式或隐式输入确定问题的维度。
的PortfolioMAD
对象和集
函数尝试用默认选项来解决歧义。
的PortfolioMAD
对象和集
函数在可能的情况下对数组执行标量展开。
PortfolioMAD函数试图诊断和警告问题。
的PortfolioMAD
对象使用MATLAB提供的默认显示函数,其中显示
和disp
显示一个PortfolioMAD
对象及其带有或不带有对象变量名的属性。
保存和加载PortfolioMAD
对象使用MATLAB保存
和负载
命令。
估算有效投资组合和有效边界是MAD投资组合优化工具的主要目的。一个有效投资组合是满足给定回报水平下的最小风险和给定风险水平下的最大收益标准的投资组合。“估计”和“绘图”功能的集合提供了探索有效边界的方法。“估计”函数获取有效的投资组合或风险和回报代理,以形成有效边界。在投资组合层面,一组函数在有效边界上估计有效投资组合以获得有效投资组合:
在有效边界的端点
实现返回代理的目标值
达到风险代理的目标价值
沿着整个有效边界
这些功能还提供从初始或当前投资组合向每个有效投资组合转换所需的购买和销售。在有效边界水平,一组函数绘制有效边界,并在有效边界上估计有效投资组合的风险或回报代理。您可以在随后的分析中使用由此产生的有效投资组合或风险和回报代理。
尽管所有函数都与PortfolioMAD
对象被设计用于处理标量PortfolioMAD
对象,MATLAB的数组功能,使您能够设置和工作的数组PortfolioMAD
对象。最简单的方法就是repmat
函数。例如,要创建一个3乘2的数组PortfolioMAD
对象:
p = repmat(PortfolioMAD, 3,2);disp (p)
3×2 PortfolioMAD数组与属性:BuyCost SellCost RiskFreeRate Turnover BuyTurnover SellTurnover num场景名称NumAssets资产列表InitPort不等式b不等式AEquality bEquality LowerBound UpperBound LowerBudget UpperBudget GroupMatrix LowerGroup UpperGroup GroupA 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
类派生自一个被称为AbstractPortfolio
.因此,您还可以创建派生类AbstractPortfolio
它实现了一种完全不同形式的投资组合优化,使用属性和函数AbstractPortfolio
类。
MAD投资组合优化工具遵循以下约定,即与投资组合优化相关的不同数量的表示:
场景中的资产回报或价格是矩阵形式,其中给定资产的样本行向下,列向下。在价格的情况下,最早的日期必须在矩阵的顶部,随着日期的增加而下降。
投资组合是向量或矩阵形式,给定投资组合的权重沿着行向下,而不同的投资组合横过列。
投资组合的约束是这样形成的:一个投资组合是一个列向量。
投资组合风险和回报要么是标量,要么是列向量(对于多个投资组合风险和回报)。