Añadir objetivos
Los objetivos se añaden al objeto de cartera con la función add.objective(). Cada objetivo añadido es un objeto independiente y se guarda en la ranura objectives del objeto de especificación de cartera. Así, los objetivos son modulares y puedes añadir, eliminar o modificar fácilmente los objetos de objetivo. El argumento name debe ser una función válida de R. Hay varias funciones disponibles en el paquete PerformanceAnalytics, pero también se pueden usar funciones definidas por el usuario como funciones objetivo. Los argumentos obligatorios de add.objective() son el portfolio al que se añade el objetivo, el type del objetivo, el name del objetivo y los argumentos con nombre que se pasan mediante ... al constructor del tipo de objetivo. Los argumentos para la función objetivo se especifican como una lista con nombre en arguments.
Tipos básicos de objetivo:
return: Este tipo de objetivo busca maximizar la función objetivo.risk: Este tipo de objetivo busca minimizar la función objetivo.risk_budget: Este tipo de objetivo busca minimizar la concentración de riesgo o penalizar la contribución al riesgo que exceda el porcentaje mínimo o máximo permitido de contribución al riesgo.
Además de los tipos de objetivo anteriores, PortfolioAnalytics también admite tipos de objetivo de utilidad cuadrática y de concentración de pesos. Si te interesan otros tipos de restricciones, consulta los archivos de ayuda de los constructores de restricciones. Los archivos de ayuda incluyen una descripción del tipo de restricción y código de ejemplo.
Este ejercicio forma parte del curso
Análisis de carteras intermedio en R
Instrucciones del ejercicio
- Añade un objetivo de rentabilidad al objeto de especificación de cartera
port_specque creaste en un ejercicio anterior. - Añade a
port_specun objetivo de riesgo para minimizar la desviación estándar de la cartera. - Añade a
port_specun objetivo de presupuesto de riesgo donde el riesgo se defina como desviación estándar por componentes. Establece el porcentaje mínimo de riesgo en un 5% y el porcentaje máximo en un 10%. - Imprime el objeto
port_spec.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Add a return objective to maximize mean return
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add a risk objective to minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add a risk budget objective
port_spec <- add.objective(portfolio = ___, type = ___, name = ___, min_prisk = ___, max_prisk = ___)
# Print the portfolio specification object