主要内容

portsim

相关资产收益的蒙特卡罗模拟

描述

例子

RetSeries= portsim (ExpReturnExpCovarianceNumObs的相关收益NASSETS资产超过NUMOBS连续观测间隔。将资产收益模拟为恒漂移、恒波动随机过程的成比例增量,从而近似连续时间几何布朗运动。

例子

RetSeries= portsim (___RetIntervalsNumSim方法除前面语法中的输入参数外,还使用一个或多个可选参数指定选项。

例子

全部折叠

的区别确切的而且预期模拟的方法。

考虑一个由五种资产组成的投资组合,具有以下预期收益、标准差和基于每日资产收益的相关矩阵(其中ExpReturn而且(开关)除以100将百分比转换为回报率)。

ExpReturn = [0.0246 0.0189 0.0273 0.0141 0.0311]/100;Sigmas = [0.9509 1.4259 1.5227 1.1062 1.0877]/100;相关性= [1.0000 0.4403 0.4735 0.4334 0.6855 0.4403 1.0000 0.7597 0.7809 0.4343 0.4735 0.7597 1.0000 0.6978 0.4926 0.4334 0.7809 0.6978 1.0000 0.4289 0.6855 0.4343 0.4926 0.4289 1.0000];

将相关性和标准差转换为协方差矩阵。

expco方差= corr2cov(西格玛斯,相关性)
ExpCovariance =5×5103× 0.0904 0.0597 0.0686 0.0456 0.0709 0.0597 0.2033 0.1649 0.1232 0.0674 0.0686 0.1649 0.2319 0.1175 0.0816 0.0456 0.1232 0.1175 0.1224 0.0516 0.0709 0.0674 0.0816 0.0516 0.1183

假设一个日历年有252个交易日,模拟两年内日收益的两个样本路径(实现)。自ExpReturn而且ExpCovariance是每日表达,定RetIntervals = 1

StartPrice = 100;NumObs = 504;两个日历年的日收益。NumSim = 2;RetIntervals = 1;一个交易日NumAssets = 5;

为了说明方法之间的区别,用每种方法模拟两个路径,从相同的随机数状态开始。

rng (“默认”);RetExact = portsim(ExpReturn, expco方差,NumObs,...RetIntervals NumSim,“准确”);rng (0);RetExpected = portsim(ExpReturn, expco方差,NumObs,...RetIntervals NumSim,“预期”);

比较的均值和协方差RetExact输入(ExpReturn而且ExpCovariance),你会发现它们几乎完全相同。

在这一点上,RetExact而且RetExpected都是504 × 5 × 2数组。现在假设一个由五种资产组成的同等权重的投资组合,并创建投资组合收益数组,其中每一列代表五种资产模拟收益的对应样本路径的投资组合收益。投资组合数组PortRetExact而且PortRetExpected由- 2 504 -矩阵。

Weights = ones(NumAssets, 1)/NumAssets;PortRetExact = 0 (NumObs, NumSim);PortRetExpected = 0 (NumObs, NumSim);i = 1:NumSim PortRetExact(:,i) = RetExact(:,:,i) *权重;PortRetExpected(:,i) = RetExpected(:,:,i) *权重;结束

最后,将模拟的投资组合收益转换为价格并绘制数据。特别要注意的是,自从确切的方法匹配期望收益和协方差,每个样本路径的终端组合价格几乎相同。这对预期仿真方法。尽管本例检查的是投资组合,但同样的方法也适用于单个资产。因此,确切的当需要唯一的路径来达到相同的终端价格时,模拟是最合适的。

PortExact = ret2tick (PortRetExact,...repmat (StartPrice 1 NumSim));PortExpected = ret2tick (PortRetExpected,...repmat (StartPrice 1 NumSim));次要情节(2,1,1),情节(PortExact,“- r”) ylabel (的投资组合的价格)标题(的具体方法次要情节(2,1,2),图(PortExpected,“- b”) ylabel (的投资组合的价格)标题(“预计方法”

图中包含2个轴对象。标题为Exact Method的axis对象1包含两个类型为line的对象。标题为Expected Method的Axes对象2包含两个类型为line的对象。

这个例子展示了之间的相互作用ExpReturnExpCovariance,RetIntervals.回想一下,portsim模拟在一段时间间隔内相关的资产收益dt,由方程给出

d 年代 年代 μ d t + σ d z μ d t + σ ε d t

在哪里年代是资产价格,μ是预期收益率,σ是资产价格的波动,还是ε表示从标准化正态分布中随机抽取的图形。

时间增量dt是由可选输入决定的RetIntervals默认情况下,可以作为显式输入参数,也可以作为单位时间增量。无论如何,的周期性ExpReturnExpCovariance,RetIntervals必须是一致的。例如,如果ExpReturn而且ExpCovariance年,那么RetIntervals一定是很多年了。这一点经常被误解。

来说明之间的相互作用ExpReturnExpCovariance,RetIntervals,考虑一个由五种资产组成的投资组合,其预期收益、标准差和基于每日资产收益的相关矩阵如下所示。

ExpReturn = [0.0246 0.0189 0.0273 0.0141 0.0311]/100;Sigmas = [0.9509 1.4259 1.5227 1.1062 1.0877]/100;相关性= [1.0000 0.4403 0.4735 0.4334 0.6855 0.4403 1.0000 0.7597 0.7809 0.4343 0.4735 0.7597 1.0000 0.6978 0.4926 0.4334 0.7809 0.6978 1.0000 0.4289 0.6855 0.4343 0.4926 0.4289 1.0000];

将相关性和标准差转换为日收益的协方差矩阵。

expco方差= corr2cov(西格玛斯,相关性);

假设每个日历年有252个交易日,并模拟4年期间日收益的单一样本路径。自ExpReturn而且ExpCovariance输入每天表示,设置RetIntervals = 1

StartPrice = 100;NumObs = 1008;四年的日收益。RetIntervals = 1;一个交易日NumAssets =长度(ExpReturn);randn (“状态”, 0);RetSeries1 = portsim(ExpReturn, expco方差,NumObs,...RetIntervals 1“预期”);

现在将每日数据按年化,从而通过乘法改变数据的周期性ExpReturn而且ExpCovariance除以252,再除以RetIntervals到252年(RetIntervals= 1/252年)。将随机数生成器重置为初始状态,就可以重新生成结果。

rng (“默认”);RetSeries2 = portsim(ExpReturn*252, ExpCovariance*252,...NumObs RetIntervals / 252 1,“预期”);

假设一个同等权重的投资组合,计算与每个模拟收益序列相关的投资组合收益。

Weights = ones(NumAssets, 1)/NumAssets;PortRet1 = RetSeries2 *权重;PortRet2 = RetSeries2 *权重;

数据比较表明PortRet1而且PortRet2都是相同的。

这个例子展示了如何模拟一个单变量几何布朗运动过程。它是基于在赫尔市发现的一个例子,期权、期货和其他衍生品,第5版(见236页的例子12.2)。除了验证赫尔的例子,它还通过一个相当大的蒙特卡洛模拟图形说明了终端股票价格的对数正态性。

假设你持有一支股票,初始价格为20美元,年化预期回报率为20%,波动率为40%。模拟该股票在一个完整日历年(252个交易日)中的每日价格过程。

StartPrice = 20;ExpReturn = 0.2;ExpCovariance = 0.4 ^ 2;NumObs = 252;NumSim = 10000;RetIntervals = 1/252;

RetIntervals是用年来表示的,符合事实吗ExpReturn而且ExpCovariance是按年计算的。同时,ExpCovariance输入为方差,而不是更熟悉的标准偏差(波动率)。

设置随机数生成器状态,并模拟在252个交易日的完整日历年中的10,000次股票回报试验(实现)。

rng (“默认”);RetSeries = squeeze(portsim(ExpReturn, ExpCovariance, NumObs),...RetIntervals NumSim,“预期”));

挤压函数重新格式化模拟返回的输出数组252——- - - - - -1——- - - - - -10000阵列更方便252——- - - - - -10000数组中。(回想一下,portsim基本上是一个多元模拟引擎)。

根据236页的赫尔方程12.4和12.5

E 年代 T 年代 0 e μ T v 一个 r 年代 T 年代 0 2 e 2 μ T e σ 2 T 1

将模拟收益序列转换为价格序列,并计算最终股票价格的样本均值和方差。

StockPrices = ret2tick(RetSeries, repmat(StartPrice, 1, NumSim));SampVar = var(股票价格(结束,:)))
SampMean = 24.4489 SampVar = 101.4243

将这些值与使用赫尔方程得到的值进行比较。

ExpValue = StartPrice*exp(ExpReturn) ExpVar =...StartPrice * StartPrice * exp (2 * ExpReturn) * (exp ((ExpCovariance)) - 1)
ExpValue = 24.4281 ExpVar = 103.5391

这些结果与Hull的例子12.2中的结果非常接近。

显示一个历年后终端股价的样本密度函数。从样本密度函数来看,终端股票价格的对数正态分布很明显。

[count, BinCenter] = hist(StockPrices(end,:), 30);图栏(BinCenter, count/sum(count), 1,“r”)包含(“终端股票价格”) ylabel (“概率”)标题(“正常终端股价”

输入参数

全部折叠

每项资产的预期(平均)收益,用1——- - - - - -NASSETS向量。

数据类型:

资产回报协方差,指定为NASSETS——- - - - - -NASSETS矩阵。ExpCovariance必须是对称的和正半定的(没有负的特征值)。收益率的标准差是ExpSigma =√诊断接头(ExpCovariance)).如果ExpCovariance不是对称正半正定矩阵,用吗nearcorr为相关矩阵建立一个正半定矩阵。

数据类型:

在返回时间序列中连续观察的次数,指定为正标量整数。如果NumObs作为空矩阵输入[]的长度。RetIntervals使用。

数据类型:

(可选)观察之间的间隔时间,指定为正标量或观察数NUMOBS——- - - - - -1向量。如果RetIntervals没有指定,所有的间隔都假定有长度1

数据类型:

(可选)的模拟样本路径(实现)的数目NUMOBS观察值,指定为正标量整数。的默认值。NumSim1(单一的实现NUMOBS相关资产的回报)。

数据类型:

(可选)蒙特卡罗模拟的类型,指定为具有以下值之一的字符向量:

  • “准确”(默认)生成相关的资产回报,其中样本均值和协方差与输入均值匹配(ExpReturn)和协方差(ExpCovariance)规范。

  • “预期”生成相关的资产回报,其中样本均值和协方差在统计上等于输入均值和协方差规格。样本均值和协方差的期望值等于输入均值ExpReturn)和协方差(ExpCovariance)规范。)

