# Optimization and Diversification of Cryptocurrency Portfolios: A Composite Copula-Based Approach
## 2 Methodology
### GARCH-Copula Differential Evolution (DE): (GJR-GARCH-DE-C-Vine-Copula)  
In many works, the copula approach is directly applied to returns of financial assets. Nevertheless, we recognize the stylised facts related to the fat tail distributions and the phenomenon of volatility clustering observed in financial time series data. Given this fact, it is useful to introduce GARCH models in order to filter these distributions. Then, the copula model can be used to model the dependency structure between the standardised innovations considered here as iid observations. Here, we opt for GJR-GARCH(1,1) because it accounts for the leverage effect that creates asymmetry in the dynamics of the variance of the financial returns. More details on this model can be found in the works of [PERSON] et al. [18]. We recall that if a \(n\)-dimensional vector of time series variables (returns) \(\mathbf{x}_{t}=(x_{1,t},x_{2,t},\ldots,x_{n,t})\) is assumed to follow a GARCH-Copula modelling type, by construction the joint distribution function is given in the following form  
\[F(\mathbf{x}_{t}|\mathbf{\mu}_{t},\mathbf{\sigma}_{t})=C(F_{1}(x_{1,t}|\mu_{1,t},\sigma_{1,t}),\ldots,F_{n}(x_{n,t}|\mu_{n,t},\sigma_{n,t}))\]  
where \(C\) is the \(n\)-dimensional copula, \(F_{i}\) are the conditional marginal distribution functions relative to \(x_{i,t}\), whose dynamics are described by the intercept \(\mu_{i,t}\) which corresponds to the conditional mean and by an error term \(\epsilon_{i,t}=\sqrt{\sigma_{i,t}}v_{i,t}\), which can be constant or time dependent as in a GJR-GARCH(1,1) specification  
\[ \begin{split}\mathbf{x}_{it}&=\mu_{i,t}+\epsilon_{i,t} \\ \mathbf{\epsilon}_{i,t}&=\sqrt{\sigma_{i,t}}v_{i,t}\\ \sigma_{t}^{2}&=\alpha_{0}+\beta_{1}\sigma_{t-1}^{2 }+(\alpha_{1}+\gamma_{1}\mathbb{I}_{\varepsilon_{t-1}<0})\varepsilon_{t-1}^{2 }\end{split}  \tag{4}\]  
where \(\sigma_{i,t}\) is the conditional variance of the series \(x_{i,t}\), given the prior information to time \(t\), and \(v_{i,t}=\frac{\epsilon_{i,t}}{\sqrt{\sigma_{i,t}}}\) are iid random variables characterising the standardised innovation, considered as white noise with zero mean and variance equals \(1\) (\(v_{t}\sim N(0,1)\)). \(\mathbb{I}_{\varepsilon_{t-1}<0}=1\) if \(\epsilon_{t-1}<0\), otherwise \(\mathbb{I}_{\varepsilon_{t-1}<0}=0\) and \(\gamma_{1}\mathbb{I}_{\varepsilon_{t-1}<0}\varepsilon_{t-1}^{2}\) is the term related to the leverage effect. The differential evolution initiated by [PERSON] and [PERSON] [19] is a nonlinear optimization algorithm that has been extremely successful since its conception and was originally created to solve continuous problems. The algorithm is inspired from evolutionary biology operations which follow the following steps: initialisation, mutation, recombination and selection on a given population to minimise an objective function through successive generations. The algorithm uses alteration and selection operator to transform progressively a population of candidate solution. Consider a population \(\omega=(\omega_{1},\ldots,\omega_{n})\) of size \(n\) and the objective function \(h(\omega_{1},\omega_{2},\ldots,\omega_{n})\) to be optimised. The optimisation process is as follows [20; 21]:  
1. Initial population The initial generation is created randomly, either by the computer or the user. Given the population \(\omega_{ii}^{g}=(\omega_{ki}^{g},\omega_{ki2}^{g},\ldots,\omega_{ki}^{g})\), where the number \(g\) represents the generation order and \(k=1,2,\ldots,N\). The initial population or first generation is created as \[\omega_{ki}=\omega_{ki}^{L}+rand()(\omega_{ki}^{U}+\omega_{ki}^{L})\] where \(\omega_{ki}^{L}\) and \(\omega_{ki}^{U}\) are lower and upper bounds of \(\omega\) respectively, \(rand()\) a randomly generated number and \(i=1,2,\ldots,n\). 2. Mutation The evolutionary process of a generation follows a simple cycle, making it possible to sequentially improve each of the \(N\) individuals. Thus, each of the \(N\) individuals is called upon to be the target vector in turn.