主要内容

PortfolioMAD

创建PortfolioMAD对象的平均绝对偏差投资组合优化和分析

描述

PortfolioMAD对象实现平均绝对偏差投资组合优化,疯狂的代表“平均绝对偏差”。PortfolioMAD对象支持函数特定金宝app于疯狂的投资组合优化。

疯狂的投资组合优化的主要工作流程是创建的实例PortfolioMAD对象完全指定了一个投资组合优化问题和操作PortfolioMAD对象来获取和分析有效的投资组合。有关工作流在使用的更多信息PortfolioMAD对象,看到PortfolioMAD对象的工作流

您可以使用PortfolioMAD对象在几个方面。建立一个投资组合优化问题中PortfolioMAD对象,最简单的语法是:

p = PortfolioMAD;
这个语法创建一个PortfolioMAD对象,p,这样所有对象属性是空的。

PortfolioMAD对象也接受的名称-值对集合参数属性和它们的值。的PortfolioMAD与一般的语法对象接受输入的属性:

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

如果一个PortfolioMAD对象存在,语法允许第一(只有第一个参数)PortfolioMAD对象与随后的名称-值对现有对象参数的属性被添加或修改。例如,现有的PortfolioMAD对象p一般的语法是:

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

输入参数名称不区分大小写,但必须完全指定。此外,一些属性可以指定替代参数名称(见快捷方式的属性名)。的PortfolioMAD对象试图从输入和检测问题的大小,一旦设置好了,后续的输入可以接受各种标量或矩阵扩张操作,简化整个过程制定一个问题。此外,一个PortfolioMAD对象是一个值对象,给出投资组合p下面的代码创建了两个对象,p,这是不同的:

q = PortfolioMAD (p,)

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

更详细的信息的条件风险价值投资组合优化的理论基础,明白了投资组合优化理论

创建

描述

例子

p= PortfolioMAD创建一个空PortfolioMAD对象平均绝对偏差投资组合优化和分析。然后您可以添加元素PortfolioMAD对象使用“添加”和“设置”功能的支金宝app持。有关更多信息,请参见创建PortfolioMAD对象

例子

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

例子

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

输入参数

全部展开

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

属性

全部展开

设置PortfolioMAD对象

宇宙中资产的名称或符号,指定为一个单元阵列特征向量或一个字符串数组。

数据类型:细胞|字符串

最初的投资组合,指定为一个向量。

数据类型:

名字的实例PortfolioMAD对象,指定为一个特征向量。

数据类型:字符|字符串

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

数据类型:

PortfolioMAD对象约束

线性等式约束矩阵,指定为一个矩阵。有关更多信息,请参见线性等式约束

数据类型:

线性不等式约束矩阵,指定为一个矩阵。有关更多信息,请参见线性不等式约束

数据类型:

线性等式约束向量,指定为一个向量。有关更多信息,请参见线性等式约束

数据类型:

线性不等式约束向量,指定为一个向量。有关更多信息,请参见线性不等式约束

数据类型:

A组权重由权重有界在B组,指定为一个矩阵。有关更多信息,请参见组约束

数据类型:

B组重量、指定为一个矩阵。有关更多信息,请参见组约束

数据类型:

组成员关系矩阵,指定为一个矩阵。有关更多信息,请参见组比例限制

数据类型:

下界约束,指定为一个向量。有关更多信息,请参见“简单”绑定约束“条件”绑定约束

数据类型:

下界的预算约束,指定为一个标量。有关更多信息,请参见预算限制

数据类型:

下界约束组,指定为一个向量。有关更多信息,请参见组约束

数据类型:

最低之间的分配比例GroupAGroupB,指定为一个向量。有关更多信息,请参见组比例限制

数据类型:

上限约束,指定为一个向量。有关更多信息,请参见“简单”绑定约束“条件”绑定约束

数据类型:

预算上限约束,指定为一个标量。有关更多信息,请参见预算限制

