change path to program path %path=@runpath cd %path 'load workfile containing the return series load pxs_p_base_run_c.WF1 'set sample range sample s0 .............. sample s1 ................. scalar pi=3.14159 smpl s0 'residual series series rs1= xxxxxxxxxxxxxxxxx series rs2= xxxxxxxxxxxxxxxxxx series rs3=xxxxxxxxxxxxxxx series rs4= xxxxxxxxxxxxxx series rs5=xxxxxxxxxxxxxx 'fit univariate garch to residual series equation eq1.arch(1,3, m=1000) xxxxxxxxxxxxx equation eq2.arch(1,3, m=1000) xxxxxxxxxxxxx equation eq3.arch(1,3,m=1000) xxxxxxxxxxxxx equation eq4.arch(1,3,m=1000) xxxxxxxxxxxxx equation eq5.arch(1,3,m=1000) xxxxxxxxxxxxx 'extract garch series eq1.makegarch() garch1 eq2.makegarch() garch2 eq3.makegarch() garch3 eq4.makegarch() garch4 eq5.makegarch() garch5 'extract standardized residual series series srs1 = rs1/@sqrt(garch1) series srs2 = rs2/@sqrt(garch2) series srs3 = rs3/@sqrt(garch3) series srs4 = rs4/@sqrt(garch4) series srs5 = rs5/@sqrt(garch5) 'Caculate sample uncoditional variance and covariance of series srs1, srs2, srs3, srs4, srs5 and correlation between the corresponding series scalar var_rs1=@var(srs1) scalar var_rs2=@var(srs2) scalar var_rs3=@var(srs3) scalar var_rs4=@var(srs4) scalar var_rs5=@var(srs5) scalar cov_rs12=@cov(srs1,srs2) scalar cov_rs13=@cov(srs1,srs3) scalar cov_rs14=@cov(srs1,srs4) scalar cov_rs15=@cov(srs1,srs5) scalar cov_rs23=@cov(srs2,srs3) scalar cov_rs24=@cov(srs2,srs4) scalar cov_rs25=@cov(srs2,srs5) scalar cov_rs34=@cov(srs3,srs4) scalar cov_rs35=@cov(srs3,srs5) scalar cov_rs45=@cov(srs4,srs5) 'scalar corr_rs12=@cor(srs1,srs2) 'scalar corr_rs13=@cor(srs1,srs3) 'scalar corr_rs14=@cor(srs1,srs4) 'scalar corr_rs15=@cor(srs1,srs5) 'scalar corr_rs23=@cor(srs2,srs3) 'scalar corr_rs24=@cor(srs2,srs4) 'scalar corr_rs25=@cor(srs2,srs5) 'scalar corr_rs34=@cor(srs3,srs4) 'scalar corr_rs35=@cor(srs3,srs5) 'scalar corr_rs45=@cor(srs4,srs5) 'defining the starting values for the var(rsi) covariance (rsi,rsj) series var_rs1t=var_rs1 series var_rs2t=var_rs2 series var_rs3t=var_rs3 series var_rs4t=var_rs4 series var_rs5t=var_rs5 series cov_rs12t=cov_rs12 series cov_rs13t=cov_rs13 series cov_rs14t=cov_rs14 series cov_rs15t=cov_rs15 series cov_rs23t=cov_rs23 series cov_rs24t=cov_rs24 series cov_rs25t=cov_rs25 series cov_rs34t=cov_rs34 series cov_rs35t=cov_rs35 series cov_rs45t=cov_rs45 ' constant adjustment for log likelihood !mlog2pi = 5*log(2*@acos(-1)) 'declare the coefficient starting values coef(2) T T(1)=0.04 T(2)=0.1 '........................................................... ' LOG LIKELIHOOD for correlation part ' set up the likelihood ' 1) open a new blank likelihood object and name it 'dcc' ' 2) specify the log likelihood model by append '........................................................... logl dcc dcc.append @logl logl 'specify var_rsit, cov_rsijt dcc.append var_rs1t = (1-T(1)-T(2))*var_rs1+T(1)*(srs1(-1)^2)+T(2)*var_rs1t(-1) dcc.append var_rs2t = (1-T(1)-T(2))*var_rs2+T(1)*(srs2(-1)^2)+T(2)*var_rs2t(-1) dcc.append var_rs3t = (1-T(1)-T(2))*var_rs3+T(1)*(srs3(-1)^2)+T(2)*var_rs3t(-1) dcc.append var_rs4t = (1-T(1)-T(2))*var_rs4+T(1)*(srs4(-1)^2)+T(2)*var_rs4t(-1) dcc.append var_rs5t = (1-T(1)-T(2))*var_rs5+T(1)*(srs5(-1)^2)+T(2)*var_rs5t(-1) dcc.append cov_rs12t = (1-T(1)-T(2))*cov_rs12+T(1)*(srs1(-1)*srs2(-1))+T(2)*cov_rs12t(-1) dcc.append cov_rs13t = (1-T(1)-T(2))*cov_rs13+T(1)*(srs1(-1)*srs3(-1))+T(2)*cov_rs13t(-1) dcc.append cov_rs14t = (1-T(1)-T(2))*cov_rs14+T(1)*(srs1(-1)*srs4(-1))+T(2)*cov_rs14t(-1) dcc.append cov_rs15t = (1-T(1)-T(2))*cov_rs15+T(1)*(srs1(-1)*srs5(-1))+T(2)*cov_rs15t(-1) dcc.append cov_rs23t = (1-T(1)-T(2))*cov_rs23+T(1)*(srs2(-1)*srs3(-1))+T(2)*cov_rs23t(-1) dcc.append cov_rs24t = (1-T(1)-T(2))*cov_rs24+T(1)*(srs2(-1)*srs4(-1))+T(2)*cov_rs24t(-1) dcc.append cov_rs25t = (1-T(1)-T(2))*cov_rs25+T(1)*(srs2(-1)*srs5(-1))+T(2)*cov_rs25t(-1) dcc.append cov_rs34t = (1-T(1)-T(2))*cov_rs34+T(1)*(srs3(-1)*srs4(-1))+T(2)*cov_rs34t(-1) dcc.append cov_rs35t = (1-T(1)-T(2))*cov_rs35+T(1)*(srs3(-1)*srs5(-1))+T(2)*cov_rs35t(-1) dcc.append cov_rs45t = (1-T(1)-T(2))*cov_rs45+T(1)*(srs4(-1)*srs5(-1))+T(2)*cov_rs45t(-1) 'specify pijt dcc.append p12t = cov_rs12t/@sqrt(@abs(var_rs1t*var_rs2t)) dcc.append p13t = cov_rs13t/@sqrt(@abs(var_rs1t*var_rs3t)) dcc.append p14t = cov_rs14t/@sqrt(@abs(var_rs1t*var_rs4t)) dcc.append p15t = cov_rs15t/@sqrt(@abs(var_rs1t*var_rs5t)) dcc.append p23t = cov_rs23t/@sqrt(@abs(var_rs2t*var_rs3t)) dcc.append p24t = cov_rs24t/@sqrt(@abs(var_rs2t*var_rs4t)) dcc.append p25t = cov_rs25t/@sqrt(@abs(var_rs2t*var_rs5t)) dcc.append p34t = cov_rs34t/@sqrt(@abs(var_rs3t*var_rs4t)) dcc.append p35t = cov_rs35t/@sqrt(@abs(var_rs3t*var_rs5t)) dcc.append p45t = cov_rs45t/@sqrt(@abs(var_rs4t*var_rs5t)) 'defining the determinant of Rt and determinant of Dt dcc.append detRt=(p12t^2*p34t^2 - 2*p12t^2*p34t*p35t*p45t + p12t^2*p35t^2 + p12t^2*p45t^2 - p12t^2 - 2*p12t*p13t*p23t*p45t^2 + 2*p12t*p13t*p23t - 2*p12t*p13t*p24t*p34t + 2*p12t*p13t*p24t*p35t*p45t + 2*p12t*p13t*p25t*p34t*p45t - 2*p12t*p13t*p25t*p35t - 2*p12t*p14t*p23t*p34t + 2*p12t*p14t*p23t*p35t*p45t - 2*p12t*p14t*p24t*p35t^2 + 2*p12t*p14t*p24t + 2*p12t*p14t*p25t*p34t*p35t - 2*p12t*p14t*p25t*p45t + 2*p12t*p15t*p23t*p34t*p45t - 2*p12t*p15t*p23t*p35t + 2*p12t*p15t*p24t*p34t*p35t - 2*p12t*p15t*p24t*p45t - 2*p12t*p15t*p25t*p34t^2 + 2*p12t*p15t*p25t + p13t^2*p24t^2 - 2*p13t^2*p24t*p25t*p45t + p13t^2*p25t^2 + p13t^2*p45t^2 - p13t^2 - 2*p13t*p14t*p23t*p24t + 2*p13t*p14t*p23t*p25t*p45t + 2*p13t*p14t*p24t*p25t*p35t - 2*p13t*p14t*p25t^2*p34t + 2*p13t*p14t*p34t - 2*p13t*p14t*p35t*p45t + 2*p13t*p15t*p23t*p24t*p45t - 2*p13t*p15t*p23t*p25t - 2*p13t*p15t*p24t^2*p35t + 2*p13t*p15t*p24t*p25t*p34t - 2*p13t*p15t*p34t*p45t + 2*p13t*p15t*p35t + p14t^2*p23t^2 - 2*p14t^2*p23t*p25t*p35t + p14t^2*p25t^2 + p14t^2*p35t^2 - p14t^2 - 2*p14t*p15t*p23t^2*p45t + 2*p14t*p15t*p23t*p24t*p35t + 2*p14t*p15t*p23t*p25t*p34t - 2*p14t*p15t*p24t*p25t - 2*p14t*p15t*p34t*p35t + 2*p14t*p15t*p45t + p15t^2*p23t^2 - 2*p15t^2*p23t*p24t*p34t + p15t^2*p24t^2 + p15t^2*p34t^2 - p15t^2 + p23t^2*p45t^2 - p23t^2 + 2*p23t*p24t*p34t - 2*p23t*p24t*p35t*p45t - 2*p23t*p25t*p34t*p45t + 2*p23t*p25t*p35t + p24t^2*p35t^2 - p24t^2 - 2*p24t*p25t*p34t*p35t + 2*p24t*p25t*p45t + p25t^2*p34t^2 - p25t^2 - p34t^2 + 2*p34t*p35t*p45t - p35t^2 - p45t^2 + 1) 'dcc.append detDt=@sqrt(garch1*garch2*garch3*garch4*garch5) dcc.append detRt=@abs(detRt) 'define (et'Rt-1et-->K) dcc.append A11 = p23t^2*p45t^2 - p23t^2 + 2*p23t*p24t*p34t - 2*p23t*p24t*p35t*p45t - 2*p23t*p25t*p34t*p45t + 2*p23t*p25t*p35t + p24t^2*p35t^2 - p24t^2 - 2*p24t*p25t*p34t*p35t + 2*p24t*p25t*p45t + p25t^2*p34t^2 - p25t^2 - p34t^2 + 2*p34t*p35t*p45t - p35t^2 - p45t^2 + 1 dcc.append A12 = p13t*p23t - p12t + p14t*p24t + p15t*p25t + p12t*p34t^2 + p12t*p35t^2 + p12t*p45t^2 - p14t*p24t*p35t^2 - p15t*p25t*p34t^2 - p13t*p23t*p45t^2 - p13t*p24t*p34t - p14t*p23t*p34t - p13t*p25t*p35t - p15t*p23t*p35t - p14t*p25t*p45t - p15t*p24t*p45t + p14t*p25t*p34t*p35t + p15t*p24t*p34t*p35t + p13t*p24t*p35t*p45t + p13t*p25t*p34t*p45t + p14t*p23t*p35t*p45t + p15t*p23t*p34t*p45t - 2*p12t*p34t*p35t*p45t dcc.append A13 = p12t*p23t - p13t + p14t*p34t + p15t*p35t + p13t*p24t^2 + p13t*p25t^2 + p13t*p45t^2 - p14t*p25t^2*p34t - p15t*p24t^2*p35t - p12t*p23t*p45t^2 - p14t*p23t*p24t - p15t*p23t*p25t - p12t*p24t*p34t - p12t*p25t*p35t - p14t*p35t*p45t - p15t*p34t*p45t + p14t*p24t*p25t*p35t + p15t*p24t*p25t*p34t - 2*p13t*p24t*p25t*p45t + p14t*p23t*p25t*p45t + p15t*p23t*p24t*p45t + p12t*p24t*p35t*p45t + p12t*p25t*p34t*p45t dcc.append A14 = p12t*p24t - p14t + p13t*p34t + p15t*p45t + p14t*p23t^2 + p14t*p25t^2 + p14t*p35t^2 - p12t*p24t*p35t^2 - p13t*p25t^2*p34t - p15t*p23t^2*p45t - p13t*p23t*p24t - p15t*p24t*p25t - p12t*p23t*p34t - p12t*p25t*p45t - p15t*p34t*p35t - p13t*p35t*p45t + p13t*p24t*p25t*p35t - 2*p14t*p23t*p25t*p35t + p15t*p23t*p24t*p35t + p15t*p23t*p25t*p34t + p12t*p25t*p34t*p35t + p13t*p23t*p25t*p45t + p12t*p23t*p35t*p45t dcc.append A15 = p12t*p25t - p15t + p13t*p35t + p14t*p45t + p15t*p23t^2 + p15t*p24t^2 + p15t*p34t^2 - p12t*p25t*p34t^2 - p13t*p24t^2*p35t - p14t*p23t^2*p45t - p13t*p23t*p25t - p14t*p24t*p25t - p12t*p23t*p35t - p12t*p24t*p45t - p14t*p34t*p35t - p13t*p34t*p45t + p13t*p24t*p25t*p34t + p14t*p23t*p24t*p35t + p14t*p23t*p25t*p34t - 2*p15t*p23t*p24t*p34t + p12t*p24t*p34t*p35t + p13t*p23t*p24t*p45t + p12t*p23t*p34t*p45t dcc.append A22 = p13t^2*p45t^2 - p13t^2 + 2*p13t*p14t*p34t - 2*p13t*p14t*p35t*p45t - 2*p13t*p15t*p34t*p45t + 2*p13t*p15t*p35t + p14t^2*p35t^2 - p14t^2 - 2*p14t*p15t*p34t*p35t + 2*p14t*p15t*p45t + p15t^2*p34t^2 - p15t^2 - p34t^2 + 2*p34t*p35t*p45t - p35t^2 - p45t^2 + 1 dcc.append A23 = p12t*p13t - p23t + p24t*p34t + p25t*p35t + p14t^2*p23t + p15t^2*p23t + p23t*p45t^2 - p12t*p13t*p45t^2 - p15t^2*p24t*p34t - p14t^2*p25t*p35t - p13t*p14t*p24t - p13t*p15t*p25t - p12t*p14t*p34t - p12t*p15t*p35t - p24t*p35t*p45t - p25t*p34t*p45t + p14t*p15t*p24t*p35t + p14t*p15t*p25t*p34t + p13t*p14t*p25t*p45t + p13t*p15t*p24t*p45t - 2*p14t*p15t*p23t*p45t + p12t*p14t*p35t*p45t + p12t*p15t*p34t*p45t dcc.append A24 = p12t*p14t - p24t + p23t*p34t + p25t*p45t + p13t^2*p24t + p15t^2*p24t + p24t*p35t^2 - p12t*p14t*p35t^2 - p15t^2*p23t*p34t - p13t^2*p25t*p45t - p13t*p14t*p23t - p14t*p15t*p25t - p12t*p13t*p34t - p12t*p15t*p45t - p25t*p34t*p35t - p23t*p35t*p45t + p13t*p14t*p25t*p35t - 2*p13t*p15t*p24t*p35t + p13t*p15t*p25t*p34t + p14t*p15t*p23t*p35t + p12t*p15t*p34t*p35t + p13t*p15t*p23t*p45t + p12t*p13t*p35t*p45t dcc.append A25 = p12t*p15t - p25t + p23t*p35t + p24t*p45t + p13t^2*p25t + p14t^2*p25t + p25t*p34t^2 - p12t*p15t*p34t^2 - p14t^2*p23t*p35t - p13t^2*p24t*p45t - p13t*p15t*p23t - p14t*p15t*p24t - p12t*p13t*p35t - p12t*p14t*p45t - p24t*p34t*p35t - p23t*p34t*p45t + p13t*p14t*p24t*p35t - 2*p13t*p14t*p25t*p34t + p13t*p15t*p24t*p34t + p14t*p15t*p23t*p34t + p12t*p14t*p34t*p35t + p13t*p14t*p23t*p45t + p12t*p13t*p34t*p45t dcc.append A33 = p12t^2*p45t^2 - p12t^2 + 2*p12t*p14t*p24t - 2*p12t*p14t*p25t*p45t - 2*p12t*p15t*p24t*p45t + 2*p12t*p15t*p25t + p14t^2*p25t^2 - p14t^2 - 2*p14t*p15t*p24t*p25t + 2*p14t*p15t*p45t + p15t^2*p24t^2 - p15t^2 - p24t^2 + 2*p24t*p25t*p45t - p25t^2 - p45t^2 + 1 dcc.append A34 = p13t*p14t - p34t + p23t*p24t + p35t*p45t + p12t^2*p34t + p15t^2*p34t + p25t^2*p34t - p13t*p14t*p25t^2 - p15t^2*p23t*p24t - p12t^2*p35t*p45t - p12t*p13t*p24t - p12t*p14t*p23t - p14t*p15t*p35t - p13t*p15t*p45t - p24t*p25t*p35t - p23t*p25t*p45t + p13t*p15t*p24t*p25t + p14t*p15t*p23t*p25t + p12t*p14t*p25t*p35t + p12t*p15t*p24t*p35t - 2*p12t*p15t*p25t*p34t + p12t*p13t*p25t*p45t + p12t*p15t*p23t*p45t dcc.append A35 = p13t*p15t - p35t + p23t*p25t + p34t*p45t + p12t^2*p35t + p14t^2*p35t + p24t^2*p35t - p13t*p15t*p24t^2 - p14t^2*p23t*p25t - p12t^2*p34t*p45t - p12t*p13t*p25t - p12t*p15t*p23t - p14t*p15t*p34t - p13t*p14t*p45t - p24t*p25t*p34t - p23t*p24t*p45t + p13t*p14t*p24t*p25t + p14t*p15t*p23t*p24t - 2*p12t*p14t*p24t*p35t + p12t*p14t*p25t*p34t + p12t*p15t*p24t*p34t + p12t*p13t*p24t*p45t + p12t*p14t*p23t*p45t dcc.append A44 = p12t^2*p35t^2 - p12t^2 + 2*p12t*p13t*p23t - 2*p12t*p13t*p25t*p35t - 2*p12t*p15t*p23t*p35t + 2*p12t*p15t*p25t + p13t^2*p25t^2 - p13t^2 - 2*p13t*p15t*p23t*p25t + 2*p13t*p15t*p35t + p15t^2*p23t^2 - p15t^2 - p23t^2 + 2*p23t*p25t*p35t - p25t^2 - p35t^2 + 1 dcc.append A45 = p14t*p15t - p45t + p24t*p25t + p34t*p35t + p12t^2*p45t + p13t^2*p45t + p23t^2*p45t - p14t*p15t*p23t^2 - p13t^2*p24t*p25t - p12t^2*p34t*p35t - p12t*p14t*p25t - p12t*p15t*p24t - p13t*p14t*p35t - p13t*p15t*p34t - p23t*p24t*p35t - p23t*p25t*p34t + p13t*p14t*p23t*p25t + p13t*p15t*p23t*p24t + p12t*p13t*p24t*p35t + p12t*p13t*p25t*p34t + p12t*p14t*p23t*p35t + p12t*p15t*p23t*p34t - 2*p12t*p13t*p23t*p45t dcc.append A55 = p12t^2*p34t^2 - p12t^2 + 2*p12t*p13t*p23t - 2*p12t*p13t*p24t*p34t - 2*p12t*p14t*p23t*p34t + 2*p12t*p14t*p24t + p13t^2*p24t^2 - p13t^2 - 2*p13t*p14t*p23t*p24t + 2*p13t*p14t*p34t + p14t^2*p23t^2 - p14t^2 - p23t^2 + 2*p23t*p24t*p34t - p24t^2 - p34t^2 + 1 dcc.append K = (srs1*(A11*srs1 + A12*srs2 + A13*srs3 + A14*srs4 + A15*srs5) + srs2*(A12*srs1 + A22*srs2 + A23*srs3 + A24*srs4 + A25*srs5) + srs3*(A13*srs1 + A23*srs2 + A33*srs3 + A34*srs4 + A35*srs5) + srs4*(A14*srs1 + A24*srs2 + A34*srs3 + A44*srs4 + A45*srs5) + srs5*(A15*srs1 + A25*srs2 + A35*srs3 + A45*srs4 + A55*srs5))/detRt 'define et'*et dcc.append L = srs1^2+srs2^2+srs3^2+srs4^2+srs5^2 'define the log likelihood function dcc.append logl=(-1/2)*(log(detRt)+K-L) 'define variance and covariance dcc.append h11t = garch1 dcc.append h22t = garch2 dcc.append h33t = garch3 dcc.append h44t = garch4 dcc.append h55t = garch5 dcc.append h12t = @sqrt(@abs(h11t*h22t))*p12t dcc.append h13t = @sqrt(@abs(h11t*h33t))*p13t dcc.append h14t = @sqrt(@abs(h11t*h44t))*p14t dcc.append h15t = @sqrt(@abs(h11t*h55t))*p15t dcc.append h23t = @sqrt(@abs(h22t*h33t))*p23t dcc.append h24t = @sqrt(@abs(h22t*h44t))*p24t dcc.append h25t = @sqrt(@abs(h22t*h55t))*p25t dcc.append h34t = @sqrt(@abs(h33t*h44t))*p34t dcc.append h35t = @sqrt(@abs(h33t*h55t))*p35t dcc.append h45t = @sqrt(@abs(h44t*h55t))*p45t 'estimate the model____________________________________ smpl s1 dcc.ml(showopts, m=500, c=1e-5) 'display output and graphs_______________________________ show dcc.output 'define correlation graphs___ graph corr1a.line p12t graph corr1b.line p13t graph corr1c.line p14t graph corr1d.line p15t 'graph corr2a.line p12t graph corr2b.line p23t graph corr2c.line p24t graph corr2d.line p25t 'graph corr3a.line p13t 'graph corr3b.line p23t graph corr3c.line p34t graph corr3d.line p35t 'graph corr4a.line p14t 'graph corr4b.line p24t 'graph corr4c.line p34t graph corr4d.line p45t 'graph corr5a.line p15t 'graph corr5b.line p25t 'graph corr5c.line p35t 'graph corr5d.line p45t 'define variance/covariance graphs__ graph cov1a.line h12t graph cov1b.line h13t graph cov1c.line h14t graph cov1d.line h15t graph cov1e.line h11t 'graph cov2a.line h12t graph cov2b.line h23t graph cov2c.line h24t graph cov2d.line h25t graph cov2e.line h22t 'graph cov3a.line h13t 'graph cov3b.line h23t graph cov3c.line h34t graph cov3d.line h35t graph cov3e.line h33t 'graph cov4a.line h14t 'graph cov4b.line h24t 'graph cov4c.line h34t graph cov4d.line h45t graph cov4e.line h44t 'graph cov5a.line h15t 'graph cov5b.line h25t 'graph cov5c.line h35t 'graph cov5d.line h45t graph cov5e.line h55t 'standard deviation graph graph st1.line @sqrt(h11t)/3.7974 graph st2.line @sqrt(h22t)/3.7682 graph st3.line @sqrt(h33t)/3.7898 graph st4.line @sqrt(h44t)/3.7630 graph st5.line @sqrt(h55t)/3.6773 'display graphs__ show cov1a cov1b cov1c cov1d cov1e show cov2b cov2c cov2d cov2e show cov3c cov3d cov3e show cov4d cov4e show cov5e show corr1a corr1b corr1c corr1d show corr2b corr2c corr2d show corr3c corr3d show corr4d ' show corr5a corr5b corr5c corr5d show st1 st2 st3 st4 st5