无论是方法,返回的样本均值和协方差被适当缩放RetIntervals

数据类型:字符

输出参数

全部折叠

相关的,正态分布的,成比例的资产收益的三维数组,作为一个NUMOBS——- - - - - -NASSETS——- - - - - -NUMSIM三维数组。

资产在一定时间间隔内的回报dt是由

d 年代 年代 μ d t + σ d z μ d t + σ ε d t

在哪里年代是资产价格,μ是预期收益率,σ是资产价格的波动,还是ε表示从标准化正态分布中随机抽取的图形。

笔记

  • 方法“准确”,所有实现的样本均值和协方差(按RetIntervals)匹配输入均值和协方差。当收益转化为资产价格时,一种资产的所有终端价格都非常接近。尽管所有变现都是独立绘制的,但它们产生的终端资产价格是相似的。集方法“预期”避免这种行为。

  • 投资组合的收益PortWts是由PortReturn = porttwts * RetSeries(:,:,1)',在那里PortWts是一个矩阵,其中每一行包含一个投资组合的资产配置。每一行的PortReturn中确定的组合之一对应PortWts的第一个实现(第一个平面)中,每一列对应一个观察值RetSeries.看到portopt而且portstats用于投资组合规范和优化。

参考文献

[1]赫尔,j.c C期权、期货和其他衍生品。普伦蒂斯·霍尔出版社,2003年。

版本历史

之前介绍过的R2006a

Baidu
map