PortfolioCVaR

为条件值 - 风险投资组合优化和分析创建Portfoliocvar对象

描述

PortfolioCVaR创建PortfolioCVaR用于条件风险价值投资组合优化的对象。

CVaR投资组合优化的主要工作流程是创建PortfolioCVaR完全指定投资组合优化问题并运行的对象PortfolioCVaR对象使用支持的函数获取和分金宝app析有效的投资组合。有关此工作流的详细信息,请参阅portfoliocvar对象工作流程

你可以使用PortfolioCVaR以几种方式反对。建立一个投资组合优化问题PortfolioCVaR对象,最简单的语法为:

p = PortfolioCVaR;
这个语法创造了一个PortfolioCVaR对象p,使所有对象属性都为空。

PortfolioCVaR对象还接受属性及其值的名称-值对参数集合。这个PortfolioCVaR函数接受具有一般语法的属性输入:

p = portfoliocvar('property1',value1,'property2',value2,...);

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

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

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

q = PortfolioCVaR (p,...

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

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

创造

描述

例子

p=PortfolioCVaR创造一个空的东西PortfolioCVaR对象为条件价值风险投资组合优化和分析。然后可以将元素添加到PortfolioCVaR对象。有关详细信息,请参阅金宝app创建PortfolioCVaR对象

例子

p= portfoliocvar(名称,价值创建一个PortfolioCVaR反对(p)和套装性质使用名称-值对。例如p=PortfolioCVaR(“资产清单”,资产(1:12)).可以指定多个名称-值对。

例子

p= portfoliocvar(p名称,价值创建一个PortfolioCVaR反对(p)使用先前创建的PortfolioCVaR对象p和套装性质使用名称-值对。可以指定多个名称-值对。

输入参数

全部展开

先前构建PortfolioCVaR对象,指定使用PortfolioCVaR

性质

全部展开

设置对象

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

数据类型:细胞|一串

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

数据类型:双倍的

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

数据类型:char|一串

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

数据类型:双倍的

投资组合对象约束

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

数据类型:双倍的

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

数据类型:双倍的

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

数据类型:双倍的

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

数据类型:双倍的

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

数据类型:双倍的

B组权重,指定为矩阵。

数据类型:双倍的

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

数据类型:双倍的

下限约束,指定为向量。

数据类型:双倍的

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

数据类型:双倍的

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

数据类型:双倍的

之间的最低比例GroupAB组,指定为向量。

数据类型:双倍的

上限约束,指定为向量。

数据类型:双倍的

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

数据类型:双倍的

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

数据类型:双倍的

最大比例之间的分配GroupAB组,指定为向量。

数据类型:双倍的

每个资产权重的边界类型,指定为标量字符向量或字符串,或字符向量的单元格数组或字符串数组。有关详细信息,请参阅setBounds

数据类型:char|细胞|一串

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

数据类型:双倍的

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

数据类型:双倍的

成交量约束,指定为标量。

数据类型:双倍的

销售额的营业额约束,指定为标量。

数据类型:双倍的

对采购的营业额约束,指定为标量。

数据类型:双倍的

组合对象建模

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

数据类型:双倍的

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

数据类型:双倍的

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

数据类型:双倍的

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

数据类型:双倍的

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

数据类型:双倍的

对象功能

SetAssetList. 建立资产的标识符列表
setInitPort 建立初始或当前的投资组合
setDefaultConstraints 使用非负权重设置投资组合约束,其总和为1
估计 根据数据估计资产回报的平均值和协方差
设定成本 按比例设定交易成本
addEquality 为产物权重和现有约束添加线性平等约束
addGroupRatio 将组合权重的组比率约束添加到现有组比率约束
添加组 将组合权重的组约束添加到现有组约束
兼容性 将投资组合权重的线性不等式约束添加到现有约束
getBounds 从投资组合对象中获取投资组合权重的界限
getBudget 从投资组合对象获取预算约束边界
getCosts 从投资组合对象获取买卖交易成本
庇护 从公文包对象获取相等约束数组
getgroupratio. 从公文包对象获取组比率约束数组
getgroups. 从公文包对象获取组约束数组
GetineQuality. 从公文包对象获取不等式约束数组
getonewayturnover 从投资组合对象获取单向营业额限制
集合群 为组合权重设置组约束
集不等式 为产品组合重量设置线性不等式约束
setBounds 为投资组合对象设置投资组合权重的界限
setMinMaxNumAssets 在投资组合对象中投资的资产数量的基数限制
setBudget 设置预算约束
设定成本 按比例设定交易成本
setDefaultConstraints 使用非负权重设置投资组合约束,其总和为1
平等 为投资组合权重设置线性等式约束
集合比率 为投资组合权重设置组比率约束
setInitPort 建立初始或当前的投资组合
setonewayturnover. 设置单向投资组合周转约束
塞起 设置最大投资组合周转约束
检查可行性 根据投资组合对象检查输入投资组合的可行性
estismsbounds. 估计投资组合的全局上界和下界
估计边界 在有效边界上估计指定数量的最优投资组合
estismsfrontierbyreturn. 估计有针对性产品组合的最佳投资组合
estismsFrontierByRisk. 估计具有目标投资组合风险的最优投资组合
估计前沿极限 在有效边界的端点估计最优投资组合
情节边界 绘制有效边界
估计收益 估计投资组合的平均收益
estibalportrisk. 根据与相应对象关联的风险代理估算投资组合风险
塞索尔弗 选择主求解器并指定组合优化的相关求解器选项
setProbabyLevel. 设置VAR和CVAR计算的概率级别
塞塞纳里奥斯 通过直接矩阵设置资产回报情况
获取场景 从portfolio对象获取方案
simulatenormalscenariosbydata. 从数据模拟多元正常资产回报情景
simulatenormalscenariosbyments 模拟资产回报的平均值和协方差的多变量正常资产返回方案
估计情景时刻 估算资产返回方案的平均值和协方差
estibalportvar. 估算portfoliocvar对象的价值风险

估计端口STD

例子

全部收缩

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

p = PortfolioCVaR;disp (p);
具有属性的PortfolioVaR:BuyCost:[]SellCost:[]无风险利率:[]概率级别:[]营业额:[]BuyTornations:[]SellTornations:[]NumCenarios:[]名称:[]NumAssetList:[]初始端口:[]AInequality:[]bInequality:[]AEquality:[]bEquality:[]下限:[]上限:[]下限:[]下限预算:[]上限:[]上限预算:[]GroupMatrix:]LowerGroup:[]上组:[]组A:[]组B:[]下组:[]上比率:[]最小资产组:[]最大资产组:[]边界类型:[]

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

你可以使用PortfolioCVaR对象直接设置“标准”产品组合优化问题。给定的资产方案在变量中返回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 = PortfolioCVaR(“情景”,AssetScenarios,...“LowerBound”, 0,'LowerBudget'1.“最高预算”1....“ProbabilityLevel”, 0.95)
p = portfoliocvar与属性:buycost:[] sellcost:[]风险职位:[]概率vervel:0.9500营业额:[] Buyturnover:[] NumScenarios:20000名称:[] NumAstl:4 Assetlist:[] initorper:[]粉碎:[]培训:[] aequality:[]胎粪:[]下行:[4x1双]上行:[] upperBudget:1 GroupMatrix:[]较低组:[] GroupGoup:[] GroupA:[] Dreamratio:[] Upperratio:[] minnumassets:[] maxnumassets:[] buddtype:[]

请注意,下面物业价值以来经过标量扩展assetscenarios.提供问题的维度。

使用一系列步骤是完成相同任务的另一种方法,即建立一个“标准”CVaR投资组合优化问题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.0119 0.0336 0.1225];m=m/12;C=C/12;AssetScenarios=mvnrnd(m,C,20000);p=PortfolioCVaR;p=设置场景(p,资产场景);p=投资组合风险(p,“LowerBound”,0);p = PortfolioCVaR (p,'LowerBudget'1.“最高预算”,1);p = setProbabyLevel(p,0.95);PlotFrontier(P);

这种方法是可行的,因为调用PortfolioCVaR是以这个特定的顺序。在这种情况下,呼叫初始化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.0119 0.0336 0.1225];m=m/12;C=C/12;AssetCenarios=mvnrnd(m,C,20000);p=PortfolioCVaR;p=PortfolioCVaR(p,“LowerBound”, 0(大小(m)));p = PortfolioCVaR (p,'LowerBudget'1.“最高预算”, 1); p=设定概率水平(p,0.95);p=设置场景(p,资产场景);(p);

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

