主要内容

portopt.迁移到投资组合对象

迁移portopt.没有输出参数

此示例显示了如何迁移portopt.没有输出参数到投资组合对象。

基础的portopt.功能表示为:

expreturn = [0.0054;0.0531;0.0779;0.0934;0.0130]expcoomovariance = [0.0569,00092,00039,00.0070,0.0022;0.0092,0.0380,0.0035,0.0197,0.0028;0.0039,0.0035,0.0997,0.0100,0.0070;0.0070,0.0197,0.0100,0.0461,0.0050;0.0022,0.0028,00070,0.0050,0.0573]; NumPorts = 10; portopt(ExpReturn, ExpCovariance, NumPorts);

迁移A.portopt.对Portfolio对象没有输出参数的语法:

expreturn = [0.0054;0.0531;0.0779;0.0934;0.0130]expcoomovariance = [0.0569,00092,00039,00.0070,0.0022;0.0092,0.0380,0.0035,0.0197,0.0028;0.0039,0.0035,0.0997,0.0100,0.0070;0.0070,0.0197,0.0100,0.0461,0.0050;0.0022,0.0028,00070,0.0050,0.0573]; NumPorts = 10; p = Portfolio; p = setAssetMoments(p, ExpReturn, ExpCovariance); p = setDefaultConstraints(p); plotFrontier(p, NumPorts);

没有输出参数,portopt.绘制有效的边境。虽然投资组合对象写入当前的数据窗口而不是在生成绘图时,但投资组合对象写入当前的数据窗口而不是创建新窗口。

迁移portopt.输出参数

此示例显示了如何迁移portopt.输出参数到投资组合对象。

具有输出参数,基本功能portopt.返回投资组合时刻和重量。设置投资组合对象后,在单独的步骤中获得矩和权重。

expreturn = [0.0054;0.0531;0.0779;0.0934;0.0130]expcoomovariance = [0.0569,00092,00039,00.0070,0.0022;0.0092,0.0380,0.0035,0.0197,0.0028;0.0039,0.0035,0.0997,0.0100,0.0070;0.0070,0.0197,0.0100,0.0461,0.0050;0.0022,0.0028,00070,0.0050,0.0573]; NumPorts = 10; [PortRisk, PortReturn, PortWts] = portopt(ExpReturn, ExpCovariance, NumPorts); display(PortWts);
PortWts = 0.2103 0.2746 0.1157 0.1594 0.2400 0.1744 0.2657 0.1296 0.2193 0.2110 0.1386 0.2567 0.1436 0.2791 0.1821 0.1027 0.2477 0.1575 0.3390 0.1532 0.0668 0.2387 0.1714 0.3988 0.1242 0.0309 0.2298 0.1854 0.4587 0.0953 0 0.2168 0.1993 0.5209 0.0629 0 0.1791 0.2133 0.5985 0.0091 0 0.0557 0.2183 0.7260 0 0 0 01.0000 0.

迁移A.portopt.语法与输出参数:

expreturn = [0.0054;0.0531;0.0779;0.0934;0.0130]expcoomovariance = [0.0569,00092,00039,00.0070,0.0022;0.0092,0.0380,0.0035,0.0197,0.0028;0.0039,0.0035,0.0997,0.0100,0.0070;0.0070,0.0197,0.0100,0.0461,0.0050;0.0022,0.0028,00070,0.0050,0.0573]; NumPorts = 10; p = Portfolio; p = setAssetMoments(p, ExpReturn, ExpCovariance); p = setDefaultConstraints(p); PortWts = estimateFrontier(p, NumPorts); [PortRisk, PortReturn] = estimatePortMoments(p, PortWts); display(PortWts);
PortWts = 0.2103 0.1744 0.1386 0.1027 0.0668 0.0309 0 0 0 0 0.2746 0.2657 0.2567 0.2477 0.2387 0.2298 0.2168 0.1791 0.0557 0 0.1157 0.1296 0.1436 0.1575 0.1714 0.1854 0.1993 0.2133 0.2183 0 0.1594 0.2193 0.2791 0.3390 0.3988 0.4587 0.5209 0.5985 0.7260 1.0000 0.2400 0.2110 0.1821 0.1532 0.1242 0.0953 0.0629 0.00910 0.

portfolio对象返回portwts.与投资组合倒下列,而不是行。投资组合风险和返回仍处于列格式。

