欧式看涨期权定价蒙特卡洛模拟中,波动率很大时是否就不适用了?

论坛 期权论坛 期权     
Simon Shang   2018-9-26 01:14   8089   2
RT。在尝试过程中,发现当波动率很大的时候,蒙特卡洛模拟方法似乎是失效的。具体如下,求知乎大神指教。

蒙特卡洛模拟的思路来源:期权定价中的蒙特卡洛模拟方法,过程如下:



其中S为价格,r为无风险利率(取5%),T为锁定时间(取100天),K为锁定价格,
为波动率(在后面的测试中取值很大),模拟步长100,所以t(i+1)-t(i)=0.01

出现的问题:

取值很大时,比如800%,经过100个步长模拟之后价格变得非常小,在百分之几量级,与利用BSM模型计算的理论值有很大差异。这是否说明蒙特卡洛模拟期权定价对于波动率是有要求的?不能过于大?求解答!


matlab代码:
  1. S(1) = 16;   %初始价格dela=8; %波动率K=15;    %锁定价格n=100000;    %模拟次数zero_matrix=zeros(n,1); %零矩阵,用于后面求maxprice_simu=zeros(101,n);   %存储每次模拟步长的价格A = zeros(1,100);   %存储平均价格T=100/365;   %期权合约时间长度V=zeros(n,1)figure(1)for i =1:n    for t=1:100    S(t+1)=S(t)*exp((0.05-0.5*dela^2)*0.01+dela*sqrt(0.01)*randn());    price_simu(t,i)=S(t+1);    endend%计算未来预计价格price_pridict = mean(price_simu(100,:));payoff=zeros(n,1);for i=1:n    payoff(i,1)=max(price_simu(100,i)-K,zero_matrix(n,1));    %权利金,每次模拟均求一次权利金    V(i,1)=exp(-0.05*T)*mean(payoff(1:i,1));endplot(V);
复制代码
随着模拟次数的增加,结果呈现很大幅度的变化,在100000次模拟后,期权价格大概为0.01。而同样的设定,用BSM模型计算的结果为15.227674,(期权计算器)。看价格模拟路径可以发现在每次价格模拟过程中,模拟价格都呈现剧烈的下降趋势(极少数出现了剧增)。虽说是价格随机游走,但为什么会出现这么明显的下降?求告知!!!!!







分享到 :
0 人收藏

2 个回复

倒序浏览
2#
黑猫Q形态  6级职业 | 2018-9-26 01:14:27 发帖IP地址来自
泻药
因为蒙特卡洛下的波动率和期权都做过,斗胆来答一下吧


第一你时间打错了,你的T既然是一百天,做一百次,dt就是一天,1/365;我在使用了错误的时间之后给你得出了一样的错误结果,所以这个很重要。

第二,除非模拟次数相当相当多,否则不要选用过大的波动率。
           除非模拟次数相当相当多,否则不要选用过大的波动率。
           除非模拟次数相当相当多,否则不要选用过大的波动率。

原因一,波动率如果太大,结果误差会非常大,我给你把时间改对之后价值的浮动从6到94不等(bs我自己随便算了一下15.4418跟题主有一点点差),都是因为巨大波动率所带来的误差。在这种巨大波动率的情况下,需要更大的模拟次数来消除误差。
模拟的误差是跟根号模拟次数成反比的,模拟次数少的得出的值肯定很离谱,随着模拟次数增加,值肯定会越来越合理。

原因二,关于你说的大幅下降趋势问题,原因是因为你的波动率过大(大于1!!!!),修正
项大的离谱。导致在风险中性下的的修正漂移项
是个巨大的负值;而随机项本来的时间系数
就是比漂移项小,
又比
小的多,所以你的随即项变动跟漂移项根本不是一个量级的。

你一开始同时时间弄错了,0.01比1/365差很多,所以上面两个差距更离谱


然后,这么多次的模拟就不要作死写循环了全部矩阵化,能一个循环都不写是最好的。不然以后你跑随机变量一多能跑一个小时

吐槽时间:
话说波动率大到800%这个期权都是末日期权了。。。
波动率一直保持巨大本来就不合理
蒙特卡洛模拟可以对多个变量使用,所以波动率可以不是常数而是序列。
这样做之后你的波动率会随时间变化的,不会一直大下去的。
(或者你要更高维的模拟可以搞成波动率的过程,不过碰见维度灾难电脑崩了就不好了。我个人我书读得少粗浅地认为波动率鞅性是很弱的,迄今为止见过的波动率的序列相关性都极强。)

举个简单的例子,可以简陋地估测一下GRACH下的波动率:

然后你就有了一个随时间而变的sigma序列(注意这个sigma序列也是可以加入有随机性的,可以在后面加上萌萌的小白噪
),这样你的S过程就会被不同时期的波动率影响。同时因为是时间序列,所以前一期的波动率会影响下一期,你的模拟就自带这dynamic了。

同理,r也可以带入各种利率模型进行模拟
3#
梦痕远  2级吧友 | 2018-9-26 01:14:28 发帖IP地址来自
啦啦啦啦
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP