主要内容

基于基准的投资组合优化

这个例子展示了如何使用投资组合对象在Financial Toolbox™中。

特别地,这个例子演示了如何优化投资组合,以最大化相对于市场基准的信息比率。具体来说,财务数据包含在表格被读入MATLAB®并进行可视化(每天和每年的水平)。一个投资组合对象是使用每种资产的活动日回报的市场数据创建的。使用支持金宝app投资组合对象时,直接计算有效边界。然后求解一个定制优化问题,求出信息比最大化的资产配置。

使用MATLAB®导入历史数据

进口历史价格的资产宇宙和道琼斯工业平均指数(DJI)市场基准。数据导入到表格从微软®Excel®电子表格使用MATLAB®readtable函数。

数据= readtable (“dowPortfolio.xlsx”);头(数据,10)
ans =表10×32日期收AA AIG AXP英航C猫弟弟说通用电气通用高清鸿hp IBM intel JNJ摩根大通KO MCD嗯莫merck microsoft pfizer PG T联合登陆京东商城XOM  ___________ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ 03 - 10847年1月- 2006年28.72 - 68.4151.53 68.63 45.26 55.86 40.68 24.18 33.6 17.82 39.79 36.14 28.35 80.13 24.57 59.08 37.78 38.98 32.72 75.93 52.27 30.73 26.19 22.16 56.38 22.7 54.94 26.79 44.9 56.64 04 - 10880年1月- 2006 28.89 68.51 51.03 69.34 44.42 57.29 40.46 23.77 33.56 18.3 39.05 35.99 29.18 80.03 24.9 59.99 37.56 38.91 33.01 75.54 52.65 31.08 26.32 22.88 56.48 22.87 54.61 27.5844.99 - 56.74 05 - 10882年1月- 2006 29.12 68.6 51.57 68.53 44.65 57.29 40.38 24.19 33.47 19.34 38.67 35.97 28.97 80.56 25.25 59.74 37.67 39.1 33.05 74.85 52.52 31.13 26.34 22.9 56.3 22.92 54.41 27.9 44.38 56.45 06 - 10959年1月- 2006 29.02 68.89 51.75 67.57 44.65 58.43 40.55 24.52 33.7 19.61 38.96 36.53 29.8 82.96 25.28 60.01 37.94 39.47 33.25 75.47 52.9531.08 26.26 23.16 56.24 23.21 54.58 28.01 44.56 57.57 09 - 11012年1月- 2006 29.37 68.57 53.04 67.01 44.43 59.49 40.32 24.78 33.61 21.12 39.38 36.23 30.17 81.76 25.44 60.38 38.55 39.66 33.88 75.84 53.11 31.58 26.21 23.16 56.67 23.3 55.2 28.12 44.4 57.54 10 - 11012年1月- 2006 28.44 69.18 52.88 67.33 44.57 59.25 40.2 25.09 33.43 20.79 40.33 36.17 30.33 82.125.1 60.49 38.61 39.7 33.91 75.37 53.04 31.27 26.35 22.77 56.45 23.16 55.24 28.24 44.54 57.99 11 - 11043年1月- 2006 28.05 69.6 52.59 68.3 44.98 59.28 38.87 25.33 33.66 20.61 41.44 36.19 30.88 82.19 25.12 59.91 38.58 39.72 34.5 75.22 53.31 31.39 26.63 23.06 56.65 23.34 54.41 28.58 45.23 58.38 12 - 10962年1月- 2006 27.68 69.04 52.6 67.9 45.02 60.13 38.0225.41 33.25 19.76 41.05 35.77 30.57 81.61 24.96 59.63 37.87 39.5 33.96 74.57 53.23 31.41 26.48 22.9 56.02 23.24 53.9 28.69 44.43 57.77 13 - 10960年1月- 2006 27.81 68.84 52.5 67.7 44.92 60.24 37.86 25.47 33.35 19.2 40.43 35.85 31.43 81.22 24.78 59.26 37.84 39.37 33.65 74.38 53.29 31.4 26.53 22.99 56.49 23.27 54.1 28.75 44.1 27.97 59.06 17 - 10896年1月- 2006年67.84 52.03 66.93 44.47 60.85 37.75 25.15 33.2 18.68 40.11 35.56 31.2 81.05 24.52 58.74 37.64 39.11 33.77 73.99 52.85 31.16 26.34 22.63 56.25 23.13 54.41 28.12 43.66 59.61

将资产名称、资产价格和DJI基准价格从表中分离出来。可视化显示了所有资产价格从统一开始标准化的演变,即累积收益。

