RT。在尝试过程中,发现当波动率很大的时候,蒙特卡洛模拟方法似乎是失效的。具体如下,求知乎大神指教。
蒙特卡洛模拟的思路来源:期权定价中的蒙特卡洛模拟方法,过程如下:
其中S为价格,r为无风险利率(取5%),T为锁定时间(取100天),K为锁定价格,
为波动率(在后面的测试中取值很大),模拟步长100,所以t(i+1)-t(i)=0.01
出现的问题:
当
取值很大时,比如800%,经过100个步长模拟之后价格变得非常小,在百分之几量级,与利用BSM模型计算的理论值有很大差异。这是否说明蒙特卡洛模拟期权定价对于波动率是有要求的?不能过于大?求解答!
matlab代码:
- 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,(期权计算器)。看价格模拟路径可以发现在每次价格模拟过程中,模拟价格都呈现剧烈的下降趋势(极少数出现了剧增)。虽说是价格随机游走,但为什么会出现这么明显的下降?求告知!!!!!
|
|