主要内容

使用CVaR对冲投资组合优化

这个例子展示了如何使用CVaR模型两种套期保值策略的投资组合优化PortfolioCVaR对象。首先,你模拟一个股票的价格变动通过使用“绿带运动”对象与simByEuler。然后使用CVaR投资组合优化估计投资组合的有效边界的回报在地平线上的日期。最后,你比较CVaR组合均值-方差投资组合展示之间的区别这两种风险的措施。

蒙特卡罗模拟的资产情况

场景需要定义和评估CVaR组合。以多种方式可以生成这些场景,以及从历史观测数据获得。这个示例使用蒙特卡罗模拟的几何布朗运动生成场景。股票价格的蒙特卡罗模拟生产试验后一年。这些股票价格提供了5个不同的投资回报策略定义CVaR组合中的资产。这个场景生成策略可以进一步推广到模拟更多的股票,工具,和策略。

定义一个股票配置文件。

%的价格在时间为0Price_0 = 200;%漂移(年化)漂移= 0.08;%的波动性(年化)卷= 0.4;%的估值日期估值= datetime (2012、1、1);%投资期限日期地平线= datetime (2013、1、1);%无风险利率RiskFreeRate = 0.03;

模拟股票的价格变动从估值日期到地平线日期使用“绿带运动”对象与simByEuler

%的蒙特卡罗模拟试验NTRIALS = 100000;%的长度(年)的模拟T = date2time(估值,地平线,1,1);%每个试验的时间数量(每年约100期)NPERIODS =圆(100 * T);%的长度(年)每个时期每个时间步dt = T / NPERIODS;% gbm对象实例化StockGBM =“绿带运动”(漂移,卷,“StartState”,Price_0);%运行仿真路径= StockGBM.simByEuler (NPERIODS,“NTRIALS”NTRIALS,“DeltaTime”,dt,“反向”,真正的);

股票的模拟。为了提高效率,只有一些情节场景。

情节(挤压(路径(:,:,1:50 0)));标题(“模拟股票”);包含(“时间”);ylabel (“价格”);

图包含一个轴。标题的轴模拟股票包含500行类型的对象。

计算不同的看跌期权的价格使用的布莱克-斯科尔斯模型blsprice函数。

%看跌期权和罢工在当前基础价格的50%Strike50 = 0.50 * Price_0;[~,Put50] = blsprice (Price_0, Strike50 RiskFreeRate T、卷);%看跌期权和罢工在当前基础价格的75%Strike75 = 0.75 * Price_0;[~,Put75] = blsprice (Price_0, Strike75 RiskFreeRate T、卷);%看跌期权和罢工在当前基础价格的90%Strike90 = 0.90 * Price_0;[~,Put90] = blsprice (Price_0, Strike90 RiskFreeRate T、卷);%看跌期权和罢工在当前基础价格的95%Strike95 = 0.95 * Price_0;%一样罢工[~,Put95] = blsprice (Price_0, Strike95 RiskFreeRate T、卷);

我们的目标是找到有效边界的回报在地平线上的日期。因此,从试验获取场景的蒙特卡罗模拟仿真周期的结束。

Price_T =挤压(路径(结束,1:));

使用五个策略生成矩阵的场景。第一个策略是只策略;其余的策略股票对冲与看跌期权执行价格在不同的水平。计算获得的收益价格只的蒙特卡罗模拟策略,把股票价格的变化(Price_T - Price_0)由最初的价格Price_0。计算股票的回报与不同的看跌期权,首先计算“观察价格”在地平线上的日期,即股票价格看跌期权获得考虑。如果股票价格在地平线日期小于执行价,观察到的价格执行价。否则,观察到的价格是真正的股票价格。这个观察到的价格是由公式表示

观察到的 价格 = 马克斯 { 价格 T , 罢工 }

你可以计算的初始成本与看跌期权股票,这是由最初的股票价格Price_0加上看跌期权的价格。最后,计算的回归看跌期权策略,观察到的价格减去初始成本除以初始成本。

