Resuelve un problema sencillo de optimización de carteras
En este primer ejercicio aprenderás a resolver un problema sencillo de optimización de carteras usando PortfolioAnalytics. Verás cómo crear un objeto de especificación de cartera, añadir restricciones y objetivos, y resolver el problema de optimización. El problema consiste en construir una cartera de varianza mínima sujeta a inversión total y solo en largo. El objetivo es minimizar la varianza de la cartera. Hay dos restricciones en este problema: la restricción de inversión total implica que los pesos deben sumar 1, y la restricción de solo en largo implica que todos los pesos deben ser mayores o iguales que 0 (es decir, no se permiten posiciones cortas).
Este ejercicio forma parte del curso
Análisis de carteras intermedio en R
Instrucciones del ejercicio
- Crea un objeto de especificación de cartera usando los nombres de los activos del conjunto de datos
index_returnsy llamaport_specal objeto de especificación. - Añade una restricción de inversión total al objeto
port_specpara que los pesos sumen 1. - Añade una restricción de solo en largo al objeto
port_specpara que el peso de un activo esté entre 0 y 1. - Añade un objetivo para minimizar la desviación estándar de la cartera al objeto
port_spec. - Resuelve el problema de optimización de la cartera usando
optimize_method = "ROI". Asigna los resultados de la optimización a un objeto llamadoopt.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Create the portfolio specification
port_spec <- portfolio.spec(colnames(___))
# Add a full investment constraint such that the weights sum to 1
port_spec <- add.constraint(portfolio = ___, type = "___")
# Add a long only constraint such that the weight of an asset is between 0 and 1
port_spec <- add.constraint(portfolio = ___, type = "___")
# Add an objective to minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = "___", name = "___")
# Solve the optimization problem
opt <- optimize.portfolio(___, portfolio = ___, optimize_method = "___")