open data TD5.xls
CALENDAR(irregular)
data(format=xls,org=columns) / SP F1M Lsp Lf1m

set dLSP = LSP - LSP{1}
set dLF1M = LF1M - LF1M{1}


*graph SP(multiple graphs),vfields = the number of graphs,footer = the title

*spgraph(vfields=2,$
*     footer="Figure 2. the changes")
*graph(vlabel="spot freight rate")
*# dLSP
*graph(vlabel="1-month forward freight rate")
*# dLF1M
*spgraph(done)



comp tic = %cputime()

******************************************************************************
***********************************VAR-GARCH-M Model**************************
******************************************************************************
set X = dLF1M; set Y = dLSP
compute n=2
compute gstart = 1,gend = 1678
compute lag = 4, step = 123
set LSP2 = LSP*100
set LF1M2 = LF1M*100

linreg LSP2 gstart gend-step ECTEQ
#constant LF1M2

*
* Run preliminary VAR(1) to get estimates of residuals
*

linreg Y gstart gend-step u1
# constant Y{1} X{1} Y{2} X{2} ecteq{1}
set u1sq = sqrt(u1^2)

linreg X gstart+LAG-3 gend-step u2
# constant Y{1} X{1} Y{2} X{2} ecteq{1}
set u2sq = sqrt(u2^2)

*


linreg dLSP gstart gend-step ress
# constant dLSP{1} DLF1M{1} dLSP{2} dLF1M{2} u1sq u2sq ecteq{1}
compute CS1=%beta(1),$
        TS11S=%beta(2),$
        TS21S=%beta(4),$
        TS11F=%beta(3),$
        TS21F=%beta(5),$
        FS1S=%beta(6),$
        FS1F=%beta(7),$
        ECS=%beta(8)

set rs = ress

VCV(MATRIX=COVM)
# ress
COMPUTE U11STORE=COVM(1,1)
set HS = (covm(1,1))


linreg dLF1M  gstart gend-step resf
# constant dLSP{1} dLF1M{1} dLSP{2} dLF1M{2} u1sq u2sq ecteq{1}
compute CF1=%beta(1),$
        TF11S=%beta(2),$
        TF21S=%beta(4),$
        TF11F=%beta(3),$
        TF21F=%beta(5),$
        FF1S=%beta(6),$
        FF1F=%beta(7),$
        ECF=%beta(8)


set rf = resf


VCV(MATRIX=COVM)
# resf
COMPUTE U22STORE=COVM(1,1)
set HF = (covm(1,1))

VCV(MATRIX=www)
# ress resf
COMPUTE U21STORE=www(1,2)
set HSF = www(1,2)
COM CORR=%corr(ress,resf)
SET rho = CORR
print / hs hsf hf rs rf ecteq

nonlin ECS CS1 TS11S TS21S TS11F TS21F FS1S FS1F
nonlin(add) ECF CF1 TF11S TF21S TF11F TF21F FF1S FF1F
nonlin(add) A011 A012 A022 A111 A112 A121 A122 A211 A212 A221 A222 $
(A111^2+A211^2).le.0.99999999999999999999 (A122^2+A222^2).le.0.99999999999999




*
frml anst = $
    [sym]Var=||HS(t-1)|HSF(t-1),HF(t-1)||, $
    A0 = ||A011,0|A012,A022||,$
    A1 = ||A111,A112|A121,A122||,$
    A2 = ||A211,A212|A221,A222||,$
    RRA = ||rs(t-1),rf(t-1)||*A1,$
    [sym]G = TR(A0)*A0 + %MQFORM(VAR,A2) + TR(RRA)*RRA ,$
    HS(t) = G(1,1),HF(t) = G(2,2),HSF(t) = G(1,2),$
    rs = Y - ECS*ECTEQ{1}-CS1 $
    -TS11S*Y{1}-TS21S*Y{2}-TS11F*X{1}-TS21F*X{2} $
    -FS1S*sqrt(hs)-FS1F*sqrt(hf), $
    rf = X - ECF*ECTEQ{1}-CF1 $
    -TF11S*Y{1}-TF21S*Y{2}-TF11F*X{1}-TF21F*X{2} $
    -FF1S*sqrt(hs)-FF1F*sqrt(hf), $
    ll = %logdensity(||HS,HSF|HSF,HF||,||Rs,Rf||),$
    ll



comp A011=0.03,A012=0.03,A022=0.03
comp A111=0.15,A112=0.15,A121=0.15,A122=0.15
comp A211=0.45,A212=0.45,A221=0.45,A222=0.45



*maximize(trace,pmethod=simplex,piters=20,method=bfgs,iters=2000,subiters=1000) anst gstart+lag gend-step
maximize(trace,pmethod=simplex,piters=20,method=bfgs,iters=2000,subiters=1000) anst gstart+lag gend-step

*print / hs hsf hf rs rf ecteq


************************************************************************************************************************************************************************

set RESIDSS gstart+lag gend-step = rs/sqrt(hs)
set RESIDSF gstart+lag gend-step = rf/sqrt(hf)
corrlated(number=12,span=4,qstats) residss
corrlated(number=12,span=4,qstats) residsf
set residssq = residss**2
set residsfq = residsf**2
corrlated(number=12,span=4,qstats) residssq
corrlated(number=12,span=4,qstats) residsfq




SET TVHR gstart+lag gend-step = hsf/hf
set DS = Y
set DF = X

LINREG(NOPRINT) DS gstart+lag gend-step; # CONSTANT DF
		SET CHR gstart+lag gend-step = %BETA(2)


STAT(NOPRINT) DS gstart+lag gend-step ; COMPUTE VARDS = %VARIANCE

SET NAIVEP gstart+lag gend-step = DS - DF
STAT(NOPRINT) NAIVEP gstart+lag gend-step; COMPUTE VARNAIVEP = %VARIANCE

SET CONSHRP gstart+lag gend-step = DS - CHR*DF
STAT(NOPRINT) CONSHRP gstart+lag gend-step ; COMPUTE VARCONSHRP = %VARIANCE


SET TVHRP gstart+lag gend-step = DS - TVHR*DF;
STAT(NOPRINT) TVHRP gstart+lag gend-step ; COMPUTE VARTVHRP = %VARIANCE

DIS '=============================================================================================='
DIS '============================= VARIANCE OF PORTFOLIOS ========================================='
DIS '=============================================================================================='
DIS @6 'UNHEGDED' @22 'NAIVE' @34 'CONSTANT HR' @50 'ANST-GARCH HR'
DIS '=============================================================================================='
DIS @2  VARDS @16 VARNAIVEP @32 VARCONSHRP @47  VARTVHRP
DIS ''; DIS ''
COMPUTE REDUCTION0 = 100*(VARDS-VARNAIVEP)/VARDS
COMPUTE REDUCTION1 = 100*(VARDS-VARNAIVEP)/VARDS
COMPUTE REDUCTION2 = 100*(VARDS-VARCONSHRP)/VARDS
COMPUTE REDUCTION4 = 100*(VARDS-VARTVHRP)/VARDS

DIS '=============================================================================================='
DIS '======================  % REDUCTION IN VARIANCE COMPAREED TO UNHEDGHED  ======================'
DIS '=============================================================================================='
DIS @6 'UNHEGDED' @22 'NAIVE' @34 'CONSTANT HR' @50 'ANST-GARCH HR'
DIS '=============================================================================================='
DIS   @15  REDUCTION1 @30 REDUCTION2 @45  REDUCTION4
DIS ''
comp toc=%CPUTIME()
comp time = toc-tic
dis 'CPUtime=' time
















































































































































































































































































































































































































































