portsim
蒙特卡罗模拟的相关资产的回报
语法
描述
指定选择使用一个或多个可选参数除了输入参数在前面的语法。RetSeries
= portsim (___,RetIntervals
,NumSim
,方法
)
例子
区分模拟方法
这个例子显示了区别确切的
和预期
模拟的方法。
考虑的五资产组合预期收益后,标准偏差,并根据每日资产回报(相关矩阵ExpReturn
和(开关)
除以100转换百分比回报)。
ExpReturn = (0.0246 0.0189 - 0.0273 0.0141 - 0.0311) / 100;(= (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);
将相关性和标准差协方差矩阵。
ExpCovariance = 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 ExpCovariance NumObs,…RetIntervals NumSim,“准确”);rng (0);RetExpected = portsim (ExpReturn ExpCovariance NumObs,…RetIntervals NumSim,“预期”);
比较的均值和协方差RetExact
输入(ExpReturn
和ExpCovariance
),你会观察到,他们几乎是相同的。
在这一点上,RetExact
和RetExpected
都是504 -通过- 5 - 2数组。现在假设一个同样加权组合由五个资产组合和创建数组的回报的投资组合回报率,其中每一列表示相应的模拟样本路径返回的5个资产。投资组合数组PortRetExact
和PortRetExpected
由- 2 504 -矩阵。
重量= 1 (NumAssets 1) / NumAssets;PortRetExact = 0 (NumObs NumSim);PortRetExpected = 0 (NumObs NumSim);为i = 1: NumSim PortRetExact(:,我)= RetExact(:,:我)*权重;PortRetExpected(:,我)= RetExpected(:,:我)*权重;结束
最后,将模拟投资组合收益价格和情节的数据。特别是,注意自确切的
方法匹配预期回报和协方差,终端组合价格为每个样本路径几乎是相同的。这是不正确的预期
仿真方法。尽管这个示例检查组合,同样的方法也适用于个人资产。因此,确切的
模拟是最合适当独特的路径需要达到同样的终端价格。
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 (的投资组合的价格)标题(“预计方法”)
之间的相互作用ExpReturn
,ExpCovariance
,RetIntervals
这个例子显示了之间的相互作用ExpReturn
,ExpCovariance
,RetIntervals
。回想一下,portsim
模拟相关资产回报率超过一个区间的长度dt,给出的方程
在哪里年代资产价格,μ是预期的回报率,σ资产价格的波动,ε代表标准正态分布的随机图。
时间增量dt是由可选输入RetIntervals
作为一个显式输入参数或作为一个单元默认时间增量。无论如何,周期性的ExpReturn
,ExpCovariance
,RetIntervals
必须是一致的。例如,如果ExpReturn
和ExpCovariance
年,那么RetIntervals
必须在年。这一点经常被误解。
说明之间的相互作用ExpReturn
,ExpCovariance
,RetIntervals
5,考虑一个投资组合资产的预期回报率后,标准偏差,基于日常资产回报的相关矩阵。
ExpReturn = (0.0246 0.0189 - 0.0273 0.0141 - 0.0311) / 100;(= (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);
将相关性和标准差的协方差矩阵的日常的回报。
(开关)ExpCovariance = corr2cov(相关性);
假设每个日历年度252个交易日,和模拟单个样本路径在四年期间的日常的回报。自ExpReturn
和ExpCovariance
每天输入表达,集RetIntervals = 1
。
StartPrice = 100;NumObs = 1008;% 4日历年的日常的回报RetIntervals = 1;%一个交易日NumAssets =长度(ExpReturn);randn (“状态”,0);RetSeries1 = portsim (ExpReturn ExpCovariance NumObs,…RetIntervals 1“预期”);
现在按年计算每日数据,从而改变数据的周期性,乘以ExpReturn
和ExpCovariance
到252年,将RetIntervals
到252年(RetIntervals
= 1/252年)。重置随机数发生器的初始状态,您可以复制的结果。
rng (“默认”);RetSeries2 = portsim (ExpReturn * 252, ExpCovariance * 252,…NumObs RetIntervals / 252 1,“预期”);
假设一个同样加权组合,计算投资组合的回报与每个模拟返回相关系列。
重量= 1 (NumAssets 1) / NumAssets;PortRet1 = RetSeries2 *权重;PortRet2 = RetSeries2 *权重;
数据显示的比较PortRet1
和PortRet2
都是相同的。
单变量几何布朗运动
这个例子展示了如何模拟一个单变量几何布朗运动的过程。它是基于船体中找到一个例子,期权、期货和其他衍生品第五版(见例12.2 236页)。除了验证船体的例子,还生动地说明了终端股票价格的对数正态属性的一个相当大的蒙特卡罗模拟。
假设您拥有一个股票初始价格的20美元,20%的年化预期回报和波动性的40%。这只股票的每日价格过程模拟的一个完整的日历年度(252个交易日)。
StartPrice = 20;ExpReturn = 0.2;ExpCovariance = 0.4 ^ 2;NumObs = 252;NumSim = 10000;RetIntervals = 1/252;
RetIntervals
表示,符合这一事实吗ExpReturn
和ExpCovariance
是按年计算的。同时,ExpCovariance
作为一个输入方差而不是更熟悉的标准差(波动)。
随机数发生器的状态,模拟10000次试验(实现)的股票收益超过252个交易日的一个完整的日历年度。
rng (“默认”);RetSeries =挤压(portsim (ExpReturn、ExpCovariance NumObs,…RetIntervals NumSim,“预期”));
的挤压
函数重新格式化输出模拟返回的数组252年
——- - - - - -1
——- - - - - -10000年
数组来更方便252年
——- - - - - -10000年
数组中。(回想一下,portsim
从根本上是一个多变量模拟引擎)。
依照船体的方程12.4和12.5在236页
将模拟返回系列价格系列和样本均值和方差的计算终端股票价格。
上涨空间= ret2tick (RetSeries repmat (StartPrice 1 NumSim));SampMean =意味着(上涨空间(最终,:))SampVar = var(上涨空间(最终,:))
SampMean SampVar = 101.4243 = 24.4489
比较这些值与值获得使用船体的方程。
ExpValue = StartPrice * exp (ExpReturn) ExpVar =…StartPrice * StartPrice * exp (2 * ExpReturn) * (exp ((ExpCovariance)) - 1)
ExpValue ExpVar = 103.5391 = 24.4281
这些结果非常接近12.2船体的例子所示的结果。
显示终端的样本密度函数后股票价格一个日历年度。从样本密度函数,终端股票价格的对数正态分布明显。
[计数,BinCenter] =嘘(上涨空间(最终,:),30);图酒吧(BinCenter计数/总和(计数),1,“r”)包含(“终端股票价格”)ylabel (“概率”)标题(“股价对数正态终端”)
输入参数
ExpReturn
- - - - - -每个资产的预期(平均)返回
向量
每个资产的预期(平均)返回,指定为一个1
——- - - - - -NASSETS
向量。
数据类型:双
ExpCovariance
- - - - - -资产收益协方差
矩阵
资产收益协方差,指定为一个NASSETS
——- - - - - -NASSETS
矩阵。ExpCovariance
必须对称半正定(无负特征值)。回报率的标准差ExpSigma =√诊断接头(ExpCovariance))
。如果ExpCovariance
不是一个对称半正定矩阵,使用nearcorr
创建一个相关矩阵的半正定矩阵。
数据类型:双
NumObs
- - - - - -返回时间序列的连续观测
积极的标量整数
返回时间序列的连续观测,指定为一个积极的标量整数。如果NumObs
输入为空矩阵[]
的长度,RetIntervals
使用。
数据类型:双
RetIntervals
- - - - - -之间的间隔时间的观察
1
(默认)|积极的标量|向量
(可选)之间的间隔时间观察,指定为一个积极的标量或观察NUMOBS
——- - - - - -1
向量。如果RetIntervals
没有指定,所有的间隔都是假定有长度吗1
。
数据类型:双
NumSim
- - - - - -数量的模拟样本路径(实现)NUMOBS
观察
1
(默认)|积极的标量整数
(可选)的模拟样本路径(实现)NUMOBS
观察,指定为一个积极的标量整数。的默认值NumSim
是1
(单一的实现NUMOBS
相关资产的回报)。
数据类型:双
方法
- - - - - -类型的蒙特卡罗模拟
“准确”
(默认)|特征向量
(可选)类型的蒙特卡罗模拟,指定为一个特征向量与下列值之一:
“准确”
(默认)生成相关资产回报的样本均值和协方差匹配输入的意思(ExpReturn
)和协方差(ExpCovariance
)规范。“预期”
生成相关资产回报的样本均值和协方差统计等于输入均值和协方差的规范。(预期值的样本均值和协方差等于输入的意思(ExpReturn
)和协方差(ExpCovariance
)规范。)
无论是方法
,返回的样本均值和协方差是适当的比例RetIntervals
。
数据类型:字符
输出参数
RetSeries
——相关的三维数组,正态分布,成比例的资产回报
数组
三维数组的相关、正态分布比例的资产回报,作为一个返回NUMOBS
——- - - - - -NASSETS
——- - - - - -NUMSIM
三维数组。
资产回报率超过一个区间的长度dt是由
在哪里年代资产价格,μ是预期的回报率,σ资产价格的波动,ε代表标准正态分布的随机图。
笔记
当
方法
是“准确”
样本均值和协方差的实现(按比例缩小的RetIntervals
)匹配输入均值和协方差。然后转化为资产价格的回报时,终端价格对于一个给定的资产都在密切的协议。尽管所有实现都独立了,他们生产类似的终端资产价格。集方法
来“预期”
为了避免这种行为。投资组合的回报
PortWts
是由PortReturn = PortWts * RetSeries (:,: 1)”
,在那里PortWts
是一个矩阵的每一行包含一个投资组合的资产配置。每一行的PortReturn
对应于一个组合中确定PortWts
,每一列对应一个观察来自第一个实现(第一架飞机)RetSeries
。看到portopt
和portstats
为规范和优化投资组合。
引用
[1]船体,j . C。期权、期货和其他衍生品。普伦蒂斯·霍尔出版社,2003年。
版本历史
之前介绍过的R2006a
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。