PortfolioMAD

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

描述

PortfolioMAD对象实现了卑鄙绝对的偏差组合优化,其中MAD代表“卑鄙绝对偏差”。PortfolioMAD对象支持特定于M金宝appad Portfolio优化的功能。

MAD投资组合优化的主要工作流程是创建一个实例PortfolioMAD完全指定投资组合优化问题并运行的对象PortfolioMAD目的是获取和分析有效的投资组合。有关使用时工作流的更多信息PortfolioMAD对象,参见PortfolioMAD对象的工作流

你可以使用PortfolioMAD对象有几种方法。建立一个投资组合优化问题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,...

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

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

创建

描述

例子

P.= portfoliomad.创建一个空PortfolioMAD用于均值偏差产品组合优化和分析的对象。然后,您可以添加元素到PortfolioMAD对象,使用支持的“add”和“se金宝appt”函数。有关更多信息,请参见创建portfoliomad对象

例子

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

例子

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

输入参数

全部展开

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

属性

全部展开

设置对象

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

数据类型:细胞|字符串

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

数据类型:

名称以例如PortfolioMAD对象,指定为字符向量。

数据类型:char|字符串

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

数据类型:

组合对象的限制

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

数据类型:

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

数据类型:

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

数据类型:

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

数据类型:

将重量组分组由B组中的重量界定为矩阵。

数据类型:

B组权重,指定为矩阵。

数据类型:

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

数据类型:

下界约束,指定为向量。

数据类型:

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

数据类型:

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

数据类型:

之间分配的最小比率GroupAGroupB,指定为向量。

数据类型:

上界约束,指定为向量。

数据类型:

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

数据类型:

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

数据类型:

之间的最大拨款比例GroupAGroupB,指定为向量。

数据类型:

每个资产权重的边界类型,指定为标量字符向量或字符串,或字符向量的单元格数组或字符串数组。有关更多信息,请参见setBound.

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

在投资组合中分配的最小资产数,用标量数值指定。有关更多信息,请参见setMinMaxNumAssets

数据类型:

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

数据类型:

采购的周转约束,指定为标量。

数据类型:

销售额的周转约束,指定为标量。

数据类型:

转换约束,指定为标量。

数据类型:

投资组合对象建模

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

数据类型:

无风险利率,指定为标量。

数据类型:

值 - 风险概率水平为1 - (损耗概率),指定为标量。

数据类型:

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

数据类型:

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

数据类型:

对象的功能

setAssetList 设置资产的标识符列表
setInitPort 设置初始或当前产品组合
setDefaultConstraints 建立具有非负权值和为1的投资组合约束
估计 根据数据估计资产收益的均值和协方差
setcost 设置成比例的交易成本
addequality. 为产物权重和现有约束添加线性平等约束
addgroupratio. 在现有的组比率约束中添加组合权重的组比率约束
addGroups 向现有的组约束中添加组合权重的组约束
兼容性 在现有约束条件的基础上,加入权重的线性不等式约束
getBounds 从投资组合对象获取投资组合权重的界限
GetBudget. 从投资组合对象中获得预算约束边界
getcosts. 从投资组合对象中获取买卖交易费用
getEquality 从投资组合对象中获取相等约束数组
getGroupRatio 从投资组合对象中获取组比率约束数组
getgroups. 从组合对象中获取组约束数组
getInequality 从投资组合对象中获取不等式约束数组
getOneWayTurnover 从投资组合对象获取单向营业额限制
setGroups 为产品组合重量设置组约束
setInequality 为产品组合重量设置线性不等式约束
setBound. 为投资组合对象设置投资组合权重的界限
setMinMaxNumAssets 设置投资组合对象的资产数量的基数约束
setBudget. 设置预算约束
setcost 设置成比例的交易成本
setDefaultConstraints 建立具有非负权值和为1的投资组合约束
setEquality 建立投资组合权重的线性等式约束
setGroupRatio 建立组合权重的组比率约束
setInitPort 设置初始或当前产品组合
setOneWayTurnover 建立单向的投资组合周转率约束
塞起 设置最大投资组合周转约束
checkFeasibility 根据投资组合目标,检查投资组合的可行性
estimateBounds 估算组合集的全球下限和上限
estimateFrontier 在有效边界上估计指定数量的最优投资组合
estimateFrontierByReturn 估计有针对性产品组合的最佳投资组合
estimateFrontierByRisk 评估具有目标投资风险的最优投资组合
estimateFrontierLimits 估计有效边界端点的最优投资组合
plotFrontier 情节有效边界
estimatePortReturn 估计投资组合返回的依据
estimatePortRisk 根据与相应对象相关联的风险代理估计投资组合风险
setSolver 选择主求解器,并为产品组合优化指定关联的求解器选项
setProbabyLevel. 设置VAR和CVAR计算的概率级别
setScenarios 通过直接矩阵设置资产返回方案
getScenarios 从portfolio对象获取方案
simulatenormalscenariosbydata. 从数据中模拟多元正常资产回报场景
simulatenormalscenariosbyments 从资产回报的均值和协方差模拟多元正态资产回报情景
estimateScenarioMoments 估算资产返回方案的平均值和协方差
estimatePortStd 估计投资组合收益的标准差

