我的分配的subquestion需要經由Black和Scholes期權定價公式,是計算隱含波動率σ:Black和Scholes引伸通過rootsolving
更具體而言,它需要解決當所有參數給定值時,該方程式通過對σ進行基礎化。
我正在嘗試使用MATLAB的fzero
函數來估計σ。我創建了兩個腳本。
拳頭腳本包括:
S_0 = 1403; % Stock Price
K = 1350 ; % Strike Price
rf = 0.0534; % Risk Free Rate
div=0.0118; % Divident Rate
T=0.1028; % Maturity Period
C=81;% Call option value
fixed_input=[S_0,K,rf,div,T,C];% Construct vector input values
save ('fixed_input.mat','fixed_input');
imp_vol_ini=0.1; % Initial Implied Volatility Value
BlackScholes = @BSF;
[imp_vol,y]=fzero(BlackScholes,imp_vol_ini)
雖然第二腳本包括代碼:
function y=BSF(imp_vol)
load fixed_input
S_0=fixed_input(1);
K=fixed_input(2);
rf=fixed_input(3);
div=fixed_input(4);
T=fixed_input(5);
C=fixed_input(6);
d1_nominator=log(S_0/K)+(rf-div+(imp_vol^2)/2)*T;
d1_denominator=imp_vol*sqrt(T);
d1=d1_nominator/d1_denominator;
d2=d1-imp_vol*sqrt(T);
y=C-(exp(-div*T))*S_0*normcdf(d1)+K*(exp(-rf/T))*normcdf(d2);
end
代碼工作,但數字是不合理的。通常,解決之後,y
應接近於零,而σ
應位於區間[0.1,0.3]之間,但情況並非如此。我檢索的號碼是y=81
,而σ=-2.7018e-16
。
我覺得這與fzero
的約束條件和選項有關。你能幫我麼?
給那個人一枚獎章!!!非常感謝!完美的作品! – Whitebeard13
@Sardar_Usama:你知道我該如何避免保存和加載部分,並通過'BlackScholes = @BSF來傳遞固定值(S_0,K等)。 [imp_vol,y] = fzero(BlackScholes,imp_vol_ini)'通過保持穩定並僅優化σ? – Whitebeard13