This repository implements the code used for my B.Sc. in Economics completion paper. The purpose of the work is to implement a CVaR minimization portfolio optimization, where marginals (stocks) are modelled as a ARMA(p,q)-GARCH(1,1) process and the multivariate dist is modelled using a mixture of Clayton-t-Gumbel Copula.
- Module 1 is used for ARMA-GARCH fitting on provided log-returns.
- Module 2 transforms our ARMA-GARCH data into (0,1) CDF data, using ECDF or parametric CDF.
- Module 3 uses (0,1) transformed data to estimate a linear combination of Clayton, t and Gumbel copula parameters, as well as a gaussian one. This is a nonlinear SQP optimization.
- Module 4 simulate log-returns using ARMA-GARCH fit and copula parameters, and optimizes a mean-CVaR portfolio.
- Module 5 calculates out-of-sample performance of optimized weights and several plots and risk/returns benchmarks.
- Main simply loads log-returns data and calls for module's functions.
More information can be found at the complete paper in Sabi UFRGS or at a concise PPT presentation. The code in this repo is an updated version of the code presented in my paper. Because resulting files are big, each module loads and saves information in local files.