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.