I'm calculating DCC between S&P500 and US 10-year bond index in R.
However the results are in the unexpected sign. For example, as published by many, DCC between S&P500 and 10-year bond index is positive in 1990s and became negative for a while in 1997 (e.g. Chen(2009) on page 43 http://eprints.lse.ac.uk/29306/1/Regime_Switching_in_Volatilities.pdf), but I got opposite results.
Here is my code, is there anything wrong?
# 1. Fit DCC
# First GARCH Specs.. GARCH(1,1)
garch11.spec = ugarchspec(mean.model = list(armaOrder = c(1,1)),
variance.model = list(garchOrder = c(1,1),
model = "sGARCH"), distribution.model = "std")
# dcc specification - GARCH(1,1) for conditional correlations
dcc.garch11.spec = dccspec(uspec = multispec( replicate(2, garch11.spec) ), dccOrder = c(1,1), distribution = "mvt")
# SD
garch.fit = ugarchfit(garch11.spec, data = STOCK, fit.control=list(scale=TRUE))
print(garch.fit)
garch.fit = ugarchfit(garch11.spec, data = BOND, fit.control=list(scale=TRUE))
print(garch.fit)
#DCC - STOCK&BOND
dcc_data<-data.frame(STOCK,BOND)
dcc.fit = dccfit(dcc.garch11.spec, data = dcc_data, fit.control=list(scale=TRUE))
print(dcc.fit)
r1=rcor(dcc.fit, type="cor")
r1.z=zoo(r1[1,2,], order.by=DATA$Date[-1])
dcc_stock_bond<-data.frame(r1.z)
print(dcc_stock_bond)
Edit: please note that I was using bond yield rather than bond index. Having used bond index, I got the expected DCC results. Problem solved.