EmpezarEmpieza gratis

Traza la frontera eficiente con el mejor ratio de Sharpe

Ahora vamos a trazar de nuevo la frontera eficiente, pero añadiendo un marcador para la cartera con el mejor índice de Sharpe. Visualizar los datos siempre es una buena idea para entenderlos mejor.

Recuerda que la frontera eficiente se representa en un diagrama de dispersión con la volatilidad de la cartera en el eje x y la rentabilidad de la cartera en el eje y. Obtendremos la fecha más reciente disponible en nuestros datos a partir de covariances.keys(), aunque también podríamos usar cualquiera de los diccionarios portfolio_returns, etc., para obtener la fecha. Luego, obtendremos las volatilidades y las rentabilidades para la última fecha disponible de portfolio_volatility y portfolio_returns. Por último, obtendremos el índice de la cartera con el mejor índice de Sharpe desde max_sharpe_idxs[date], y lo representaremos todo con plt.scatter().

Este ejercicio forma parte del curso

Machine Learning para finanzas con Python

Ver curso

Instrucciones del ejercicio

  • Define cur_volatility como las volatilidades de cartera para la última date.
  • Construye la gráfica de la "frontera eficiente" trazando la volatilidad en el eje x y la rentabilidad en el eje y.
  • Obtén el índice de la mejor cartera para la última date desde max_sharpe_idxs.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Get most recent (current) returns and volatility
date = sorted(covariances.keys())[-1]
cur_returns = portfolio_returns[date]
cur_volatility = ____

# Plot efficient frontier with sharpe as point
plt.scatter(x=____, y=____, alpha=0.1, color='blue')
best_idx = max_sharpe_idxs[____]

# Place an orange "X" on the point with the best Sharpe ratio
plt.scatter(x=cur_volatility[best_idx], y=cur_returns[best_idx], marker='x', color='orange')
plt.xlabel('Volatility')
plt.ylabel('Returns')
plt.show()
Editar y ejecutar código