迁移portopt.对于目标返回,在高效的投资组合返回范围内

此示例显示了如何迁移portopt.目标在高效的投资组合范围内返回到投资组合对象。

portopt.可以获得具有特定目标返回级别的投资组合,但要求目标退货落在有效的回报范围内。POSTFOLIO对象通过在高效前沿的末端选择投资组合来处理这一点。

expreturn = [0.0054;0.0531;0.0779;0.0934;0.0130]expcoomovariance = [0.0569,00092,00039,00.0070,0.0022;0.0092,0.0380,0.0035,0.0197,0.0028;0.0039,0.0035,0.0997,0.0100,0.0070;0.0070,0.0197,0.0100,0.0461,0.0050;0.0022,0.0028,00070,0.0050,0.0573]; NumPorts = 10; TargetReturn = [ 0.05; 0.06; 0.07; 0.08; 0.09 ]; [PortRisk, PortReturn, PortWts] = portopt(ExpReturn, ExpCovariance, [], TargetReturn); disp('有效目标');DISP([Portryurn,TargetReturn]);
高效目标0.0500 0.0500 0.0600 0.0600 0.0700 0.0700 0.0800 0.0800 0.0900 0.0900

迁移A.portopt.目标返回的语法在高效的投资组合范围内返回到Portfolio对象:

expreturn = [0.0054;0.0531;0.0779;0.0934;0.0130]expcoomovariance = [0.0569,00092,00039,00.0070,0.0022;0.0092,0.0380,0.0035,0.0197,0.0028;0.0039,0.0035,0.0997,0.0100,0.0070;0.0070,0.0197,0.0100,0.0461,0.0050;0.0022,0.0028,00070,0.0050,0.0573]; NumPorts = 10; TargetReturn = [ 0.05; 0.06; 0.07; 0.08; 0.09 ]; p = Portfolio; p = setAssetMoments(p, ExpReturn, ExpCovariance); p = setDefaultConstraints(p); PortWts = estimateFrontierByReturn(p, TargetReturn); [PortRisk, PortReturn] = estimatePortMoments(p, PortWts); disp('有效目标');DISP([Portryurn,TargetReturn]);
高效目标0.0500 0.0500 0.0600 0.0600 0.0700 0.0700 0.0800 0.0800 0.0900 0.0900

迁移portopt.对于目标返回范围的目标返回

此示例显示了如何迁移portopt.目标返回在高效的投资组合范围之外返回到投资组合对象。

当目标返回范围之外,有效的投资组合返回范围,portopt.生成错误。投资组合对象通过在高效前沿的末端选择投资组合来处理此功能。

expreturn = [0.0054;0.0531;0.0779;0.0934;0.0130]expcoomovariance = [0.0569,00092,00039,00.0070,0.0022;0.0092,0.0380,0.0035,0.0197,0.0028;0.0039,0.0035,0.0997,0.0100,0.0070;0.0070,0.0197,0.0100,0.0461,0.0050;0.0022,0.0028,00070,0.0050,0.0573]; NumPorts = 10; TargetReturn = [ 0.05; 0.06; 0.07; 0.08; 0.09; 0.10 ]; [PortRisk, PortReturn, PortWts] = portopt(ExpReturn, ExpCovariance, [], TargetReturn); disp('有效目标');DISP([Portryurn,TargetReturn]);
>使用Portopt(第297行)在85错误的PortOpt中(第297行)一个或多个请求的返回大于0.093400的最大可实现返回。

迁移A.portopt.目标返回的目标返回范围的返回范围返回到投资组合对象:

expreturn = [0.0054;0.0531;0.0779;0.0934;0.0130]expcoomovariance = [0.0569,00092,00039,00.0070,0.0022;0.0092,0.0380,0.0035,0.0197,0.0028;0.0039,0.0035,0.0997,0.0100,0.0070;0.0070,0.0197,0.0100,0.0461,0.0050;0.0022,0.0028,00070,0.0050,0.0573]; NumPorts = 10; TargetReturn = [ 0.05; 0.06; 0.07; 0.08; 0.09; 0.10 ]; p = Portfolio; p = setAssetMoments(p, ExpReturn, ExpCovariance); p = setDefaultConstraints(p); PortWts = estimateFrontierByReturn(p, TargetReturn); [PortRisk, PortReturn] = estimatePortMoments(p, PortWts); disp('有效目标');DISP([Portryurn,TargetReturn]);
警告:一个或多个目标返回值超出可行范围[0.0427391,0.0934]。将返回与这些值范围的终点相关联的投资组合。>在投资组合/ estismsFryierByRebreturn(106号线)高效目标0.0500 0.0600 0.0600 0.0700 0.0700 0.0800 0.0900 0.0900 0.0900 0.0900 0.0900

