主要内容

文件夹

创建Portfolio对象,用于均值-方差组合优化和分析

描述

使用文件夹函数创建文件夹均值-方差组合优化的目标。

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

你可以使用文件夹对象有几种方法。建立一个投资组合优化问题文件夹对象,最简单的语法是:

p =投资组合;
这句法创建文件夹对象,p,以便所有对象属性都为空。

文件夹对象还接受的名称 - 值对的集合的参数为属性及其值。的文件夹对象以一般语法接受属性的输入:

P =投资组合( 'property1',值1, 'property2',值2,...);

如果一个文件夹对象存在时,语法允许的第一个参数(且仅第一个参数)文件夹对象为已存在的对象,其后续的名称-值对参数用于添加或修改属性。例如,给定一个现有的文件夹对象p,一般语法为:

P =组合(P, 'property1',值1, 'property2',值2,...);

输入参数名称不区分大小写,但必须完全指定。此外,可以用可选参数名指定一些属性(参见属性名称的快捷方式).的文件夹对象试图从输入中检测问题维度,一旦设置,后续的输入可以进行各种标量或矩阵展开操作,从而简化整个流程,以明确问题。此外,一个文件夹对象是一个值对象,因此,给定投资组合p中,下面的代码创建两个对象,p,那是不同的:

q=投资组合(p,...

在创建一个文件夹对象,你可以使用相关的对象函数来设置组合的限制,分析了有效边界,并验证了投资组合模型。

有关均值-方差优化理论基础的更多详细信息,请参阅投资组合优化理论

创建

描述

例子

p=投资组合创建一个空文件夹对象进行均值-方差投资组合优化和分析。然后,您可以将元素添加到文件夹对象,使用支持的“add”和“se金宝appt”函数。有关更多信息,请参见创建投资组合对象

例子

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 为Portfolio对象设置资产回报的时刻(均值和协方差)
估计资产时刻 根据数据估计资产收益的均值和协方差
setcost 设置比例交易成本
addEquality 将投资组合权重的线性等式约束添加到现有约束
addGroupRatio 添加投资组合权组比限制到现有组比率限制
addGroups 向现有的组约束中添加组合权重的组约束
addInequality 加入线性不等式约束的投资组合权重存在的制约因素
的getBounds 从投资组合对象中获取投资组合权重的界限
getBudget 从投资组合对象中获得预算约束边界
getCosts 从投资组合对象中获取买卖交易费用
getEquality 从投资组合对象中获取相等约束数组
getGroupRatio 从投资组合对象中获取组比率约束数组
getGroups 获得从组合对象组约束阵列
getInequality 从投资组合对象中获取不等式约束数组
getOneWayTurnover 从投资组合对象获取单向周转约束
setGroups 为组合权重设置组约束
setInequality 为投资组合权重设置线性不等式约束
setBounds 为投资组合对象设置投资组合权重的界限
setBudget 设置预算约束
setcost 设置比例交易成本
setEquality 建立投资组合权重的线性等式约束
setGroupRatio 建立组合权重的组比率约束
setInitPort 建立初始或当前的投资组合
setOneWayTurnover 建立单向的投资组合周转率约束
周转率 设置最大投资组合周转率约束
设置跟踪端口 设置基准投资组合的跟踪误差约束
setTrackingError 建立最大投资组合跟踪误差约束
setMinMaxNumAssets 设置投资组合对象的资产数量的基数约束
checkFeasibility 对检查对象的组合输入组合的可行性
estimateBounds 估计投资组合的全局上界和下界
estimateFrontier 在有效边界上估计指定数量的最优投资组合
estimateFrontierByReturn 用目标投资组合收益估计最优投资组合
estimateFrontierByRisk 估计有针对性的组合风险的最佳组合
estimateFrontierLimits 估计有效边界端点的最优投资组合
plotFrontier 绘制有效边界
estimateMaxSharpeRatio 评估有效的投资组合以最大化投资组合对象的夏普比率
estimatePortMoments 估算投资组合对象的投资组合收益时刻
estimatePortReturn 估计投资组合的平均收益
estimatePortRisk 根据与相应对象相关联的风险代理估计投资组合风险
setSolver 选择主求解器并指定组合优化的相关求解器选项
setSolverMINLP 选择混合整数非线性规划(MINLP)求解器进行投资组合优化

例子

全部折叠

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

p =投资组合;disp (p);
具有属性的投资组合:BuyCost: [] SellCost: [] RiskFreeRate: [] AssetMean: [] AssetCovar: [] TrackingError: [] TrackingPort: [] Turnover: [] BuyTurnover: [] SellTurnover: [] Name: [] NumAssets: [] AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality: [] LowerBound: [] UpperBound: [] LowerBudget: [] UpperBudget:[] GroupMatrix: [] LowerGroup: [] UpperGroup: [] GroupA: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets: [] MaxNumAssets: [] BoundType: []

该方法提供了一种建立投资组合优化问题的方法文件夹函数。属性中的属性集合可以使用关联的set函数来设置和修改文件夹对象。

你可以使用文件夹对象直接建立一个“标准”的投资组合优化问题,给出了资产收益率的均值和协方差变量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: [4x1 double] AssetCovar: [4x4 double] TrackingError: [] TrackingPort: [] Turnover: [] BuyTurnover: [] SellTurnover: [] Name: [] NumAssets: 4 AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality: [] LowerBound: [4x1 double] 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);

图中包含一个轴对象。标题为E的轴对象包含一个类型为line的对象。

这种方法是可行的,因为调用文件夹在本例中,调用初始化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);

图中包含一个轴对象。标题为E的轴对象包含一个类型为line的对象。

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

您可以创建一个投资组合对象,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: [4x1 double] AssetCovar: [4x4 double] TrackingError: [] TrackingPort: [] Turnover: [] BuyTurnover: [] SellTurnover: [] Name: [] NumAssets: 4 AssetList: [] InitPort: [] AInequality: [] bInequality: [] 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];p =投资组合;p.NumAssets =元素个数(m); p.AssetMean = m; p.AssetCovar = C; p.LowerBudget = 1; p.UpperBudget = 1; p.LowerBound = zeros(size(m)); disp(p)
资产组合:BuyCost: [] SellCost: [] RiskFreeRate: [] AssetMean: [4x1 double] AssetCovar: [4x4 double] TrackingError: [] TrackingPort: [] Turnover: [] BuyTurnover: [] SellTurnover: [] Name: [] NumAssets: 4 AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality: [] LowerBound: [4x1 double] 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);

图中包含一个轴对象。标题为E的轴对象包含一个类型为line的对象。

pwgt = estimateFrontier(p, 5);pnames =细胞(1、5);i=1:5 pnames{i}=sprintf('端口%d',i);结束吸墨纸=数据集([{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