Коэффициент Шарпа и коэффициент Сортино

Финансовый трейдинг на Python

Chelsea Yang

Data Science Instructor

Какая стратегия лучше?

$$

Стратегия 1:
  • Доходность: 15%
  • Волатильность (стандартное отклонение): 30%

$$

Стратегия 2:
  • Доходность: 10%
  • Волатильность (стандартное отклонение): 8%
Финансовый трейдинг на Python

Доходность с поправкой на риск

  • Позволяет сравнивать эффективность разных стратегий
  • Коэффициент, отражающий риск, связанный с получением дохода

Риск и доходность

Финансовый трейдинг на Python

Коэффициент Шарпа

$$ \text{Sharpe Ratio} = (R_p - R_r)/\sigma_p $$

$$

  • $R_p $: Доходность стратегии, портфеля, актива и т. д.
  • $R_r $: Безрисковая ставка
  • $\sigma_p $: Стандартное отклонение избыточной доходности ($R_p-R_f$)

$$

  • Чем выше коэффициент Шарпа, тем привлекательнее доходность
Финансовый трейдинг на Python

Попробуйте выбрать снова

$$

Стратегия 1:
  • Доходность: 15%
  • Волатильность (стандартное отклонение): 30%
  • Коэффициент Шарпа: 15%/30% = 0,5

$$

Стратегия 2:
  • Доходность: 10%
  • Волатильность (стандартное отклонение): 8%
  • Коэффициент Шарпа: 10%/8% = 1,25
Финансовый трейдинг на Python

Получение коэффициента Шарпа из бэктеста bt

resInfo = bt_result.stats
# Get Sharpe ratios from the backtest stats
print('Sharpe ratio daily: %.2f'% resInfo.loc['daily_sharpe'])
print('Sharpe ratio monthly %.2f'% resInfo.loc['monthly_sharpe'])
print('Sharpe ratio annually %.2f'% resInfo.loc['yearly_sharpe'])
Sharpe ratio daily: 0.49
Sharpe ratio monthly 0.48
Sharpe ratio annually 1.34
Финансовый трейдинг на Python

Ручной расчёт коэффициента Шарпа

# Obtain annual return
annual_return = resInfo.loc['yearly_mean']

# Obtain annual volatility volatility = resInfo.loc['yearly_vol']
# Calculate Sharpe ratio manually sharpe_ratio = annual_return / volatility print('Sharpe ratio annually %.2f'% sharpe_ratio)
Sharpe ratio annually 1.34
Финансовый трейдинг на Python

Ограничения коэффициента Шарпа

  • Учитывает как «хорошую», так и «плохую» волатильность
  • Волатильность роста может занижать коэффициент

Ограничения коэффициента Шарпа

Финансовый трейдинг на Python

Коэффициент Сортино

$$ \text{Sortino Ratio} = (R_p - R_r)/\sigma_d $$

  • $R_p $: Доходность стратегии, портфеля, актива и т. д.
  • $R_r $: Безрисковая ставка
  • $\sigma_d $: Отклонение вниз избыточной доходности ($R_p-R_f$)

Волатильность вниз

Финансовый трейдинг на Python

Получение коэффициента Сортино из бэктеста bt

resInfo = bt_result.stats
# Get Sortino ratio from backtest stats
print('Sortino ratio daily: %.2f'% resInfo.loc['daily_sortino'])
print('Sortino ratio monthly %.2f'% resInfo.loc['monthly_sortino'])
print('Sortino ratio annually %.2f'% resInfo.loc['yearly_sortino'])
Sortino ratio daily: 0.70
Sortino ratio monthly 0.86
Sortino ratio annually 2.29
Финансовый трейдинг на Python

Давайте потренируемся!

Финансовый трейдинг на Python

Preparing Video For Download...