LoslegenKostenlos starten

Beste Sharpe-Ratios ermitteln

Wir müssen die „ideal(en)" Portfolios für jedes Datum finden, damit wir sie als Ziele für das Machine Learning verwenden können. Wir iterieren durch jedes Datum in portfolio_returns und anschließend durch die mit portfolio_returns[date] erzeugten Portfolios. Dann berechnen wir die Sharpe-Ratio, also die Rendite geteilt durch die Volatilität (unter der Annahme einer risikofreien Rendite von 0).

Wir verwenden enumerate(), um durch die Renditen für das aktuelle Datum (portfolio_returns[date]) zu iterieren und mit i den Index nachzuverfolgen. Dann nutzen wir das aktuelle Datum und den aktuellen Index, um die Volatilität jedes Portfolios über portfolio_volatility[date][i] zu erhalten. Abschließend bestimmen wir den Index der besten Sharpe-Ratio für jedes Datum mit np.argmax(). Diesen Index verwenden wir gleich, um die idealen Portfoliogewichte zu holen.

Diese Übung ist Teil des Kurses

<Kurs>Maschinelles Lernen für Finanzen in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Verwende enumerate(), um die portfolio_returns für jedes date in der Schleife zu enumerieren.
  • Hänge für das aktuelle date in der Schleife an den Eintrag im Dictionary sharpe_ratio die Rendite (ret) geteilt durch portfolio_volatility für das aktuelle Datum und das aktuelle i in den Schleifen an.
  • Setze den Wert für die max_sharpe_idxs des aktuellen date auf den Index der maximalen Sharpe-Ratio mit np.argmax().

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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]])
Code bearbeiten und ausführen