永发信息网

怎么用 Excel 做蒙特卡洛模拟

答案:1  悬赏:0  手机版
解决时间 2021-02-12 13:40
怎么用 Excel 做蒙特卡洛模拟
最佳答案
下面是在Excel中模拟一只股票价格的例子。假设股票价格的对数收益率服从正态分布,均值为0,每日变动标准差为0.1,模拟股票价格1年的路径,过程如下:用到两个内置函数,即用rand()来产生0到1之间的随机数,然后用norminv()来获得服从既定分布的随机数,即收益率样本=norminv(rand(), 0, 0.1)。假定股票价格的初始值是100元,那么模拟的价格就是 S=100 * exp(cumsum(收益率样本))。其中的cumsum()不是Excel的内置函数,其意思就是收益率样本的累积,每个时刻的值都是当前样本及此前所有样本的和,如,收益率样本从单元格C3开始,当前计算C15对应的模拟价格,则模拟价格计算公式是:100 * exp(sum($C$3:C15))。由此可以得到股票价格的一条模拟路径。 其他非正态分布也可以通过类似方式得到分布的抽样,即分布函数的逆函数,这些函数Excel都内置了。所以,做蒙特卡洛模拟的时候,关键是先确定所需模拟的分布,然后进行抽样,然后应用层面的各种公式就可以在抽样的基础上进行计算了。 --------以下是补充的-------- 根据上面提到的思路,其实可以很便捷地为期权做定价。下面就用蒙特卡洛方法为一个普通的欧式看涨期权定价(蒙特卡洛在为普通期权plain vanilla option定价时不占优势,因为相对于解析法而言计算量很大。但是,如果要给结构比较复杂的奇异期权定价时,可能蒙特卡洛法就比较实用,有时可能成为唯一的方法)。 1)假设这个期权是欧式看涨期权,行权价格为50元,标的股票当前的价格也是50元,期权剩余时间是1天。 2)假设标的股票的价格服从对数正态分布,即股票的每日收益率服从正态分布,均值为0,每日标准差为1%。 根据分布假设,首先用rand()函数产生在0到1之间的均匀分布样本。为了提高精确度,这里抽样的数量为1000个(其实1000个是很少的了,通常需要10万个甚至50万个,但是在Excel表格中操作这么多数字,不方便,这是Excel的不足之处)。 下一步,用norminv(probability, mean, std)函数来获得股票收益率分布的1000个抽样,其中的probability参数由rand()产生的抽样逐个代入,mean=0.0, std = 0.01。注意这里抽样得到的日度收益率。也就是说,这个样本对应的下一个交易日股票价格的收益率分布。 下一步,股票价格=50×exp(收益率样本),得到股票价格分布的抽样,有1000个样本。 根据我做的实验,这1000个样本的分布图形(histogram)跟对数正态分布是比较接近的,如下图所示: 图的横轴是股票价格,纵轴是样本中出现的频率。 得到了股票价格未来一天分布的样本之后,就可以以此样本来计算期权的价格了。 欧式看涨期权的定义为: C=max(S-K,0) 所以,根据这个计算公式可以计算出在到期那天在特定的价格下期权的价值。在Excel中,相当于 期权价值=max(股票价格样本 - 50,0)。由此就可以得到了该期权未来1天价值的样本。 然后,将未来价值贴现回来(用无风险利率贴现,假设无风险利率为0.05,则贴现公式是=exp(-0.05/360)×期权价值,得到期权价格的1000个样本。 最后,对期权价格的1000个样本求平均,Excel函数average(期权价格样本),就可以得到期权的价格了。 我这里算出来的是:0.2015元。 而根据Black-Scholes期权定价公式算出来的理论价格则是0.2103元。二者比较接近,但是还是有差距。 而且,每次刷新Excel表格,就重新做一次模拟,得到的模拟价格变动比较大,有时是0.2043元,有时是0.1989元。由于这个抽样的数量比较小(1000个样本),所以估算的结果受到样本的影响会比较大。如果把抽样数量提高100倍甚至500倍,那么样本变动的影响可能会小一个或者两个数量级。但是计算量就大了,如果计算机性能不够高,那么利用Excel来做的话,比较困难。 这就是我的工作台: ------ 再来一个 -------- 看到有人提到利用蒙特卡洛方法来估计圆周率Pi,挺有意思,也简单,所以就在Excel中做了一个实验。 基本原理在于在直角坐标系中的第一个象限中的一个单位圆,如下图所示: 在这个面积为1的正方形中,有四分之一的圆,圆的半径与正方向的边长都是1。那么根据圆的面积公式,这个图形中阴影部分的面积应该是 Pi/4。 下面开始进入蒙特卡洛的解法。 即,如果我们对这个正方形平面中的点进行均匀地抽样,随着抽样点的增多,那么落入阴影内的点的数量与总抽样数量的比,应该基本上等于阴影的面积Pi/4与整个正方形面积1的比,即Pi/4。用数学表示,就是 阴影内的样本点数量 ÷ 总数量 = Pi/4 所以,Pi = 4 × 阴影内的样本点数量 ÷ 总数量。 下面就在Excel中进行实验。 用rand()函数生成2000个随机数,作为随机样本点的X轴坐标, 再用rand()函数生成2000个随机数,作为随机样本点的Y轴坐标。 如此就得到了2000个随机样本点,这些点的X轴坐标和Y轴坐标都大于零且小于1,所以是在前面所说的正方形之中的点。 下一步,判断样本点是否处于阴影之内,由于这个阴影就是单位圆在直角坐标系第一想象的四分之一,所以圆阴影内的点都符合如下不等式: 翻译到Excel中,就是用IF函数来判断,例如: IF(A2^2 + B2^2 <=1, 1, 0) 即,如果样本点在阴影中,得到1,否则得到0。这样就把样本点区分开来了。 最后,把所有得到的1和0加总,就知道所有样本点中处于阴影中样本点的数量了。 最后根据 Pi = 4 × 阴影内的样本点数量 ÷ 总数量 就可以算出Pi来了。 我这个试验中算出来的 Pi=3.142。 以下是样本点的散点图: 由于样本数量有限,所以计算出来的Pi的精度并不高。 以下是工作界面,挺简单的。 来源:知乎
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
区域环评中,对于拟接纳开发区污水的水体,应
bose低音为什么不好
摘抄笔记与读书笔记有啥区别
最遥远的你是我最近的心情这是那首歌的歌词
德州市那里有办理兴业银行信用卡的谢谢
中国电信向阳全网通手机卖场怎么去啊,有知道
淘宝邮寄过去修靠谱么
已知|m|=5,|n|=2,|m-n|>n-m,则/m+n/
丸美素肌美人诞生馆(与美相约店)怎么去啊,我
QQ钱包添加银行卡,没法添加农村商业银行?找
货运UC柜是什么意思
小鹅一个月还怕不怕凉了
怎么算圆柱的体积 可不可以用字母公式和汉字
电话采访的开场白怎么说呀拜托各位了 3Q
静宁县物价局怎么去啊,有知道地址的么
推荐资讯
油汀开一天一夜多少电
— Excuse me , ______ you take a photo for
长龙灯饰城地址在什么地方,我要处理点事
我用360清理功能后,我的桌面上的压缩包打不
【破脑袋】数学题目啊!打破脑袋都想不出来啊!
精品家具厂家直销这个地址在什么地方,我要处
张家港市飞亚五交化公司怎么去啊,有知道地址
在与关联方发生交易的情况下,企业应在财务报
衣服被宠物狗蹭了会有传染病吗?衣服要消毒吗?
将一盆植物和一只小白鼠一同放到一个密闭的玻
德克萨斯(杨村店)地址在什么地方,想过去办事
脸被点雀斑药水弄伤了
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?