例子

全部折叠

您可以创建一个portfoliomad对象,P.,没有输入参数并使用它disp

p = PortfolioMAD;disp (p);
Portfoliomad具有属性:Buycost:[] Sellcost:[]风险犯规:[]营销:[]抛售:[] NumScenarios:[] NumAsset:[] assetlist:[] initode:[] onine:[] Binquality:[] Aequality:[]胎粪:[]下行:[]上行:[] upperBudget:[] GroupMatrix:[]较低组:[]上组:[] Groupa:[] Groupa:[] GroupA:[] GroupA:[] GroupA:GroupA:[] Groupa:[] Groupa:[] GroupA:GroupA:[] Groupa:[] Groupa:[] Groupa:[] Groupa:group:groupDightratio:[] Upperratio:[] minnumassets:[] maxnumassets:[] buddtype:[]

该方法提供了一种建立投资组合优化问题的方法PortfolioMAD函数。属性中的属性集合可以使用关联的set函数来设置和修改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“UpperBudget”, 1)
p = PortfolioMAD with properties: BuyCost: [] SellCost: [] RiskFreeRate: [] Turnover: [] BuyTurnover: [] SellTurnover: [] numscenario: 20000 Name: [] NumAssets: 4 AssetList: [] InitPort: [] ainequal: [] b不等式:[]AEquality: [] bEquality: [] LowerBound: [4x1 double] UpperBound: [] LowerBudget: 1 UpperBudget: 1 GroupMatrix: [] LowerGroup:[] UpperGroup: [] GroupA: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets: [] MaxNumAssets: [] BoundType: []

请注意下界物业价值以来经过标量扩展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“UpperBudget”1);PlotFrontier(P);

这种方式有效,因为呼叫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; p = PortfolioMAD(p,下界的,零(大小(m))));p = portfoliomad(p,“LowerBudget”,1“UpperBudget”1);p = setscenario (p, assetscenario);PlotFrontier(P);

如果没有指定的大小下界但是,相反,输入标量参数,PortfolioMADObject假设您正在定义单个资产问题,并在调用中生成错误以设置具有四个资产的资产方案。

您可以创建一个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 with properties: BuyCost: [] SellCost: [] RiskFreeRate: [] Turnover: [] BuyTurnover: [] SellTurnover: [] numscenario: 20000 Name: [] NumAssets: 4 AssetList: [] InitPort: [] ainequal: [] b不等式:[]AEquality: [] bEquality: [] LowerBound: [4x1 double] UpperBound: [] LowerBudget: 1 UpperBudget: 1 GroupMatrix: [] LowerGroup:[] UpperGroup: [] GroupA: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets: [] MaxNumAssets: [] BoundType: []

虽然不推荐,但您可以直接设置属性,但是不会对输入进行错误检查。

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);
portfolio with properties: BuyCost: [] SellCost: [] RiskFreeRate: [] Turnover: [] BuyTurnover: [] SellTurnover: [] numscenario: 20000 Name: [] NumAssets: 4 AssetList: [] InitPort: [] ainequal: [] b不等式:[]AEquality: [] bEquality: [] LowerBound: [4x1 double] UpperBound: [] LowerBudget: 1 UpperBudget: 1 GroupMatrix: [] LowerGroup:[] UpperGroup: [] GroupA: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets: [] MaxNumAssets: [] BoundType: []

方案无法直接分配给portfoliomad对象。方案必须始终通过PortfolioMAD函数,setScenarios函数或任何场景模拟函数。

创建有效的投资组合:

加载CAPMuniversep = portfoliomad(“AssetList”,资产(1:12));p = simulatenormalscenariosbydata(p,数据(:,1:12),20000,'缺失数据',真正的);p = setDefaultConstraints (p);PlotFrontier(P);

PWGT = estmateFrontier(P,5);pnames = cell(1,5);为了i = 1:5 pnames {i} = sprintf('端口%d',一世);结尾吸墨纸=数据集([{pwgt}, pnames],“obsnames”, p.AssetList);disp(流水帐);
端口1端口2端口3端口4 Port5 apple 0.029787 0.076199 0.11265 0.13397 0 amazon 0 0 0 0 0 cisco戴尔0.0089177 0 0 0 0 0 0 0 0 0 EBAY 0 0 0 0 0 google 0.16094 0.3516 0.54479 0.74898 1 hp IBM 0.46074 0.37919 0.29379 0.11705 0.056856 - 0.023073 0 0 0 0 intel 0 0 0 0 0 microsoft 0.28277 0.16994 0.048762 0 0 ORCL 0 0 0 0 0 yahoo 0 0 0 0 0

更多关于

全部展开

参考

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

介绍了R2013b