Zacznij terazZacznij za darmo

Wykres efektywnej granicy z najlepszym wskaźnikiem Sharpe'a

Narysujmy teraz ponownie efektywną granicę, tym razem dodając znacznik dla portfela z najlepszym wskaźnikiem Sharpe'a. Wizualizacja danych to zawsze dobry pomysł – pozwala lepiej je zrozumieć.

Przypomnij sobie, że efektywna granica jest przedstawiana na wykresie punktowym: zmienność portfela na osi x, a stopy zwrotu portfela na osi y. Pobierzemy najnowszą datę z danych za pomocą covariances.keys() – choć równie dobrze można by użyć słowników portfolio_returns lub podobnych. Następnie pobierzemy zmienności i stopy zwrotu dla tej daty ze słowników portfolio_volatility i portfolio_returns. Na koniec pobierzemy indeks portfela z najlepszym wskaźnikiem Sharpe'a z max_sharpe_idxs[date] i zwizualizujemy wszystko za pomocą plt.scatter().

To ćwiczenie jest częścią kursu

Uczenie maszynowe w finansach z Pythonem

Zobacz kurs

Instrukcje do ćwiczenia

  • Ustaw cur_volatility jako zmienności portfela dla najnowszej wartości date.
  • Zbuduj wykres „efektywnej granicy", umieszczając zmienność na osi x, a stopy zwrotu na osi y.
  • Pobierz indeks najlepszego portfela dla najnowszej wartości date ze słownika max_sharpe_idxs.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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()
Edytuj i uruchom kod