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

Знайдіть найкращі коефіцієнти Шарпа

Нам потрібно знайти «ідеальні» портфелі для кожної дати, щоб використати їх як цілі для машинного навчання. Ми пройдемося циклом по кожній даті в portfolio_returns, а потім по портфелях, згенерованих у portfolio_returns[date]. Далі обчислимо коефіцієнт Шарпа — це дохідність, поділена на волатильність (припускаємо безризикову дохідність 0).

Ми використовуємо enumerate(), щоб ітеруватися за доходностями для поточної дати (portfolio_returns[date]) і відстежувати індекс за допомогою i. Потім використовуємо поточну дату та поточний індекс, щоб отримати волатильність кожного портфеля через portfolio_volatility[date][i]. Нарешті, отримуємо індекс найкращого коефіцієнта Шарпа для кожної дати за допомогою np.argmax(). Незабаром ми використаємо цей індекс, щоб отримати ваги ідеального портфеля.

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

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

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

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

  • Використовуючи enumerate(), пронумеруйте portfolio_returns для кожної date у циклі.
  • Для поточної date у циклі додайте до словника sharpe_ratio значення — дохідність (ret), поділену на portfolio_volatility для поточної дати та поточного i у циклах.
  • Встановіть для поточної date значення поля max_sharpe_idxs як індекс максимального коефіцієнта Шарпа за допомогою np.argmax().

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

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

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