数据类型:

上限约束,指定为一个向量。有关更多信息,请参见组约束

数据类型:

最大之间的分配比例GroupAGroupB,指定为一个向量。有关更多信息,请参见组比例限制

数据类型:

重量为每个资产类型的范围,或字符串指定为一个标量特征向量,特征向量的单元阵列或一个字符串数组。有关更多信息,请参见setBounds

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

最小数量的资产在投资组合分配,指定为一个标量数值。有关更多信息,请参见setMinMaxNumAssets基数约束

数据类型:

最大数量的资产在投资组合分配,指定为一个标量数值。有关更多信息,请参见setMinMaxNumAssets基数约束

数据类型:

营业额限制购买,指定为一个标量。有关更多信息,请参见平均营业额约束单向流动的约束

数据类型:

营业额限制销售,指定为一个标量。有关更多信息,请参见平均营业额约束单向流动的约束

数据类型:

营业额约束,指定为一个标量。有关更多信息,请参见平均营业额约束单向流动的约束

数据类型:

PortfolioMAD对象建模

比例购买成本,指定为一个向量。有关更多信息,请参见净投资收益

数据类型:

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

数据类型:

风险概率水平也就是1−(损失概率),指定为一个标量。

数据类型:

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

数据类型:

比例的销售成本,指定为一个向量。有关更多信息,请参见净投资收益

数据类型:

对象的功能

setAssetList 建立资产的标识符列表
setInitPort 设置初始或当前的投资组合
setDefaultConstraints 建立投资组合约束非负权重之和为1
estimateAssetMoments 估计资产的回报数据的均值和协方差
setcost 设置成比例交易费用的投资组合
addEquality 项目组合权重的线性等式约束添加到现有的约束
addGroupRatio 集团为投资组合权重比例约束添加到现有组比例限制
addGroups 集团为投资组合权重约束添加到现有的组织约束
addInequality 项目组合权重的线性不等式约束添加到现有的约束
getBounds 得到组合权重的组合对象的范围
getBudget 从投资组合获得预算约束边界对象
getCosts 从投资组合获得买卖交易成本对象
getEquality 从投资组合获得等式约束数组对象
getGroupRatio 从投资组合获得组比约束数组对象
getGroups 从投资组合获得集团约束数组对象
getInequality 从投资组合获得不等式约束数组对象
getOneWayTurnover 从投资组合获得单向流动约束对象
setGroups 建立集团为投资组合权重约束
setInequality 建立线性不等式约束的组合权重
setBounds 设置范围为投资组合权重组合
setMinMaxNumAssets 集基数限制资产投资组合的数量
setBudget 建立预算约束的投资组合
setcost 设置成比例交易费用的投资组合
setDefaultConstraints 建立投资组合约束非负权重之和为1
setEquality 建立线性等式约束的组合权重
setGroupRatio 建立集团为投资组合权重比例限制
setInitPort 设置初始或当前的投资组合
setOneWayTurnover 设置单向组合营业额约束
setTurnover 设置最大组合营业额约束
checkFeasibility 检查输入组合对投资对象的可行性
estimateBounds 估计全球的上下边界的投资组合
estimateFrontier 估计指定数量的最优投资组合有效边界
estimateFrontierByReturn 估计最优投资组合和有针对性的投资组合的回报
estimateFrontierByRisk 估计最优投资组合和有针对性的投资组合的风险
estimateFrontierLimits 估计最优投资组合有效边界的端点
plotFrontier 情节有效边界
estimatePortReturn 估计是投资组合的回报
estimatePortRisk 估计投资组合风险根据风险代理与相应的对象
setSolver 选择主要解决并指定相关的投资组合优化的解算器选项
setProbabilityLevel 设置为VaR和CVaR计算概率水平
setScenarios 设置资产回报场景直接矩阵
getScenarios 从投资组合获得场景对象
simulateNormalScenariosByData 模拟多元正态资产回报的场景数据
simulateNormalScenariosByMoments 资产返回场景模拟多元正态均值和协方差的资产回报
estimateScenarioMoments 估计均值和协方差资产回报的场景
estimatePortStd 估计标准偏差的投资组合的回报

