ПочатиПочніть безкоштовно

Побудова ефективної межі з найкращим коефіцієнтом Шарпа

Тепер знову побудуємо ефективну межу та додамо позначку для портфеля з найкращим індексом Шарпа. Візуалізація даних завжди допомагає краще їх зрозуміти.

Нагадаємо, ефективна межа зображається як діаграма розсіювання, де на осі x — волатильність портфеля, а на осі y — дохідність портфеля. Ми отримаємо найпізнішу дату, яка є в наших даних, з covariances.keys(), хоча будь-який зі словників portfolio_returns тощо теж підійде, щоб дістати дату. Потім отримаємо волатильності та дохідності для цієї найпізнішої дати з portfolio_volatility і portfolio_returns. Нарешті, візьмемо індекс портфеля з найкращим індексом Шарпа з max_sharpe_idxs[date] і все побудуємо за допомогою plt.scatter().

Ця вправа є частиною курсу

Machine Learning для фінансів у Python

Переглянути курс

Інструкції до вправи

  • Присвойте cur_volatility волатильності портфелів для останньої date.
  • Побудуйте графік «ефективної межі», відклавши волатильність по осі x, а дохідність — по осі y.
  • Отримайте індекс найкращого портфеля для останньої date зі словника max_sharpe_idxs.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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()
Редагувати та запускати код