您可以创建一个PortfolioCVaR对象,pPortfolioCVaR使用用于属性名称的快捷方式的对象。

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 = PortfolioCVaR(“场景”,AssetScenarios,'磅', 0,'预算'1.“plevel”, 0.95)
p = portfoliocvar与属性:buycost:[] sellcost:[]风险职位:[]概率vervel:0.9500营业额:[] Buyturnover:[] NumScenarios:20000名称:[] NumAstl:4 Assetlist:[] initorper:[]粉碎:[]培训:[] aequality:[]胎粪:[]下行:[4x1双]上行:[] upperBudget:1 GroupMatrix:[]较低组:[] GroupGoup:[] GroupA:[] Dreamratio:[] 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 = PortfolioCVaR; p = setScenarios(p, AssetScenarios); p.ProbabilityLevel = 0.95; p.LowerBudget = 1; p.UpperBudget = 1; p.LowerBound = zeros(size(m)); disp(p)
具有属性的PortfolioVaR:BuyCost:[]SellCost:[]无风险利率:[]概率级别:0.9500营业额:[]BuyTournal:[]SellTournal:[]NumScenarios:20000名称:[]NumAssets:4资产列表:[]初始端口:[]AInequality:[]BINEQUITY:[]AEQUITY:[]BEQUITY:[]下限:[4x1双倍]上限:[]LowerBudget:1 UpperBudget:1 GroupMatrix:[]LowerGroup:[]UpperGroup:[]A组:[]B组:[]LowerRatio:[]UpperRatio:[]MinNumAssets:[]MaxNumAssets:[]BoundType:[]

