[R-SIG-Finance] rmgarch - dccforecast function

Fernando Martins Diniz martinsdiniz at gmail.com
Fri Mar 6 15:11:54 CET 2015


Dear R users,

I am using the dccforecast function in the package rmgarch.
In the future I will the result to run a portfolio backtest.
For this reason I am doing the calculations in a loop.


rollingDCCmatrix <-
    function(data, eligibleAssets, from, to)
    {

        #Data is timeSeries of returns
        #eligibleAssets a list which contains for each loop i the assets
names
        #Time window : from and to

        DCCmatrix <- list()
        garch11.spec = ugarchspec(mean.model = list(armaOrder = c(0,0)),
                                  variance.model = list(garchOrder = c(1,1),
                                                        model = "sGARCH"),
                                  distribution.model = "norm")


        for (i in 1:length(from)) {

            #Separating the series
            assetsNames <- eligibleAssets[[i]]
            series <- window(data[, assetsNames], start = from[i], end =
to[i])

            #How many assets
            nAssets <- length(assetsNames)

            # The DCC specification - GARCH(1,1) for conditional
correlations
            dcc.garch11.spec = dccspec(uspec = multispec( replicate(nAssets,

garch11.spec) ),
                                       dccOrder = c(1,1),
                                       distribution = "mvnorm")
            # Estimating
            dcc.fit = dccfit(dcc.garch11.spec, series,
                             fit.control = list(eval.se = FALSE))
            dcc.fcst = dccforecast(dcc.fit, n.ahead=1)
            loopDCC <- rcov(dcc.fcst)
            DCCmatrix[[i]] <- loopDCC

            print(i)
        }

        # Compose Result:
        ans <- DCCmatrix

        # Return Value:
        invisible(ans)
    }

I run this function. After hundreds (690) loops I get the following  error
(and its traceback):

Error in last(rcor(fit, type = "Q"), mo) :
  error in the evaluation of the argument 'x' in the method of selection
for the function 'last': 'Error in 1:m : argument of length 0
'
6 last(rcor(fit, type = "Q"), mo)
5 .dccforecastm(fit, n.ahead = n.ahead, n.roll = n.roll, external.forecasts
= exf,
    cluster = cluster, realizedVol = fit at mfit$realizedVol, ...)
4 .dccforecast(fit, n.ahead = n.ahead, n.roll = n.roll, external.forecasts
= external.forecasts,
    cluster = cluster, ...)
3 dccforecast(dcc.fit, n.ahead = 1)
2 dccforecast(dcc.fit, n.ahead = 1)
1 rollingDCCmatrix(Brasil_returns, eligibleAssets, Brasil_from,
    Brasil_to)

I believe it is a strange error due to the fact I made daily windows and
the loop just behind worked fine. The eligible assets are the same and the
time window is the same size and have no NAs values. I looked in the source
code but sadly I am not very good programmer to see for myself where I got
it wrong.

I run the R-3.1.2 and the last update of rmgach.
Sorry for not providing a reproducible code. If it is necessary I may
provide the data used (need one authorization first).

Can anyone help me?
Thanks in advance.

Fernando Martins Diniz  - martinsdiniz at gmail.com

	[[alternative HTML version deleted]]



More information about the R-SIG-Finance mailing list