GARCH 模型的無條件變異數是多少?
我想使用 Matlab 腳本來計算 Heston Nandi GARCH 價格。我在網上找到了一個合適的腳本,它要求輸入“無條件變異數”。如何計算適當的無條件波動率?我在網上找到了這個公式:
$$ \sigma^2 = s^2 = \frac{1}{n-1} * \sum_{t=1}^n [r^2_t] $$ 這是合適的使用嗎?我是否根據這個公式對所有資產回報率取變異數,直到我試圖估值的期權的時間點?
完整腳本:`function OptionPrice=HestonNandi(S_0,X,Sig_,T,r)
%%%%%%%%%%%%% % 該函式根據 Heston 和 Nandi(2000) 的 GARCH % 期權定價公式計算看漲期權的價格。% 函式的輸入是:標的資產的目前價格、執行價格、標的資產的無條件變異數百分比、到期時間(以天為單位)、百分比和每日無風險利率。%%%%%%%%%%%
% 作者:Ali Boloorforoosh % 電子郵件:a_bol@jmsb.concordia.ca % 日期:2008 年 11 月 1 日
%%%%% sample inputs %%%%% % S_0=100; stock price at time t % X=100; strike prices % Sig_=.04/252; unconditional variances per day % T=30; option maturity % r=.05/365; daily risk free rate
OptionPrice=.5S_0+(exp(-rT)/pi) quad(@Integrand1,eps,100)-X exp(-r T) (.5+(1/pi)*quad(@Integrand2,eps ,100));
% function Integrand1 and Integrand2 return the values inside the % first and the second integrals function f1=Integrand1(phi) f1=real((X.^(-i*phi).*charac_fun(i*phi+1))./(i*phi)); end function f2=Integrand2(phi) f2=real((X.^(-i*phi).*charac_fun(i*phi))./(i*phi)); end % function that returns the value for the characteristic function function f=charac_fun(phi) phi=phi'; % the input has to be a row vector % GARCH parameters lam=2; lam_=-.5; % risk neutral version of lambda a=.000005; b=.85; g=150; % gamma coefficient g_=g+lam+.5; % risk neutral version of gamma w=Sig_*(1-b-a*g^2)-a; % GARCH intercept % recursion for calculating A(t,T,Phi)=A_ and B(t,T,Phi)=B_ A(:,T-1)=phi.*r; B(:,T-1)=lam_.*phi+.5*phi.^2; for i=2:T-1 A(:,T-i)=A(:,T-i+1)+phi.*r+B(:,T-i+1).*w-.5*log(1-2*a.*B(:,T-i+1)); B(:,T-i)=phi.*(lam_+g_)-.5*g_^2+b.*B(:,T-i+1)+.5.*(phi-g_).^2./(1-2.*a.*B(:,T-i+1)); end A_=A(:,1)+phi.*r+B(:,1).*w-.5*log(1-2.*a.*B(:,1)); % A(t;T,phi) B_=phi.*(lam_+g_)-.5*g_^2+b.*B(:,1)+.5*(phi-g_).^2./(1-2.*a.*B(:,1)); % B(t;T,phi) f=S_0.^phi.*exp(A_+B_.*Sig_); f=f'; % the output is a row vector end
結尾
`
我不確定您是否仍然需要答案,但是,如果您查看 Heston&Nandi (2000) 的原始論文,您會發現程式碼中定義的“Sig_”類似於它們的年化長期波動率(P.579),除了這裡它不是年化的。
$ \Omega=\frac{\left(\omega+\alpha\right)}{1-\beta-\alpha\gamma^{2}} $
解決這個問題 $ \omega $ 導致您的程式碼稱為“GARCH 攔截”。
此外,在您的實施中
f=S_0.^phi.*exp(A_+B_.*Sig_)
這是
$ CF=S_{t}^{\phi}\exp\left(A\left(t,T,\phi\right)+B\left(t,T,\phi\right)h_{t+1}^{*}\right) $
如您所見,“Sig_”應該是下一個時間步長的條件變異數(在單滯後情況下)。
因此,據我了解,這裡的“Sig_”只是 h(0) 的任意起始值,即條件變異數。
要回答您的問題,是的,可以將其設置為等於樣本變異數,但也可以設置為任何其他合理的值。它對結果幾乎沒有任何影響,並且由於條件變異數的強均值回歸特性,對於較長的返回樣本(幾百個觀察值)無關緊要。
您還應該記住,您必須為正在使用的數據估計自己的參數。