%% Forecast Conditional Mean and Variance Model
% Step 1. Load the data and fit a model.
load Data_EquityIdx
nasdaq = DataTable.NASDAQ;
r = price2ret(nasdaq);
N = length(r);
model = arima('ARLags',1,'Variance',garch(1,1),...
'Distribution','t');%Build ARIMA-GARCH
fit = estimate(model,r,'Variance0',{'Constant0',0.001});
[E0,V0] = infer(fit,r);#EO为残差
% Forecast returns and conditional variances.
[Y,YMSE,V] = forecast(fit,1000,'Y0',r,'E0',E0,'V0',V0);%预测1000个值
%95%的区间估计
upper = Y + 1.96*sqrt(YMSE);
lower = Y - 1.96*sqrt(YMSE);
figure
subplot(2,1,1)
plot(r,'Color',[.75,.75,.75])
hold on
plot(N+1:N+1000,Y,'r','LineWidth',2)
plot(N+1:N+1000,[upper,lower],'k--','LineWidth',1.5)
xlim([0,N+1000])
title('Forecasted Returns')
hold off
subplot(2,1,2)
plot(V0,'Color',[.75,.75,.75])
hold on
plot(N+1:N+1000,V,'r','LineWidth',2);
xlim([0,N+1000])
title('Forecasted Conditional Variances')
hold off
matlab 建立ARIMA-GARCH模型
于 2021-06-09 16:07:19 首次发布