主要内容

PortfolioMAD

创建PortfolioMAD对象,用于均值-绝对偏差投资组合优化和分析

描述

PortfolioMAD对象实现了均值-绝对偏差投资组合优化,其中MAD代表“均值-绝对偏差”。PortfolioMAD对象支持特定于M万博1manbetxAD投资组合优化的函数。

Mad Portfolio优化的主要工作流程是创建一个实例PortfolioMAD对象,该对象完全指定了一个投资组合优化问题并对其进行操作PortfolioMAD目的是获取和分析有效的投资组合。有关使用时工作流的更多信息PortfolioMAD对象,看到portfoliomad对象工作流程

你可以使用PortfolioMAD以多种方式对象。在a中设置投资组合优化问题PortfolioMAD对象,最简单的语法是:

p = PortfolioMAD;
此语法创建PortfolioMAD目的,p,使所有对象属性都为空。

PortfolioMAD对象还接受属性及其值的名称-值对参数集合。的PortfolioMAD对象接受具有常规语法的属性的输入:

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

如果一个PortfolioMAD存在对象,语法允许第一个(且仅第一参数)PortfolioMAD对象是具有后续名称值对的现有对象,用于添加或修改属性的参数。例如,给予现有的PortfolioMAD对象p,一般语法为:

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

输入参数名称不区分大小写,但必须完全指定。此外,可以用可选参数名指定一些属性(参见属性名称的捷径)。的PortfolioMAD对象尝试从输入中检测问题尺寸,并且一旦设置,后续输入可以经过各种标量或矩阵扩展操作,这简化了整个过程以制定问题。另外,一个PortfolioMAD对象是一个值对象,因此,给定投资组合p,下面的代码创建两个对象,p,它们是不同的:

