ソルティレシオについて
概要
- シャープレシオはリターンのプラスマイナスの双方を考慮した指標であるが、マイナスのリターンに限定して考える指標がソルティレシオ
- ユースケースとしては、株価の下落時のリスクに着目したい場合に利用する
具体例
import pandas as pd
import yfinance as yf
import numpy as np
# Yahoo Finance からデータを取得
tickers = ['QQQ', 'VOO']
data = yf.download(tickers, start='2024-01-01', end='2024-10-01')['Adj Close']
# 日次リターンを計算
returns = data.pct_change().dropna()
# 目標リターンを設定
target_return = 0 # ここでは0を設定
# 下方リスクを計算する関数
def downside_deviation(returns, target_return=0):
# リターンが目標リターンを下回る場合のみ差分を計算
downside_diff = np.where(returns < target_return, target_return - returns, 0)
# 下方標準偏差を計算(ddof=1 を指定)
return np.std(downside_diff, ddof=1)
# 下方リスクを計算
downside_risk = returns.apply(downside_deviation, target_return=target_return)
# 期待リターンを計算
expected_return = returns.mean()
# ソルティノレシオを計算
sortino_ratio = (expected_return - target_return) / downside_risk
# 結果を表示
print("日次リターンの平均:")
print(expected_return)
print("\n下方リスク:")
print(downside_risk)
print("\nソルティノレシオ(Sortino Ratio):")
print(sortino_ratio)
"""
日次リターンの平均:
Ticker
QQQ 0.001119
VOO 0.001130
dtype: float64
下方リスク:
Ticker
QQQ 0.006969
VOO 0.004772
dtype: float64
ソルティノレシオ(Sortino Ratio):
Ticker
QQQ 0.160575
VOO 0.236754
dtype: float64
"""