迁移portopt.使用波特诗输出cons

此示例显示了如何迁移portopt.当。。。的时候cons输出从波特诗与之使用portopt.

portopt.接受输入输出波特诗Pcalims.PCGLIMS., 和PCGComp.。这个例子侧重于波特诗波特诗设置线性约束portopt.在形式a *端口<= b。在矩阵中奴役= [a,b]并闯入分开一种B.阵列与a =允许(:,1:结束-1);B =奴役(:,结束);。此外,为了说明附加组约束的默认问题,请考虑三组。资产2,3和4可以构成80%的投资组合,资产1和2可以构成高达70%的投资组合,资产3,4和5的资产可以构成最高可达的投资组合的90%。

expreturn = [0.0054;0.0531;0.0779;0.0934;0.0130]expcoomovariance = [0.0569,00092,00039,00.0070,0.0022;0.0092,0.0380,0.0035,0.0197,0.0028;0.0039,0.0035,0.0997,0.0100,0.0070;0.0070,0.0197,0.0100,0.0461,0.0050;0.0022,0.0028,00070,0.0050,0.0573]; NumPorts = 10; Groups = [ 0 1 1 1 0; 1 1 0 0 0; 0 0 1 1 1 ]; GroupBounds = [ 0, 0.8; 0, 0.7; 0, 0.9 ]; LowerGroup = GroupBounds(:,1); UpperGroup = GroupBounds(:,2); ConSet = portcons('默认',5,'grouplims',群组,较低群组,上组);[Portrack,Portryurn,portwts] = Portopt(Expreturn,Expcomovariance,Numports,[],机智);DISP([Portrack,Portryurn]);
在当前和将来版本中使用Portopt(第83行)时出错,Portopt将不再接受Conte或Varargin参数。'它只解决长期全面投资的投资组合的投资组合问题。要解决更多的常规问题,请使用portfolio对象。有关详细信息,请参阅发行说明,包括执行转换的示例。

迁移portopt.到一个投资组合对象cons输出从波特诗与之使用portopt.

expreturn = [0.0054;0.0531;0.0779;0.0934;0.0130]expcoomovariance = [0.0569,00092,00039,00.0070,0.0022;0.0092,0.0380,0.0035,0.0197,0.0028;0.0039,0.0035,0.0997,0.0100,0.0070;0.0070,0.0197,0.0100,0.0461,0.0050;0.0022,0.0028,00070,0.0050,0.0573]; NumPorts = 10; Groups = [ 0 1 1 1 0; 1 1 0 0 0; 0 0 1 1 1 ]; GroupBounds = [ 0, 0.8; 0, 0.7; 0, 0.9 ]; LowerGroup = GroupBounds(:,1); UpperGroup = GroupBounds(:,2); ConSet = portcons('默认',5,'grouplims',群组,较低群组,上组);a =允许(:,1:结束-1);B =奴役(:,结束);p =投资组合;p = setAssetmoments(p,expreturn,expcovariance);p = setinequality(p,a,b);%实施组约束在此处portwts = estmatefrontier(p,numports);[Portrack,Portryurn] = estIbalPortmoments(p,portwts);DISP([Portrack,Portryurn]);
0.1288 0.0427 0.1292 0.0465 0.1306 0.0503 0.1328 0.0540 0.1358 0.0578 0.1395 0.0515 0.1440 0.0653 0.0690 0.1590 0.0728 0.0653 0.060 0.0728 0.0653 0.0690 0.1150 0.0728 0.0653 0.060 0.060 0.1590 0.0728 0.1806 0.070

使用该约束直接输入投资组合对象setinequality.或者兼容性职能。

集成输出波特诗Pcalims.PCGLIMS., 和PCGComp.与投资组合对象

此示例显示了如何集成输出Pcalims.Pcalims.PCGLIMS., 或者PCGComp.具有投资组合对象实现。

