Sharpe-ratio en Sortino-ratio

Financieel traden in Python

Chelsea Yang

Data Science Instructor

Welke strategie presteert beter?

$$

Strategie 1:
  • Rendement: 15%
  • Volatiliteit (standaarddeviatie): 30%

$$

Strategie 2:
  • Rendement: 10%
  • Volatiliteit (standaarddeviatie): 8%
Financieel traden in Python

Risicogecorrigeerd rendement

  • Maak prestaties vergelijkbaar tussen verschillende strategieën
  • Een ratio die het risico bij het behalen van rendement weergeeft

Risico vs. rendement

Financieel traden in Python

Sharpe-ratio

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

$$

  • $R_p $: Rendement van een strategie, portefeuille, asset, etc.
  • $R_r $: Rentevrij rendement
  • $\sigma_p $: Standaarddeviatie van het excessrendement ($R_p-R_f$)

$$

  • Hoe hoger de Sharpe-ratio, hoe aantrekkelijker het rendement
Financieel traden in Python

Kies nu opnieuw

$$

Strategie 1:
  • Rendement: 15%
  • Volatiliteit (standaarddeviatie): 30%
  • Sharpe-ratio: 15%/30% = 0,5

$$

Strategie 2:
  • Rendement: 10%
  • Volatiliteit (standaarddeviatie): 8%
  • Sharpe-ratio: 10%/8% = 1,25
Financieel traden in Python

Sharpe-ratio ophalen uit bt-backtest

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
Financieel traden in Python

Sharpe-ratio handmatig berekenen

# 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
Financieel traden in Python

Beperkingen van de Sharpe-ratio

  • Straft zowel “goede” als “slechte” volatiliteit
  • Opwaartse volatiliteit kan de ratio omlaag trekken

Beperkingen van Sharpe-ratio

Financieel traden in Python

Sortino-ratio

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

  • $R_p $: Rendement van een strategie, portefeuille, asset, etc.
  • $R_r $: Rentevrij rendement
  • $\sigma_d $: Downside-deviatie van het excessrendement ($R_p-R_f$)

Downside-vol

Financieel traden in Python

Sortino-ratio ophalen uit bt-backtest

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
Financieel traden in Python

Laten we oefenen!

Financieel traden in Python

Preparing Video For Download...