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>Übungsanweisungen
- Verwende
enumerate(), um dieportfolio_returnsfür jedesdatein der Schleife zu enumerieren. - Hänge für das aktuelle
datein der Schleife an den Eintrag im Dictionarysharpe_ratiodie Rendite (ret) geteilt durchportfolio_volatilityfür das aktuelle Datum und das aktuelleiin den Schleifen an. - Setze den Wert für die
max_sharpe_idxsdes aktuellendateauf den Index der maximalen Sharpe-Ratio mitnp.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]])