AssetScenarios = 0 (NTRIALS 5);%的策略1:只股票AssetScenarios (: 1) = (Price_T - Price_0)。/ Price_0;%策略2:看跌期权覆盖达到50%AssetScenarios (:, 2) = (max (Price_T Strike50) - (Price_0 + Put50))。/(Price_0 + Put50);%策略2:看跌期权覆盖达到75%AssetScenarios (:, 3) = (max (Price_T Strike75) - (Price_0 + Put75))。/(Price_0 + Put75);%策略2:看跌期权覆盖达到90%AssetScenarios (:, 4) = (max (Price_T Strike90) - (Price_0 + Put90))。/(Price_0 + Put90);%策略2:看跌期权覆盖达到95%AssetScenarios (:, 5) = (max (Price_T Strike95) - (Price_0 + Put95))。/(Price_0 + Put95);

与五资产相关的投资组合权重之前定义的代表总数的百分比weatlh每个战略投资。例如,考虑一个投资组合权重0.5 (0.5 0 0]。权重表明最好的分配是只战略投资50%,剩下的50%看跌期权为75%。

情节的分布只战略和看跌期权的收益在95%的策略。注意,返回不是正态分布。均值-方差投资组合,缺乏对称性在绘制回报通常表示自方差均值-方差投资组合表现不佳,作为风险措施,对倾斜分布不敏感。

%建立直方图图;%只股票次要情节(2,1,1);直方图(AssetScenarios (: 1),“归一化”,“概率”)标题(“只分布”)包含(“返回”)ylabel (的相对概率的)%看跌期权的封面次要情节(2,1,2);直方图(AssetScenarios (:, 2),“归一化”,“概率”)标题(“看跌期权在95%分布”)包含(“返回”)ylabel (的相对概率的)

图包含2轴。轴1标题包含一个类型的对象只分布直方图。轴2标题看跌期权在95%发行版包含一个直方图类型的对象。

CVaR有效边界

创建一个PortfolioCVaR对象使用AssetScenarios从模拟。

p = PortfolioCVaR (“名字”,“CVaR组合五对冲水平”,“AssetList”,{“股票”,“Hedge50”,“Hedge75”,“Hedge90”,“Hedge95”},“场景”AssetScenarios,下界的0,“预算”, 1“ProbabilityLevel”,0.95);%估计有效边界获得投资组合权重pwgt = estimateFrontier (p);%画出有效边界图;plotFrontier (p, pwgt);

图包含一个轴。坐标轴标题\ bfCVaR组合五对冲水平包含一个类型的对象。

CVaR和均值-方差有效边界比较

创建投资组合对象。使用AssetScenarios从模拟估计资产的时刻。注意,不像的PortfolioCVaR对象,只需要估计资产的时刻完全指定一个均值-方差投资组合。

pmv =组合(“名字”,“均值-方差投资组合五对冲水平,“AssetList”,{“股票”,“Hedge50”,“Hedge75”,“Hedge90”,“Hedge95”});pmv = estimateAssetMoments (pmv, AssetScenarios);pmv = setDefaultConstraints (pmv);%估计有效边界获得投资组合权重pwgtmv = estimateFrontier (pmv);%画出有效边界图;plotFrontier (pmv, pwgtmv);

图包含一个轴。坐标轴标题\ bfMean-Variance组合五对冲水平包含一个类型的对象。

选择一个目标。在这种情况下,目标返回的中点回报率CVaR投资组合有效边界。

%达到的水平的回报pretlimits = estimatePortReturn (p, estimateFrontierLimits (p));TargetRet =意味着(pretlimits);%的目标一半的边界

情节有效CVaR投资组合的回报TargetRet在CVaR有效边界。

%获得风险水平目标回报pwgtTarget = estimateFrontierByReturn (p, TargetRet);% CVaR有效投资组合priskTarget = estimatePortRisk (p, pwgtTarget);%标绘点到CVaR有效边界图;plotFrontier (p, pwgt);持有散射(priskTarget TargetRet [],“填充”);持有