波特诗Pcalims.PCGLIMS., 和PCGComp.设置线性约束portopt.在形式a *端口<= b。虽然某些功能允许两个输出,但假设输出是单个矩阵cons。闯入分开一种B.阵列:

  • a =允许(:,1:结束-1);

  • B =奴役(:,结束);

此外,要说明附加组约束的默认问题,请考虑三组:

  • 资产2,3和4可以构成投资组合的80%。

  • 资产1和2可占投资组合的70%。

  • 资产3,4和5可占投资组合的90%。

组= [0 1 1 1 0;1 1 0 0 0;0 0 1 1 1];GroupBounds = [0,0.8;0,0.7;0,0.9];

整合cons输出波特诗使用投资组合对象实现:

expreturn = [0.0054;0.0531;0.0779;0.0934;0.0130]expcoomovariance = [0.0569,00092,00039,00.0070,0.0022;0.0092,0.0380,0.0035,0.0197,0.0028;0.0039,0.0035,0.0997,0.0100,0.0070;0.0070,0.0197,0.0100,0.0461,0.0050;0.0022,0.0028,00070,0.0050,0.0573]; NumPorts = 10; Groups = [ 0 1 1 1 0; 1 1 0 0 0; 0 0 1 1 1 ]; GroupBounds = [ 0, 0.8; 0, 0.7; 0, 0.9 ]; LowerGroup = GroupBounds(:,1); UpperGroup = GroupBounds(:,2); ConSet = portcons('默认',5,'grouplims',群组,较低群组,上组);a =允许(:,1:结束-1);B =奴役(:,结束);p =投资组合;p = setAssetmoments(p,expreturn,expcovariance);p = setDefaultConstraints(p);%在此实现默认约束p = setinequality(p,a,b);%实施组约束在此处portwts = estmatefrontier(p,numports);[Portrack,Portryurn] = estIbalPortmoments(p,portwts);DISP([Portrack,Portryurn]);
0.1288 0.0427 0.1292 0.0465 0.1306 0.0503 0.1328 0.0540 0.1358 0.0578 0.1395 0.0515 0.1440 0.0653 0.0690 0.1590 0.0728 0.0653 0.060 0.0728 0.0653 0.0690 0.1150 0.0728 0.0653 0.060 0.060 0.1590 0.0728 0.1806 0.070

整合输出Pcalims.PCGLIMS.使用投资组合对象实现:

expreturn = [0.0054;0.0531;0.0779;0.0934;0.0130]expcoomovariance = [0.0569,00092,00039,00.0070,0.0022;0.0092,0.0380,0.0035,0.0197,0.0028;0.0039,0.0035,0.0997,0.0100,0.0070;0.0070,0.0197,0.0100,0.0461,0.0050;0.0022,0.0028,00070,0.0050,0.0573]; NumPorts = 10; Groups = [ 0 1 1 1 0; 1 1 0 0 0; 0 0 1 1 1 ]; GroupBounds = [ 0, 0.8; 0, 0.7; 0, 0.9 ]; LowerGroup = GroupBounds(:,1); UpperGroup = GroupBounds(:,2); AssetMin = [ 0; 0; 0; 0; 0 ]; AssetMax = [ 0.8; 0.8; 0.8; 0.8; 0.8 ]; [Aa, ba] = pcalims(AssetMin, AssetMax); [Ag, bg] = pcglims(Groups, LowerGroup, UpperGroup); p = Portfolio; p = setAssetMoments(p, ExpReturn, ExpCovariance); p = setDefaultConstraints(p);%首先实现默认约束p = addinequality(p,aa,ba);%在此实现绑定约束p = addinequality(p,ag,bg);%实施组约束在此处portwts = estmatefrontier(p,numports);[Portrack,Portryurn] = estIbalPortmoments(p,portwts);DISP([Portrack,Portryurn]);
0.1288 0.0427 0.1292 0.0465 0.1306 0.0503 0.1328 0.0540 0.1358 0.0578 0.1395 0.0515 0.1440 0.0653 0.0690 0.1590 0.0728 0.0653 0.060 0.0728 0.0653 0.0690 0.1150 0.0728 0.0653 0.060 0.060 0.1590 0.0728 0.1806 0.070

也可以看看

||||||||||||

相关例子

更多关于