例子

全部折叠

您可以创建一个PortfolioMAD对象,p,没有输入参数和显示使用disp

p = PortfolioMAD;disp (p);
PortfolioMAD属性:BuyCost: [] SellCost: [] RiskFreeRate:[]营业额:[]BuyTurnover: [] SellTurnover: [] NumScenarios:[]的名字:[]NumAssets: [] AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality:[]下界:[]UpperBound: [] LowerBudget: [] 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“UpperBudget”,1)
p = PortfolioMAD属性:BuyCost: [] SellCost: [] RiskFreeRate:[]营业额:[]BuyTurnover: [] SellTurnover: [] NumScenarios: 20000姓名:[]NumAssets: 4 AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality:[]下界:x1双[4]UpperBound: [] LowerBudget: 1 UpperBudget: 1 GroupMatrix: [] LowerGroup: [] UpperGroup: [] GroupA: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets: [] MaxNumAssets: [] BoundType: []

请注意,下界属性值进行标量扩张AssetScenarios提供的尺寸问题。

另一种方法是使用一系列步骤完成相同的任务,即建立一个“标准”疯狂的组合优化问题,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);

图包含一个坐标轴对象。坐标轴对象与标题E f f我E n c t前沿,包含平均绝对偏差投资组合的回报,ylabel意味着投资组合回报的包含一个类型的对象。

这种方式工作,因为调用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,下界的,0(大小(m)));p = PortfolioMAD (p,“LowerBudget”,1“UpperBudget”1);p = setScenarios (p, AssetScenarios);plotFrontier (p);

图包含一个坐标轴对象。坐标轴对象与标题E f f我E n c t前沿,包含平均绝对偏差投资组合的回报,ylabel意味着投资组合回报的包含一个类型的对象。

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

您可以创建一个PortfolioMAD对象,pPortfolioMAD对象使用快捷方式属性名称。

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: [] RiskFreeRate:[]营业额:[]BuyTurnover: [] SellTurnover: [] NumScenarios: 20000姓名:[]NumAssets: 4 AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality:[]下界:x1双[4]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);
PortfolioMAD属性:BuyCost: [] SellCost: [] RiskFreeRate:[]营业额:[]BuyTurnover: [] SellTurnover: [] NumScenarios: 20000姓名:[]NumAssets: 4 AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality:[]下界:x1双[4]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年,“missingdata”,真正的);p = setDefaultConstraints (p);plotFrontier (p);

图包含一个坐标轴对象。坐标轴对象与标题E f f我E n c t前沿,包含平均绝对偏差投资组合的回报,ylabel意味着投资组合回报的包含一个类型的对象。

pwgt = estimateFrontier (p, 5);pnames =细胞(1、5);i = 1:5 pnames{我}= sprintf (的端口% d ',我);结束吸墨纸=数据集([{pwgt}, pnames],“obsnames”,p.AssetList);disp(流水帐);
端口1端口2端口3端口4 Port5 apple 0.030785 0.074603 0.11383 0.13349 0 amazon 0 0 0 0 0 cisco戴尔0.010139 0 0 0 0 0 0 0 0 0 EBAY 0 0 0 0 0 google 0.1607 0.35186 0.54435 0.74908 1 hp IBM 0.45716 0.38008 0.29373 0.11743 0.056834 - 0.024903 0 0 0 0 intel 0 0 0 0 0 microsoft 0.28438 0.16855 0.048097 0 0 ORCL 0 0 0 0 0 yahoo 0 0 0 0 0

更多关于

全部展开

引用

[1]为完整的引用列表PortfolioMAD对象,明白了投资组合优化

版本历史

介绍了R2013b