benchPrice = data.DJI;assetNames = data.Properties.VariableNames(3:2:结束);%使用一半的资产显示.Variables assetPrice =数据(:,assetNames);assetP = assetPrice。: / assetPrice (1);benchmarkP = benchPrice / benchPrice(1);图;情节(data.Dates assetP);持有;(数据。日期、benchmarkP“线宽”3,“颜色”“k”);持有;包含(“日期”);ylabel (“正常价格”);标题(“标准化资产价格和基准”);网格

图中包含一个轴对象。标题为标准化资产价格和基准的轴对象包含16个类型为line的对象。

粗线表示道指市场基准。

计算回报率和风险调整回报率

从价格序列中计算收益序列,并计算资产时刻(历史收益和标准差)。可视化显示了所有资产的风险回报特征和DJI市场基准的散点图。

benchReturn = tick2ret (benchPrice);assetReturn = tick2ret (assetPrice);benchRetn =意味着(benchReturn);benchRisk =性病(benchReturn);assetRetn =意味着(assetReturn);assetRisk =性病(assetReturn);

计算历史统计数据并绘制年度风险回报图。请注意,图是在年度水平,因此按日回报率进行缩放。

规模= 252;assetRiskR = sqrt(scale) * assetRisk;benchRiskR = sqrt(scale) * benchRisk;= size * assetReturnR;benchReturnR = scale * benchRetn;图;散射(assetRiskR assetReturnR 6,“米”“填充”);持有散射(benchRiskR benchReturnR 6,‘g’“填充”);text(assetRiskR(k) + 0.005, assetReturnR(k), assetNames{k},“字形大小”8);结束text(benchRiskR + 0.005, benchReturnR,“基准”“字形大小”8);持有;包含(“风险(发展回报)”);ylabel (的预期年收益率);网格

图中包含一个轴对象。axis对象包含18个类型为scatter, text的对象。

建立投资组合优化

建立一个投资组合优化问题,用投资组合.因为目标是根据一个基准优化投资组合的配置,每项资产的主动回报被计算和使用投资组合对象。在这个例子中,投资组合中资产的预期收益和协方差被设置为它们的历史值。

p =组合(“AssetList”, assetNames);

设置默认的投资组合约束(所有权重之和为1不做空,100%投资风险资产)。

p = setDefaultConstraints (p);

添加资产回报和协方差投资组合对象。

activReturn = assetReturn - benchReturn;协议= estimateAssetMoments (p activReturn“missingdata”假)
pAct =资产组合:BuyCost: [] SellCost: [] RiskFreeRate: [] AssetMean: [15x1 double] AssetCovar: [15x15 double] TrackingError: [] TrackingPort: [] Turnover: [] BuyTurnover: [] SellTurnover: [] Name: [] NumAssets: 15 AssetList: {1x15 cell} InitPort: [] ainequal: [] b不等式:[]AEquality: [] bEquality: [] LowerBound:[15x1 double] UpperBound: [] LowerGroup: [] UpperGroup: [] GroupA: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets: [] MaxNumAssets: [] BoundType: [15x1 category]

计算有效边界使用投资组合对象

计算20个最优投资组合的均值-方差有效边界。可视化单个资产的风险-回报特征的边界。此外,计算和可视化沿边界的每个投资组合的信息比率。

pwgtAct = estimateFrontier(pAct, 20);%估计权重。[portRiskAct, portRetnAct] = estimatePortMoments(pAct, pwgtAct);获得风险和回报。%提取资产时刻和名称。[assetActRetnDaily, assetActCovarDaily] = getAssetMoments(pAct); / /指定时间assetActRiskDaily =√诊断接头(assetActCovarDaily));assetNames = pAct.AssetList;%重新调节。assetActRiskAnnual = sqrt(scale) * assetActRiskDaily;= sqrt(scale) * portRiskAct;assetActRetnAnnual = scale * assetActRetnDaily;portRetnAnnual = scale * portRetnAct;图;次要情节(2,1,1);情节(portRiskAnnual portRetnAnnual,“bo - - - - - -”“MarkerFaceColor”“b”);持有;散射(assetActRiskAnnual assetActRetnAnnual 12,“米”“填充”);持有text(assetActRiskAnnual(k) + 0.005, assetActRetnAnnual(k), assetNames{k},“字形大小”8);结束持有;包含(“风险(积极回报的性病发展)”);ylabel (“预期的积极回报”);网格;次要情节(2,1,2);情节(portRiskAnnual portRetnAnnual. / portRiskAnnual,“bo - - - - - -”“MarkerFaceColor”“b”);包含(“风险(积极回报的性病发展)”);ylabel (的信息比);网格

