主要内容

投资组合

创建组合对象的均值-方差投资组合优化和分析

描述

使用投资组合函数创建一个投资组合均值-方差投资组合优化的对象。

投资组合优化的主要工作流程是创建的实例投资组合对象完全指定了一个投资组合优化问题和操作投资组合使用支持函数对象获取和分析金宝app有效的投资组合。在这个工作流程的详细信息,请参见组合对象的工作流

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

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

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

p =组合(property1, value1, property2, value2,…);

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

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

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

q =组合(p,)

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

均值-方差理论基础上的更详细的信息优化,明白了投资组合优化理论

创建

描述

例子

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

例子

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

例子

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

输入参数

全部展开

以前建造的投资组合使用指定的对象,投资组合

属性

全部展开

设置对象

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

数据类型:细胞|字符串

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

数据类型:

名字的实例投资组合对象,指定为一个特征向量或一个字符串。

数据类型:字符|字符串

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

数据类型:

组合对象的限制

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

数据类型:

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

数据类型:

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

数据类型:

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

数据类型:

A组权重由权重有界在B组,指定为一个矩阵。

数据类型:

B组重量、指定为一个矩阵。

数据类型:

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

数据类型:

下界约束,指定为一个向量。

数据类型:

下界的预算约束,指定为一个标量。

数据类型:

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

数据类型:

最低之间的分配比例GroupAGroupB,指定为一个向量。

数据类型:

为跟踪误差上界约束,指定为一个标量。

数据类型:

跟踪投资组合跟踪误差约束,指定为一个向量。

数据类型:

上限约束,指定为一个向量。

数据类型:

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

数据类型:

上限约束,指定为一个向量。

数据类型:

最大之间的分配比例GroupAGroupB,指定为一个向量。

数据类型:

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

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

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

数据类型:

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

数据类型:

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

数据类型:

营业额限制购买,指定为一个标量。

数据类型:

营业额约束,指定为一个标量。

数据类型:

组合对象建模

协方差的资产回报,指定为一个方阵。如果AssetCovar不是一个对称半正定矩阵,使用nearcorr创建一个相关矩阵的半正定矩阵。

数据类型:

平均资产回报率,指定为一个向量。

数据类型:

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

数据类型:

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

数据类型:

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

数据类型:

对象的功能

setAssetList 建立资产的标识符列表
setInitPort 设置初始或当前的投资组合
setDefaultConstraints 建立投资组合约束非负权重之和为1
getAssetMoments 获取资产回报投资对象的均值和协方差
setAssetMoments 设置的时刻(均值和协方差)投资组合的资产回报对象
estimateAssetMoments 估计资产的回报数据的均值和协方差
setcost 设置成比例的交易成本
addEquality 项目组合权重的线性等式约束添加到现有的约束
addGroupRatio 集团为投资组合权重比例约束添加到现有组比例限制
addGroups 集团为投资组合权重约束添加到现有的组织约束
addInequality 项目组合权重的线性不等式约束添加到现有的约束
getBounds 得到组合权重的组合对象的范围
getBudget 从投资组合获得预算约束边界对象
getCosts 从投资组合获得买卖交易成本对象
getEquality 从投资组合获得等式约束数组对象
getGroupRatio 从投资组合获得组比约束数组对象
getGroups 从投资组合获得集团约束数组对象
getInequality 从投资组合获得不等式约束数组对象
getOneWayTurnover 从投资组合获得单向流动约束对象
setGroups 建立集团为投资组合权重约束
setInequality 建立线性不等式约束的组合权重
setBounds 建立投资组合权重组合对象的范围
setBudget 建立预算限制
setcost 设置成比例的交易成本
setEquality 建立线性等式约束的组合权重
setGroupRatio 建立集团为投资组合权重比例限制
setInitPort 设置初始或当前的投资组合
setOneWayTurnover 设置单向组合营业额约束
setTurnover 设置最大组合营业额约束
setTrackingPort 建立基准投资组合跟踪误差约束
setTrackingError 设置最大的投资组合跟踪误差的约束
setMinMaxNumAssets 集基数限制资产投资组合对象的数量
checkFeasibility 检查输入组合对投资对象的可行性
estimateBounds 估计全球的上下边界的投资组合
estimateFrontier 估计指定数量的最优投资组合有效边界
estimateFrontierByReturn 估计最优投资组合和有针对性的投资组合的回报
estimateFrontierByRisk 估计最优投资组合和有针对性的投资组合的风险
estimateFrontierLimits 估计最优投资组合有效边界的端点
plotFrontier 情节有效边界
estimateMaxSharpeRatio 估计有效投资组合的夏普比率最大化为投资对象
estimatePortMoments 估计投资组合回报的投资组合对象的时刻
estimatePortReturn 估计是投资组合的回报
estimatePortRisk 估计投资组合风险根据风险代理与相应的对象
setSolver 选择主要解决并指定相关的投资组合优化的解算器选项
setSolverMINLP 选择混合整数非线性规划(适应)求解组合优化

