В этом примере показано, как симулировать модель условного отклонения с помощью simulate
.
Загрузите данные курса иностранного обмена Deutschmark/British pound, включенные в тулбокс, и преобразуйте в возвраты. Задайте и подбирайте модель GARCH (1,1 ).
load Data_MarkPound
r = price2ret(Data);
T = length(r);
Mdl = garch(1,1);
EstMdl = estimate(Mdl,r);
GARCH(1,1) Conditional Variance Model (Gaussian Distribution): Value StandardError TStatistic PValue __________ _____________ __________ __________ Constant 1.0535e-06 3.5048e-07 3.0058 0.0026487 GARCH{1} 0.80657 0.01291 62.478 0 ARCH{1} 0.15436 0.011574 13.336 1.4293e-40
v0 = infer(EstMdl,r);
Используйте подобранную модель, чтобы моделировать 25 реализаций возвратов валютного курса и условных отклонений за 1000-периодный прогнозный горизонт. Используйте наблюдаемые возвраты и предполагаемые условные отклонения в качестве предварительных образцов инноваций и отклонений, соответственно.
rng default; % For reproducibility [V,Y] = simulate(EstMdl,1000,'NumPaths',25,... 'E0',r,'V0',v0); figure subplot(2,1,1) plot(v0) hold on plot(T+1:T+1000,V) xlim([0,T+1000]) title('Conditional Variances') hold off subplot(2,1,2) plot(r) hold on plot(T+1:T+1000,Y) xlim([0,T+1000]) title('Returns') hold off
Используйте симуляции, чтобы сгенерировать прогнозное распределение валютных возвратов за 500 дней в будущем. Сгенерируйте 1000 путей расчета для оценки распределения.
rng default; % For reproducibility [V,Y] = simulate(EstMdl,500,'NumPaths',1000,... 'E0',r-EstMdl.Offset,'V0',v0); figure histogram(Y(500,:),10) title('Return Distribution in 500 Days')