图中包含2个轴对象。axis对象1包含17个类型为line, scatter, text的对象。axis对象2包含一个类型为line的对象。

使用最优化工具箱™实现信息比率最大化

运行一个混合优化,沿着信息比率最大的边界找到投资组合。信息比率是相对回报与相对风险的比率(称为“跟踪误差”)。夏普比率着眼于相对于无风险资产的回报,而信息比率则是基于相对于风险基准的回报,在这里指的是大疆基准。这是通过运行一个优化来完成的,该优化找到最优收益约束,对于该约束,投资组合优化问题返回最大信息比率投资组合。投资组合优化函数是从一个目标函数中调用的infoRatioTargetReturn由最优化工具箱™函数优化的fminbnd.的本地函数infoRatioTargetReturn计算给定目标主动回报的最小(主动)风险组合。

infoRatioTargetReturn局部函数在优化程序中称为目标函数(fminbnd),寻求寻找最大化信息比率和最小化负面信息比率的目标回报。

objFun = @(targetReturn) - informatiotargetreturn (targetReturn,pAct);选择= optimset (“TolX”1.0 e-8);[optPortRetn, ~, exitflag] = fminbnd(objFun,min(portRetnAct),max(portRetnAct),options);

获得最优投资组合的权重、信息比率和风险回报。

[optInfoRatio, optWts] = infoRatioTargetReturn (optPortRetn协议);optWts optPortRisk = estimatePortRisk(协议)
optPortRisk = 0.0040

绘制最优投资组合

验证找到的投资组合确实是最大信息比率的投资组合。

%重新调节。optPortRiskAnnual = sqrt(scale) * optPortRisk;optPortReturnAnnual = scale * optPortRetn;图;次要情节(2,1,1);散射(assetActRiskAnnual assetActRetnAnnual 6,“米”“填充”);持有text(assetActRiskAnnual(k) + 0.005,assetActRetnAnnual(k),assetNames{k},“字形大小”8);结束情节(portRiskAnnual portRetnAnnual,“bo - - - - - -”“MarkerSize”4“MarkerFaceColor”“b”);情节(optPortRiskAnnual optPortReturnAnnual,“ro - - - - - -”“MarkerFaceColor”“r”);持有;包含(“风险(积极回报的性病发展)”);ylabel (“预期的积极回报”);网格;次要情节(2,1,2);情节(portRiskAnnual portRetnAnnual. / portRiskAnnual,“bo - - - - - -”“MarkerSize”4“MarkerFaceColor”“b”);持有情节(optPortRiskAnnual optPortReturnAnnual. / optPortRiskAnnual,“ro - - - - - -”“MarkerFaceColor”“r”);持有;包含(“风险(积极回报的性病发展)”);ylabel (的信息比);标题(“最优投资组合的信息比率”);网格

图中包含2个轴对象。axis对象1包含18个类型为散点、文本、行的对象。轴对象2与标题信息比例与最优投资组合包含2个类型线对象。

展示投资组合优化方案

展示投资组合优化方案。

assetIndx = optWts > .001;结果= table(assetNames(assetIndx)', optWts(assetIndx)*100,“VariableNames”, {“资产”“重量”});disp (“最大信息比率组合:”
最大信息比率组合:
disp(结果)
资产重  ________ _______ {' AA} 1.539 0.35551{“AXP”}{' C '}{‘弟弟’}4.0684 9.6533 17.698{“hp”}{摩根大通的}21.565 26.736{' ' '}{‘莫’}{“微软”}2.6858 13.648 2.0509{“属下”}
流(“麦克斯主动回来了。信息比率组合为%0.2f%%\n', optPortRetn * 25200);
麦克斯回来了。信息比率投资组合为12.14%
流(“麦克斯的跟踪错误。信息比率组合为%0.2f%%\n'optPortRisk * sqrt (252) * 100);
Max的跟踪误差。信息比率投资组合为6.32%

本地函数

函数[infoRatio,出世]= infoRatioTargetReturn (targetReturn portObj)计算目标回报投资组合的信息比率%有效边界。但是= estimateFrontierByReturn (portObj targetReturn);portRiskAct = estimatePortRisk (portObj wts);infoRatio = targetReturn / portRiskAct;结束

另请参阅

||

相关的例子

更多关于

外部网站