例子

全部折叠

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

p =投资组合;disp (p);
投资组合的属性:BuyCost: [] SellCost: [] RiskFreeRate: [] AssetMean: [] AssetCovar: [] TrackingError: [] TrackingPort:[]营业额:[]BuyTurnover: [] SellTurnover:[]的名字:[]NumAssets: [] AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality:[]下界:[]UpperBound: [] LowerBudget: [] UpperBudget: [] GroupMatrix: [] LowerGroup: [] UpperGroup: [] GroupA: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets: [] MaxNumAssets: [] BoundType: []

这种方法提供了一种方法来建立一个投资组合优化问题投资组合函数。然后,您可以使用相关的设置功能设置和修改属性的集合投资组合对象。

您可以使用投资组合对象直接建立一个“标准”投资组合优化问题,鉴于资产回报率的均值和协方差的变量C

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);p =组合(“assetmean”米,“assetcovar”C“lowerbudget”,1“upperbudget”,1下界的,0)
p =组合的属性:BuyCost: [] SellCost: [] RiskFreeRate: [] AssetMean: x1双[4]AssetCovar: [4 x4双]TrackingError: [] TrackingPort:[]营业额:[]BuyTurnover: [] SellTurnover:[]的名字:[]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: []

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

另一种方法是使用一系列步骤完成相同的任务,即建立一个“标准”投资组合优化问题,鉴于资产回报率的均值和协方差的变量C(这也说明参数名称不区分大小写)。

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);p =投资组合;p =组合(p,“assetmean”米,“assetcovar”C);p =组合(p,“lowerbudget”,1“upperbudget”1);p =组合(p,下界的,0);plotFrontier (p);

图包含一个轴。轴与标题\ bfEfficient前沿包含一个类型的对象。

这种方式工作,因为调用投资组合在这个特定的顺序。在这种情况下,调用初始化AssetMeanAssetCovar提供的尺寸问题。如果你做这个步骤,您必须显式地维度下界属性如下:

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);p =投资组合;p =组合(p,下界的,0(大小(m)));p =组合(p,“LowerBudget”,1“UpperBudget”1);p =组合(p,“AssetMean”米,“AssetCovar”C);plotFrontier (p);

图包含一个轴。轴与标题\ bfEfficient前沿包含一个类型的对象。

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

您可以创建一个组合对象,p投资组合使用快捷方式属性名。

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);p =组合(“的意思是”米,“柯伐合金”C“预算”,1“磅”,0)
p =组合的属性:BuyCost: [] SellCost: [] RiskFreeRate: [] AssetMean: x1双[4]AssetCovar: [4 x4双]TrackingError: [] TrackingPort:[]营业额:[]BuyTurnover: [] SellTurnover:[]的名字:[]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);p =投资组合;p。NumAssets = numel(m); p.AssetMean = m; p.AssetCovar = C; p.LowerBudget = 1; p.UpperBudget = 1; p.LowerBound = zeros(size(m)); disp(p)
投资组合的属性:BuyCost: [] SellCost: [] RiskFreeRate: [] AssetMean: x1双[4]AssetCovar: [4 x4双]TrackingError: [] TrackingPort:[]营业额:[]BuyTurnover: [] SellTurnover:[]的名字:[]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: []

创建有效的投资组合:

负载CAPMuniversep =组合(“AssetList”、资产(1:12));p = estimateAssetMoments (p、数据(:1:12),“missingdata”,真正的);p = setDefaultConstraints (p);plotFrontier (p);

图包含一个轴。轴与标题\ bfEfficient前沿包含一个类型的对象。

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.017926 0.058247 0.097816 0.12955 0 amazon 0 0 0 0 0 cisco戴尔0.0041906 0 0 0 0 0 0 0 0 0 EBAY 0 0 0 0 0 google 0.16144 0.35678 0.55228 0.75116 1 hp IBM 0.46422 0.36045 0.25577 0.11928 0.052566 0.032302 0.011186 0 0 0 intel 0 0 0 0 0 microsoft 0.29966 0.19222 0.082949 0 0 ORCL 0 0 0 0 0 yahoo 0 0 0 0 0

更多关于

全部展开

引用

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

介绍了R2011a