'Generalized Autoregressive Score (GAS) approach to univariate GARCH Models 'Open the workfile wfopen ".\usdtry.wf1" 'Convert log returns to approximate percentages returns = 100*returns 'Generate series for squared returns series returnsq = returns^2 'Visually compare the size of shocks freeze(mode=overwrite,figure1) returnsq.line figure1.axis dual figure1.setupdate(a) 'Estimate GARCH(1,1) model with normally distributed innovations equation eq_garch_normal.arch(backcast=1) returns c eq_garch_normal.makegarch garchvar_n 'save conditional variance series freeze(mode=overwrite,table1a) eq_garch_normal.results 'Estimate GAS(1,1) model with normally distributed innovations eq_garch_normal.gasmodelu(results,makescores) rename outtab table1b 'Compare conditional variance estimates for normal distribution rename score condvar_n graph figure3.line garchvar_n condvar_n figure3.setupdate(a) figure3.axis dual figure3.legend columns(2) figure3.setelem(1) legend(GARCH-normal) figure3.setelem(2) legend(GAS-normal) 'Estimate GARCH(1,1) model with Student's-t distributed innovations equation eq_garch_student.arch(tdist,backcast=1) returns c eq_garch_student.makegarch garchvar_t 'save conditional variance series freeze(mode=overwrite,table2a) eq_garch_student.results 'Estimate GAS(1,1) model with Student's-t distributed innovations eq_garch_student.gasmodelu(results,makescores) rename outtab table2b 'Compare conditional variance estimates for Student's-t distribution rename score condvar_t graph figure4.line garchvar_t condvar_t figure4.setupdate(a) figure4.axis dual figure4.legend columns(2) figure4.setelem(1) legend(GARCH-Student) figure4.setelem(2) legend(GAS-Student) 'Estimate GARCH(1,1) model with assuming skewed Student's-t innovations eq_garch_student.skewedugarch(results,makegarch) rename outtab table3a 'Estimate GAS(1,1) model with skewed Student's-t distributed innovations eq_garch_student.gasmodelu(skewt,logasy,results,makescores) rename outtab table3b 'Compare conditional variance estimates for Skewed Student's-t distribution rename garchskew garchvar_s rename score condvar_s graph figure5.line garchvar_s condvar_s figure5.setupdate(a) figure5.axis dual figure5.legend columns(2) figure5.setelem(1) legend(GARCH-Skewed Student) figure5.setelem(2) legend(GAS-Skewed Student)