q = portfoliomad(p,......

在创建一个PortfolioMAD对象,您可以使用相关的对象函数来设置投资组合约束、分析有效边界并验证投资组合模型。

有关有条件价值 - 风险投资组合优化的理论基础的更多详细信息,请参阅投资组合优化理论

创建

描述

例子

p= PortfolioMAD创造一个空的东西PortfolioMAD对象为均值-绝对偏差组合优化与分析。然后可以将元素添加到PortfolioMAD对象使用支持的“添加”和“设置”函万博1manbetx数。有关更多信息,请参阅创建portfolio对象

例子

p= PortfolioMAD (名称,价值创建一个PortfolioMAD对象(p)和集属性使用名称-值对。例如,p = portfoliomad('Assetlist',资产(1:12)).可以指定多个名称-值对。

例子

p= PortfolioMAD (p名称,价值创建一个PortfolioMAD对象(p),使用先前创建的PortfolioMAD对象p并设置属性使用名称-值对。可以指定多个名称-值对。

输入参数

全部展开

以前建于建造PortfolioMAD使用指定的对象,PortfolioMAD

属性

全部展开

设置对象

宇宙中资产的名称或符号,指定为字符向量的单元格数组或字符串数组。

数据类型:细胞|字符串

初始投资组合,指定为向量。

数据类型:

的实例名称PortfolioMAD对象,指定为字符向量。

数据类型:字符|字符串

宇宙中资产的数量,指定为整数标量。

数据类型:

投资组合对象约束

线性平等约束矩阵,指定为矩阵。

数据类型:

线性不等式约束矩阵,指定为矩阵。

数据类型:

线性等式约束向量,指定为向量。

数据类型:

线性不等式约束矢量,指定为向量。

数据类型:

A组的权值由B组的权值限定,指定为一个矩阵。

数据类型:

B组权重,指定为矩阵。

数据类型:

组成员矩阵,指定为一个矩阵。

数据类型:

较低的约束,指定为向量。

数据类型:

较少的预算约束,指定为标量。

数据类型:

下限组约束,指定为向量。

数据类型:

之间的最低比例Groupa.Groupb.,指定为向量。

数据类型:

上界约束,指定为向量。

数据类型:

上限预算约束,指定为标量。

数据类型:

上限组约束,指定为向量。

数据类型:

最大比例之间的分配Groupa.Groupb.,指定为向量。

数据类型:

每个资产重量的界限类型,指定为标量字符向量或字符串或字符向量或字符串阵列的单元格数组。有关更多信息,请参阅setBounds

数据类型:字符|细胞|字符串

在投资组合中分配的最少资产数量,指定为标量数值。有关更多信息,请参阅setminmaxnumassets.

数据类型:

在投资组合中分配的最大资产数量,以标量数值指定。有关更多信息,请参阅setminmaxnumassets.

数据类型:

购买时的营业额限制,指定为标量。

数据类型:

销售的营业额限制,指定为标量。

数据类型:

转换约束,指定为标量。

数据类型:

组合对象建模

比例购买成本,指定为向量。

数据类型:

无风险率,指定为标量。

数据类型:

风险值概率级别,1−(损失概率),指定为标量。

数据类型:

作为整数标量指定的场景数。

数据类型:

比例销售成本,指定为向量。

数据类型:

对象的功能

setAssetList 建立资产的标识符列表
setInitPort 建立初始或当前的投资组合
setDefaultConstraints. 建立具有非负权值和为1的投资组合约束
estimateAssetMoments 估算资产的均值和协方差从数据返回
setcosts. 设置成比例的交易成本
addEquality 在现有约束条件下,为组合权重添加线性等式约束条件
addGroupRatio 在现有的组比率约束中添加组合权重的组比率约束
addGroups 为现有组约束添加组合权重的组约束
addInequality 在现有约束条件的基础上,加入权重的线性不等式约束
getBounds 从投资组合对象中获取投资组合权重的界限
getBudget 从投资组合对象获取预算约束绑定
getCosts 从投资组合对象获得买卖交易成本
庇护 从投资组合对象获得平等约束阵列
getgroupratio. 从投资组合对象获取组比率约束阵列
getGroups 从组合对象中获取组约束数组
GetineQuality. 从投资组合对象获取不等式约束阵列
getonewayturnover 从投资组合对象中获得单向周转约束
集团 为组合权重设置组约束
setinequality. 建立了投资组合权重的线性不等式约束
setBounds 为投资组合对象设置投资组合权重的界限
setminmaxnumassets. 在投资组合对象中投资的资产数量的基数限制
setBudget 设定预算限制
setcosts. 设置成比例的交易成本
setDefaultConstraints. 建立具有非负权值和为1的投资组合约束
setequality. 为产品组合重量设置线性平等约束
setGroupRatio 为产品组合重量设置组比率约束
setInitPort 建立初始或当前的投资组合
setonewayturnover. 设置单向产品组合周转约束
setTurnover 建立投资组合最大周转率约束
checkFeasibility 根据投资组合目标,检查投资组合的可行性
estismsbounds. 估计投资组合的全局上界和下界
estimateFrontier 估计有效前沿上的指定数量的最佳投资组合
estimateFrontierByReturn 以目标投资回报估计最优投资组合
estismsFrontierByRisk. 评估具有目标投资风险的最优投资组合
estismsfrontierlimits 估计高效前沿的最佳投资组合
plotFrontier 绘制高效的边疆
estibalportreturn. 估计投资组合的平均收益
estibalportrisk. 根据与对象相关的风险代理估算产品组合风险
塞洛弗 选择主求解器并指定组合优化的相关求解器选项
setProbabilityLevel 设置VaR和CVaR计算的概率级别
setscenarios. 通过直接矩阵设置资产回报情况
GetScenarios. 从投资组合对象中获取场景
simulateNormalScenariosByData 模拟数据中的多变量正常资产返回方案
simulateNormalScenariosByMoments 模拟资产回报的平均值和协方差的多变量正常资产返回方案
estimateScenarioMoments 估计资产回报情景的均值和协方差
estimatePortStd 估计投资组合返回的标准偏差

例子

全部收缩

你可以创建一个PortfolioMAD对象,p,没有输入参数,并使用disp

p = PortfolioMAD;DISP(P);
portfolio with properties: BuyCost: [] SellCost: [] RiskFreeRate: [] Turnover: [] BuyTurnover: [] SellTurnover: [] numscenario: [] Name: [] NumAssets: [] AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality: [] LowerBound: [] UpperBound: [] UpperBudget: [] UpperBudget: [] GroupMatrix: [] LowerGroup: [] UpperGroup: [][] GroupA: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets: [] MaxNumAssets: [] BoundType: []

这种方法提供了一种设置投资组合优化问题的方法PortfolioMAD函数。然后,您可以使用关联的集合来设置和修改属性集合PortfolioMAD目的。

你可以使用PortfolioMAD对象直接建立了一个“标准”的投资组合优化问题。给定的情况下,资产回报的变量assetscenarios.,此问题完全说明如下:

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];m = m / 12;C = C / 12; AssetScenarios = mvnrnd(m, C, 20000); p = PortfolioMAD(“场景”,assetscenarios,......下界的,0,'LowerBudget', 1'Unimbudget', 1)
P = Portfoliomad具有属性:Buycost:[] Sellcost:[]风险竞选:[]营业额:[] Buyturnover:[] NumScenarios:20000名称:[] Numasset:4 assetlist:[] initode:[] bInequality:[] AEquality:[] bEquality:[]下界:[4X1双] UPPERBOUND:[] LowerBudget:1 UpperBudget:1 GroupMatrix:[] LowerGroup:[] UpperGroup:[] A组:[]组B:[]Dightratio:[] Upperratio:[] minnumassets:[] maxnumassets:[] buddtype:[]

请注意,下面属性值经过标量展开assetscenarios.提供问题的维度。

使用一系列步骤是完成设置“标准”MAD产品组合优化问题的相同任务的替代方法assetscenarios.变量是:

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];m = m / 12;C = C / 12; AssetScenarios = mvnrnd(m, C, 20000); p = PortfolioMAD; p = setScenarios(p, AssetScenarios); p = PortfolioMAD(p,下界的,0);p = PortfolioMAD (p,'LowerBudget', 1'Unimbudget'1);plotFrontier (p);

图中包含一个坐标轴。标题为\ befficient Frontier的轴包含一个类型为line的对象。

这种方法是可行的,因为调用PortfolioMAD都是按这个顺序排列的。在本例中,调用initializeassetscenarios.提供问题的维度。如果要最后执行这一步,就必须显式地对下面属性如下:

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];m = m / 12;C = C / 12; AssetScenarios = mvnrnd(m, C, 20000); p = PortfolioMAD; p = PortfolioMAD(p,下界的, 0(大小(m)));p = PortfolioMAD (p,'LowerBudget', 1'Unimbudget'1);p = setscenario (p, assetscenario);plotFrontier (p);

