샤프 지수와 소르티노 지수

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으로 배우는 금융 트레이딩

샤프 지수의 한계

  • “좋은” 변동성과 “나쁜” 변동성을 모두 반영함
  • 상승 변동성이 지수를 과소평가할 수 있음

Sharpe 지수의 한계

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으로 배우는 금융 트레이딩

Let's practice!

Python으로 배우는 금융 트레이딩

Preparing Video For Download...