无法将方案直接分配给PortfolioCVaR对象。必须始终通过以下两种方式之一设置场景:PortfolioCVaR功能塞塞纳里奥斯功能,或任何场景仿真功能。

创建高效的投资组合:

负载大写字母p = portfoliocvar(“资产清单”,资产(1:12));p = simulatenormalscenariosbydata(p,数据(:,1:12),20000,“missingdata”,true);p=setDefaultConstraints(p);p=setProbabilityLevel(p,0.95);plotFrontier(p);

pwgt = estimateFrontier(p, 5);pnames =细胞(1、5);i = 1:5 pnames {i} = sprintf('端口%d',一世);结束Blotter = DataSet([{PWGT},Pnames],'obsnames',p.AssetList);吸墨纸;
端口1端口2端口3端口4 Port5 apple 0.010562 0.07364 0.11931 0.13073 0 amazon 0 0 0 0 0 cisco戴尔0.022649 0 0 0 0 0 0 0 0 0 EBAY 0 0 0 0 0 google 0.203 0.38011 0.56202 0.75919 1 hp IBM 0.44444 0.36456 0.26305 0.11009 0.042772 - 0.0094711 0 0 0 0 intel 0 0 0 0 0 microsoft 0.27658 0.17222 0.055624 0 0 ORCL 0 0 0 0 0 yahoo 0 0 0 0 0

更多关于

全部展开

参考

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

在R2012B中介绍