图中包含一个坐标轴。标题为\ befficient Frontier的轴包含一个类型为line的对象。

如果没有指定的大小下面但是,输入一个标量参数PortfolioMAD对象假设您正在定义一个单一资产问题,并在调用使用四个资产设置资产场景时产生错误。

你可以创建一个PortfolioMAD对象,p与之PortfolioMAD使用用于属性名称的快捷方式的对象。

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];m = m / 12;C = C / 12; AssetScenarios = mvnrnd(m, C, 20000); p = PortfolioMAD(“场景”,assetscenarios,“磅”,0,“预算”, 1)
P = Portfoliomad具有属性:Buycost:[] Sellcost:[]风险竞选:[]营业额:[] Buyturnover:[] NumScenarios:20000名称:[] Numasset:4 assetlist:[] initode:[] bInequality:[] AEquality:[] bEquality:[]下界:[4X1双] UPPERBOUND:[] LowerBudget:1 UpperBudget:1 GroupMatrix:[] LowerGroup:[] UpperGroup:[] A组:[]组B:[]Dightratio:[] Upperratio:[] minnumassets:[] maxnumassets:[] buddtype:[]

虽然不推荐,但您可以直接设置属性,但输入没有错误检查。

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];m = m / 12;C = C / 12; AssetScenarios = mvnrnd(m, C, 20000); p = PortfolioMAD; p = setScenarios(p, AssetScenarios); p.LowerBudget = 1; p.UpperBudget = 1; p.LowerBound = zeros(size(m)); disp(p);
Portfoliomad具有属性:Buycost:[] Sellcost:[]风险竞选:[]营业额:[] BuyTurnover:[] NumScenarios:20000名称:[] Numasset:4 assetlist:[] initport:[] aninequality:[] aninequality:[] initinalBinequality:[] Aequality:[]胎粪:[]下行:[4x1双]上行:[] upperBudget:1 upperBudget:1 GroupMatrix:[]较低组:[]上组:[] Groupa:[] GroupB:GroupB[] Upperratio:[] minnumassets:[] maxnumassets:[] buddtype:[]

场景不能直接分配给PortfolioMAD对象。场景必须总是通过PortfolioMAD函数,setscenarios.功能,或任何场景仿真功能。

创建有效的投资组合:

负载Capmuniverse.p = PortfolioMAD ('assetlist'、资产(1:12));p = simulatenormalscenario bydata (p, Data(:,1:12), 20000,“missingdata”,真的);p = setDefaultConstraints (p);plotFrontier (p);

图中包含一个坐标轴。标题为\ befficient Frontier的轴包含一个类型为line的对象。

pwgt = estimateFrontier(p, 5);pnames =细胞(1、5);pnames{I} = sprintf(的端口% d ',我);结束Blotter = DataSet([{PWGT},Pnames],“obsnames”,p.assetlist);DISP(遮光剂);
PORT1 PORT2 PORT3 PORT3 PORT3 PORT5 AAPL 0.07619 0 0 0 0 0 0 0 0 0 eBay 0 0 0 0 0 0 0 0 eBay 0 0 0 0 0 GOOG 0.16094 0.3516 0.540 0.3516 0.023073 0 0 0 IBM 0.46074 0.37919 0.37919 0.379190.29379 0.11705 0 INTC 0 0 0 0 0 MSFT 0.28277 0.16994 0.048762 0 0 ORCL 0 0 0 0 0 YHOO 0 0 0 0 0

更多关于

全部展开

参考文献

[1]有关PortfolioMAD对象引用的完整列表,请参见投资组合优化

介绍在R2013B.