歐式看漲期權定價蒙特卡洛模擬中,波動率很大時是否就不適用了?

RT。在嘗試過程中,發現當波動率很大的時候,蒙特卡洛模擬方法似乎是失效的。具體如下,求知乎大神指教。

蒙特卡洛模擬的思路來源:期權定價中的蒙特卡洛模擬方法,過程如下:

其中S為價格,r為無風險利率(取5%),T為鎖定時間(取100天),K為鎖定價格,sigma 為波動率(在後面的測試中取值很大),模擬步長100,所以t(i+1)-t(i)=0.01

出現的問題:

sigma 取值很大時,比如800%,經過100個步長模擬之後價格變得非常小,在百分之幾量級,與利用BSM模型計算的理論值有很大差異。這是否說明蒙特卡洛模擬期權定價對於波動率是有要求的?不能過於大?求解答!

matlab代碼:

S(1) = 16; %初始價格
dela=8; %波動率
K=15; %鎖定價格
n=100000; %模擬次數
zero_matrix=zeros(n,1); %零矩陣,用於後面求max
price_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);

end

end

%計算未來預計價格
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));
end
plot(V);

隨著模擬次數的增加,結果呈現很大幅度的變化,在100000次模擬後,期權價格大概為0.01。而同樣的設定,用BSM模型計算的結果為15.227674,(期權計算器)。看價格模擬路徑可以發現在每次價格模擬過程中,模擬價格都呈現劇烈的下降趨勢(極少數出現了劇增)。雖說是價格隨機遊走,但為什麼會出現這麼明顯的下降?求告知!!!!!


瀉藥

因為蒙特卡洛下的波動率和期權都做過,斗膽來答一下吧

第一你時間打錯了,你的T既然是一百天,做一百次,dt就是一天,1/365;我在使用了錯誤的時間之後給你得出了一樣的錯誤結果,所以這個很重要。

第二,除非模擬次數相當相當多,否則不要選用過大的波動率。

除非模擬次數相當相當多,否則不要選用過大的波動率。

除非模擬次數相當相當多,否則不要選用過大的波動率。

原因一,波動率如果太大,結果誤差會非常大,我給你把時間改對之後價值的浮動從6到94不等(bs我自己隨便算了一下15.4418跟題主有一點點差),都是因為巨大波動率所帶來的誤差。在這種巨大波動率的情況下,需要更大的模擬次數來消除誤差。

模擬的誤差是跟根號模擬次數成反比的,模擬次數少的得出的值肯定很離譜,隨著模擬次數增加,值肯定會越來越合理。

原因二,關於你說的大幅下降趨勢問題,原因是因為你的波動率過大(大於1!!!!),修正frac{1}{2} sigma^{2}項大的離譜。導致在風險中性下的的修正漂移項(r-frac{1}{2} sigma^{2} )t是個巨大的負值;而隨機項本來的時間係數sqrt{t} 就是比漂移項小,sigma 又比frac{1}{2} sigma^{2} 小的多,所以你的隨即項變動跟漂移項根本不是一個量級的。

你一開始同時時間弄錯了,0.01比1/365差很多,所以上面兩個差距更離譜

然後,這麼多次的模擬就不要作死寫循環了全部矩陣化,能一個循環都不寫是最好的。不然以後你跑隨機變數一多能跑一個小時

吐槽時間:

話說波動率大到800%這個期權都是末日期權了。。。

波動率一直保持巨大本來就不合理

蒙特卡洛模擬可以對多個變數使用,所以波動率可以不是常數而是序列。

這樣做之後你的波動率會隨時間變化的,不會一直大下去的。

(或者你要更高維的模擬可以搞成波動率的過程,不過碰見維度災難電腦崩了就不好了。我個人我書讀得少粗淺地認為波動率鞅性是很弱的,迄今為止見過的波動率的序列相關性都極強。)

舉個簡單的例子,可以簡陋地估測一下GRACH下的波動率:

sigma_{t}^{2} =alpha sigma_{t-1}^{2}+eta R_{t-1}^{2}

然後你就有了一個隨時間而變的sigma序列(注意這個sigma序列也是可以加入有隨機性的,可以在後面加上萌萌的小白噪+varepsilon _{t-1}),這樣你的S過程就會被不同時期的波動率影響。同時因為是時間序列,所以前一期的波動率會影響下一期,你的模擬就自帶這dynamic了。

同理,r也可以帶入各種利率模型進行模擬


啦啦啦啦


推薦閱讀:

TAG:蒙特卡洛方法 | 期權定價 |