EmpezarEmpieza gratis

Obtén los mejores ratios de Sharpe

Necesitamos encontrar las carteras "ideales" para cada fecha para usarlas como objetivos en Machine Learning. Recorremos cada fecha en portfolio_returns y, para cada una, las carteras que generamos con portfolio_returns[date]. Después calculamos el ratio de Sharpe, que es el retorno dividido por la volatilidad (suponiendo un retorno libre de riesgo de 0).

Usamos enumerate() para iterar por los retornos de la fecha actual (portfolio_returns[date]) y llevar la cuenta del índice con i. Luego usamos la fecha actual y el índice actual para obtener la volatilidad de cada cartera con portfolio_volatility[date][i]. Por último, obtenemos el índice del mejor ratio de Sharpe para cada fecha usando np.argmax(). Usaremos ese índice en breve para obtener los pesos de la cartera ideal.

Este ejercicio forma parte del curso

Machine Learning para finanzas con Python

Ver curso

Instrucciones del ejercicio

  • Usando enumerate(), enumera los portfolio_returns para cada date en el bucle.
  • Para la date actual en el bucle, añade a la entrada del diccionario sharpe_ratio el retorno (ret) dividido por portfolio_volatility para la fecha actual y el i actual en los bucles.
  • Establece el valor de max_sharpe_idxs de la date actual como el índice del máximo ratio de Sharpe usando np.argmax().

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# 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 y ejecutar código