图包含一个轴。坐标轴标题\ bfCVaR组合五对冲水平包含2线类型的对象,散射。

情节有效CVaR投资组合的回报TargetRet在均值-方差有效边界。注意到下面的高效CVaR组合均值-方差有效边界。

%获得高效CVaR投资组合的方差pmvretTarget = estimatePortReturn (pmv, pwgtTarget);%应TargetRetpmvriskTarget = estimatePortRisk (pmv, pwgtTarget);%方差风险代理%情节有效CVaR组合到均值-方差边界图;plotFrontier (pmv, pwgtmv);持有散射(pmvriskTarget pmvretTarget [],“填充”);持有

图包含一个轴。坐标轴标题\ bfMean-Variance组合五对冲水平包含2线类型的对象,散射。

情节的高效的均值-方差投资组合回报TargetRet在CVaR有效边界。注意,CVaR下面的高效的均值-方差投资组合有效边界。

%获得目标返回的均值-方差有效资产组合pwgtmvTarget = estimateFrontierByReturn (pmv, TargetRet);%获得CVaR均值-方差有效投资组合的风险pretTargetCVaR = estimatePortReturn (p, pwgtmvTarget);%应TargetRetpriskTargetCVaR = estimatePortRisk (p, pwgtmvTarget);% CVaR风险代理%情节均值-方差有效投资组合到CVaR边界图;plotFrontier (p, pwgt);持有散射(priskTargetCVaR pretTargetCVaR [],“填充”);持有

图包含一个轴。坐标轴标题\ bfCVaR组合五对冲水平包含2线类型的对象,散射。

均值-方差和CVaR是两种不同的风险措施以来,这个例子说明了一种类型的有效资产组合风险度量是无效的。

CVaR和均值-方差投资组合权重的比较

检查的组合权重porfolios组成每个有效边界获得更详细的比较均值-方差和CVaR有效前沿。

情节相关的权重均值-方差投资组合有效边界。

%画出均值-方差投资组合权重图;面积(pwgtmv ');传奇(pmv.AssetList);轴([1 10 0 1])标题(“均值-方差投资组合权重五对冲水平);包含(从最小的投资组合(1)最大(10)返回的);ylabel (“每个资产的贡献”);

图包含一个轴。轴与标题权重均值-方差投资组合对冲水平包含5类型的对象。这些对象代表股票,Hedge50、Hedge75 Hedge90 Hedge95。

权重的均值-方差投资组合的有效边界仅使用两种策略,“股票”“Hedge95”。这种行为是一种效果五个资产组合之间的相关性。因为资产近之间的相关性是接近1,投资组合的标准差几乎是一种资产的标准偏差的线性组合。因此,因为回报更大的资产与资产相关较大的方差,唯一的一个线性组合的最小和最大回报的资产是观察到的有效边界。

情节相关的权重CVaR投资组合有效边界。

%绘制CVaR组合权重图;面积(pwgt ');传奇(p.AssetList);轴([1 10 0 1])标题(“CVaR投资组合权重五对冲水平);包含(从最小的投资组合(1)最大(10)返回的);ylabel (“每个资产的贡献”);

图包含一个轴。轴与标题CVaR组合权重对冲水平包含5类型的对象区域。这些对象代表股票,Hedge50、Hedge75 Hedge90 Hedge95。

对于这两种类型的组合,均值-方差和CVaR,最大的投资组合预期回报是分配所有的重量只策略。这是有意义的,因为没有了看跌期权,转化为更大的回报。同时,投资组合风险最小方差都是相同的措施。这个组合是分配的一切“Hedge95”因为这一策略限制最可能的损失。真正的区别这两种类型的porfolios观察到的最小值和最大值之间的回报水平。那里,相比之下获得的有效组合使用方差作为风险的度量,CVaR投资组合的权重范围在所有五个可能的策略。

另请参阅

|||||||

相关的例子

更多关于

外部网站