Comece agoraComece grátis

Obter os melhores índices de Sharpe

Precisamos encontrar os portfólios "ideais" para cada data para usá-los como alvos em Machine Learning. Vamos iterar por cada data em portfolio_returns e, em seguida, pelos portfólios que geramos com portfolio_returns[date]. Depois, vamos calcular o índice de Sharpe, que é o retorno dividido pela volatilidade (assumindo retorno livre de risco igual a 0).

Usamos enumerate() para percorrer os retornos da data atual (portfolio_returns[date]) e acompanhar o índice com i. Depois, usamos a data atual e o índice atual para obter a volatilidade de cada portfólio com portfolio_volatility[date][i]. Por fim, obtemos o índice do melhor índice de Sharpe para cada data usando np.argmax(). Em breve, usaremos esse índice para obter os pesos do portfólio ideal.

Este exercicio faz parte do curso

Machine Learning para Finanças em Python

Ver curso

Instruções do exercicio

  • Usando enumerate(), enumere os portfolio_returns para cada date no loop.
  • Para a date atual no loop, faça o append na entrada do dicionário sharpe_ratio com o retorno (ret) dividido por portfolio_volatility da data atual e do i atual nos loops.
  • Defina o valor de max_sharpe_idxs da date atual como o índice do maior índice de Sharpe usando np.argmax().

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# Empty dictionaries for sharpe ratios and best sharpe indexes by date
sharpe_ratio, max_sharpe_idxs = {}, {}

# Loop through dates and get sharpe ratio for each portfolio
for date in portfolio_returns.keys():
    for i, ret in enumerate(portfolio_returns[____]):
    
        # Divide returns by the volatility for the date and index, i
        sharpe_ratio.setdefault(date, []).append(____ / portfolio_volatility[date][____])

    # Get the index of the best sharpe ratio for each date
    max_sharpe_idxs[date] = np.argmax(sharpe_ratio[____])

print(portfolio_returns[date][max_sharpe_idxs[date]])
Editar e Executar Código