Optimización con una función objetivo personalizada
Este ejercicio continúa el anterior y ejecutaremos la optimización con la función objetivo personalizada que calcula la desviación estándar anualizada de la cartera. Como una función objetivo puede ser cualquier función válida de R, añadimos un objetivo de riesgo para la función pasd(). La función set.portfolio.moments() no reconocerá el nombre de objetivo pasd(), así que necesitamos crear una función de momentos personalizada para calcular el segundo momento, sigma. Resolveremos el problema usando carteras aleatorias como método de optimización.
Este ejercicio forma parte del curso
Análisis de carteras intermedio en R
Instrucciones del ejercicio
- Añade la función objetivo personalizada que creaste en el ejercicio anterior al objeto de especificación de cartera.
- Imprime el objeto de especificación de cartera para ver las restricciones y el objetivo.
- Ejecuta la optimización. El nombre de la función de momentos personalizada es
set_sigma. - Imprime los resultados de la optimización.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Add custom objective to portfolio specification
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Print the portfolio specificaton object
# Run the optimization
opt <- optimize.portfolio(R = ___, portfolio = ___, momentFUN = ___, optimize_method = "random", rp = rp)
# Print the results of the optimization