Refinar restricciones y objetivos
Aquí planteamos la hipótesis de que refinar las restricciones y/o los objetivos mejorará el rendimiento. Añadamos un objetivo de presupuesto de riesgo para fijar un porcentaje mínimo y máximo de contribución al riesgo para cada activo. Partiremos de la especificación del porfolio que creamos. Este es un problema de optimización más complejo y requerirá un solucionador global, por lo que usaremos porfolios aleatorios como método de optimización.
Este ejercicio forma parte del curso
Análisis de carteras intermedio en R
Instrucciones del ejercicio
- Añade un objetivo de presupuesto de riesgo
risk_budgetaport_specdonde el riesgo se defina como desviación estándar. Establece el porcentaje mínimo de riesgo en 5% y el máximo en 10%. - Ejecuta la optimización con reajuste trimestral. Define el periodo de entrenamiento y la ventana rodante para usar 5 años de datos. Asigna los resultados a una variable llamada
opt_rebal_rb. - Grafica los pesos.
- Grafica la contribución porcentual de los componentes al riesgo.
- Calcula los rendimientos del porfolio usando
Return.portfolio(). Asigna los rendimientos a una variable llamadareturns_rb.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Add a risk budge objective
port_spec <- add.objective(portfolio = ___,
type = ___,
name = ___,
min_prisk = ___,
max_prisk = ___)
# Run the optimization
opt_rebal_rb <- optimize.portfolio.rebalancing(R = ___,
portfolio = ___,
optimize_method = "random", rp = rp,
trace = TRUE,
rebalance_on = ___,
training_period = ___,
rolling_window = ___)
# Chart the weights
# Chart the percentage contribution to risk
chart.RiskBudget(___, match.col = "StdDev", risk.type = ___)
# Compute the portfolio returns
returns_rb <- Return.portfolio(R = ___, weights = ___)
colnames(returns_rb) <- "risk_budget"