Plotar a fronteira eficiente com o melhor índice de Sharpe
Vamos plotar novamente a fronteira eficiente, mas agora adicionando um marcador para o portfólio com o melhor índice de Sharpe. Visualizar os dados é sempre uma ótima forma de entendê-los melhor.
Lembre-se: a fronteira eficiente é um gráfico de dispersão com a volatilidade do portfólio no eixo x e os retornos do portfólio no eixo y. Vamos obter a data mais recente disponível em nossos dados a partir de covariances.keys(), embora qualquer um dos dicionários portfolio_returns, etc. também possa ser usado para pegar a data. Em seguida, pegamos as volatilidades e os retornos para a data mais recente em portfolio_volatility e portfolio_returns. Por fim, obtemos o índice do portfólio com o melhor índice de Sharpe em max_sharpe_idxs[date] e plotamos tudo com plt.scatter().
Este exercicio faz parte do curso
Machine Learning para Finanças em Python
Instruções do exercicio
- Defina
cur_volatilitycomo as volatilidades do portfólio para adatemais recente. - Construa o gráfico da "fronteira eficiente" plotando a volatilidade no eixo x e os retornos no eixo y.
- Obtenha o índice do melhor portfólio para a
datemais recente a partir demax_sharpe_idxs.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# 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()