Initial guess of a GARCH-DCC model? I’m trying to fit an ECM-GARCH-DCC model for 2 time series, the whole 3 in the same time using log-likelihood estimation. It has 14 parameters to estimate:

*

*ECM has 2 gammas and 1 lambda per time series, this gives 4 gamma and 2 lambda for 2 TS.

*GARCH has 2 alpha, 2 betas, 2 omega for our 2 TS.

*DCC has only alpha and beta regardless of the number of TS (thanks to Engle 2002 variance targeting which gives a formula of conditional correlation given CCC matrix, getting rid of correlation omega)

To avoid problem of explosive GARCH or values out of bounds, I “crop” the tried params to their bounds in my loss function and add a huge penalty (proportional to the distance from closest bound ** 2) to the -log-likelihood loss to tell the optimizer not to cross the bounds or constraints (GARCH params positive and alpha+beta < 1)
I tested my fit function by feeding the optimizer with a random realisation (2 TS) of this model with known parameters. Its goal is to find these same parameters.
It looks like BFGS is having a hard time finding these 14 parameters in the same time : ECM params are retrieved pretty fast though, but GARCH and DCC keep being completely different from expected params (or maybe there are several solutions with low loss?).
So what I’d like is to “help” my fit function by setting initial param values with a smart initial guess, especially for the GARCH and DCC params that it struggles to retrieve.
Is there some well known smart initial guess for GARCH or DCC models ?

GARCH: I think reasonable starting values for $(\alpha,\beta)$ are  $(\hat\alpha^0,\hat\beta^0)=(0.10,0.85)$ or $(0.05,0.90)$. Since the unconditional variance $\sigma^2=\frac{\omega}{1-(\alpha+\beta)}$, the starting value for $\omega$ should be $\hat\omega^0=(1-(\hat\alpha^0+\hat\beta^0))\hat\sigma^2$ where $\hat\sigma^2$ is the empirical (unconditional) variance of the residual from the ECM equation. You can obtain the latter by estimating the ECM without the DCC-GARCH part; the estimates will not be efficient but still consistent.
DCC: I am less sure what starting values might be reasonable, but I would try something similar as with GARCH.
Another option is to check out the implementations in rugarch or fGarch and rmgarch in R or some other packages in R or other programming languages. They should specify what the initial parameters are. If not, you can open the code and see for yourself (unless the implementation is not open source).
