目前在用MATLAB 做 1 day VaR 5% 的预测。下面有return的图,同时也做了 ACF 和PACF 的分析。 一开始用的是GARCH(1,1) 模型, 异常率在6.5% 左右 (这还好,偏离 5% 没有太多)。 关键是 在某几个月里面,居然出现了 4-5 次 异常 ( 按照统计概念, 一个月大概20个交易日,5% 的话 正常就一次)。 后来用了 EGARCH, SKewTAPARCH 出来的结果 还不如 GARCH. 我实在是不知道 是我的 code 部分写错了, 还是模型用错了,还是 这个数据在实际应用中本来就是正常的(关键是我的老板一直让我找更好的VaR预测模型!!!)
我还附上了 用 GARCH 预测的code (前20天数据 预测 第21天的VaR, 希望大神多帮帮忙)
functionVaRCaculation()
[temp,dates] = xlsread('return_NG.xls');
%[parameters,LL, errors, SEregression, diagnostics, VCVrobust,VCV,likelihoods]=armaxfilter(temp,1,1,0); %AR(1)
num =length(temp);
ExpectedVolOfNG= zeros(num,1);
VaR =zeros(num,1);
for i =21:num
%[parameters, LL, errors, SEregression, diagnostics, VCVrobust,VCV,likelihoods]=armaxfilter(temp(i-20:i-1),1,1,0); %AR(1)
%beta(i) = parameters(2);
Means = mean(temp(i-20:i-1));
demeantemp = temp(i-20:i-1)-ones(20,1)*Means;
[parameterNG, likelihoodNG, htNG,stderrorNG, robustSENG, scoresNG,gradNG]=my_garchpq(temp(i-20:i-1),1,1); %GARCH
ExpectedVolOfNG(i)=sqrt(parameterNG(1)+parameterNG(2)*demeantemp(20).^2+parameterNG(3)*htNG(20));
VaR(i) = Means - 1.64*ExpectedVolOfNG(i);
end
xlswrite('VaR_NG.xls',VaR);
end
附件列表