------------------------------------------------------------------ README FILE FOR GARCH101 "GARCH101: The Use of ARCH/GARCH Models in Applied Econometrics" by Robert Engle Journal of Economic Perspective Vol. 15, N. 4 Fall 2001 p. 157-168 ------------------------------------------------------------------ In the File DataGarch101.xls you can find three series - Dow Jones Industrial Index (djindus) - Nasdaq (nasdaq) - US Bond yield (usbyld) The sample period is from March 23, 1990 through June 28, 2001 For the paper the following rates of returns have been used rate = - dlog(usbyld) nq = dlog(nasdaq) dj = dlog(djindus) where dlog indicates the first differences of the logarithm of the variable. The portfolio is given by: port = 0.5*nq+0.3*dj+0.2*rate All these series have been considered for the sample 3/23/1990-3/23/2000 NB: for the paper I first used Eviews version 3 and then Eviews version 4. If you are using Eviews version 4 you should notice slightly different estimates for the parameters of the GARCH model in Table 3 and, consequently, for the autocorrelations of the squared standardized residuals in Table 4. ************************************************************************* Eviews Programs ************************************************************************* If you run the following program with Eviews version 3 (after creating the workfile) '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ' Engle GARCH101 ' File to calculate the portfolio and the GARCH parameters and forecast with Eviews3 '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% load d:\eviews\garch101new series rate=-dlog(usbyld) series nq = dlog(nasdaq) series dj = dlog(djindus) series port = 0.5*nq+0.3*dj+0.2*rate smpl 03/23/1990 03/23/2000 group alldata nq dj rate port alldata.stats(i) series portsquared=port^2 portsquared.correl(15) equation garchall.arch(1,1,h) port garchall.makegarch garchallcv garchall.makeresids garchallres series garchallstdressq=(garchallres^2)/garchallcv garchallstdressq.correl(15) series garchallstdres=garchallres/sqr(garchallcv) 'scalar beta=@quantile(garchallstdres,.01) smpl 3/24/2000 6/12/2001 garchall.fit port_hat port_se port_garch_var ' Forecast std dev for the 3/24/00 smpl 3/24/2000 3/24/2000 series fcaststddev_fake = port_se scalar fcast_std_dev=@mean(fcaststddev_fake) smpl 3/24/2000 6/1/2001 genr garch_fcast_se = sqr(port_garch_var) save garch101Eviews3 *********************************************************************************** Then you can run the following program in Eviews4 to get the results from the paper except the second VaR (39,996) at page 164 that should be 41,532. '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ' Engle GARCH101 ' File to calculate the VaR's in Eviews 4 '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% load "c:\documents\san diego\engle\garch101\garch101eviews3" smpl 03/23/1990 03/23/2000 ' VaR at page 162 'VaR1=22,477 scalar alpha1 alpha1=-@quantile(port,.01) scalar VaR1 VaR1=1E6*alpha1 smpl 03/23/1999 03/23/2000 'VaR1=24,653 scalar alpha2 alpha2=-@quantile(port,.01) scalar VaR2 VaR2=1E6*alpha2 smpl 01/01/2000 03/23/2000 'VaR1=35,159 scalar alpha3 alpha3=-@quantile(port,.01) scalar VaR3 VaR3=1E6*alpha3 'VaR's at page 164 smpl 03/23/90 03/23/00 scalar q q=@quantile(garchallstdres,0.01) scalar VaRG=fcast_std_dev*1E6*2.8437 'Right VaR of 41,532 scalar VaRG2=0.014065*1E6*2.8437 'VaR in the paper 39,996 ' Calculate the VaR Normal scalar VaRN=fcast_std_dev*1E6*2.327 scalar VaRN2=0.014065*2.327*1E6 scalar VaRN3=2.327*0.0146*1E6 'VaR in the paper scalar VaRN4=2.327*0.014601*1E6 series port_stderrgin=sqr(garchallcv) series var_garch=port_stderrgin*1E6*2.8437 series loss=-garchallres*1E6 plot loss var_garch smpl 3/24/2000 6/12/2001 series var_garch_out=port_se*1E6*2.8437 series loss_out=-port*1E6 plot loss_out var_garch_out