#1 目的
Sharpe RatioとSortino Ratioの意味を説明します。
#2 内容
#2-1 Sharpe Ratioについて
株式投資における銘柄選定においては、期待リターンが高く、リスク(日々の変動率,Volatilityのこと)が低い銘柄を選ぶことが一般的によいとされている。リターンとリスクの関係を示したものがSharpe Ratioである。Sharpe Ratioの計算式は下記で定義されます。
Sharpe Ratio =K \biggl({\frac{R_{n}-R_{f}}{σ_{n}}} \biggl)
- $R_{p}:$ 期待リターンを表します。
ある株式銘柄の価格について、当日の終値を$S_{i}$と表し、前日の終値を$S_{i-1}$と表すときに
変化率$c_{i}$は下記式(1)で定義する。($1≦i≦n$)
c_{i} = \biggl({\frac{S_i}{S_{i-1}}} \biggl) \tag{1}
ここで$R_{p}$は$c_{i}$の平均となります。
R_{n} = \frac{1}{n} \sum_{i=1}^{n} c_{i} \tag{2}
-
$R_{f}:$ 無リスクリターンを示します。何もしなくても得られる利益です。(例:配当、利息)
-
$σ_{p}:$ Volatilityを表します。
σ_{n} = \frac{1}{n} \sqrt{\sum_{i=1}^{n} (c_{i}-\bar{c})^{2}} \tag{2}
- $K:$ 調整定数を表します。
株価データが日足の場合は、$K=\sqrt{256}$, 株価データが週足の場合は、$K=\sqrt{52}$となります。
上記式より、Sharpe Ratioが大きい=高期待リターン & 低リスク(Volatility)となり一般的によい傾向となります。逆にSharpe Ratioが低い場合は、リスク(Volarility)が高いということですので、損をした場合の損金が大きくなることを示しております。一般的に$Sharpe Ratio > 1 $の銘柄を買うことがよいとされております。
数値は大きいほど好ましいです。
Sharpe Ratioについてさらに詳しく知りたい場合は、こちらのサイトにまとめられております。
下記に日足の株価に対するsharp rationを計算するpythonコードを載せておきます。
#Sharp Ratioを計算する関数
def shaperatio(DF):
df = DF.copy()
df["daily_ret"] = DF["close"].pct_change() #株価終値の前日との変化率を計算する。
ret_ave=np.mean(df["daily_ret"])
vol_sp = df["daily_ret"].std()
return math.sqrt(256)*ret_ave/vol_sp
#2-2 Sortino Ratioについて
Sharpe RatioのVolatility $σ_{p}$は、株価の上昇方向の変化と下降方向の変化の両方を対象に計算していますが、Sortino Ratioのolatilityは下降方向の変化のみを取り出してVolatilityを算出します。
銘柄をトレードするときに、最終的に損金が出る場合どの程度損金がでるのか予測したい場合にSortino Ratioを使います。
Sortino Ratio = \biggl({\frac{R_{p}-R_{f}}{σ_{dp}}} \biggl)
$R_{p}:$ 期待リターンを表します。実際の計算方法はこちらをご覧ください。
$R_{f}:$ 無リスクリターンを示します。何もしなくても得られる利益です。(例:配当、利息)
$σ_{dp}:$ 下降方向のVolatilityを表します。
数値は大きいほど好ましいです。
ある株式銘柄の価格について、任意の日の銘柄価格を$S_{i}$とするとき、前日との変化率$c_{i}$を下記のとおり定義する。
$σ_{dp}$の計算方法
c_{i} = \biggl({\frac{S_i}{S_{i-1}}} \biggl)
ここで$c_{i}<0$となるものを集め、$C_{dp}$を定義します。
C_{dp} = \left\{c_{j} | c_{i}<0 \right\}
このとき開始日からn営業日後までの株式銘柄のVolatilityを下記数式で定義する。
σ_{dp} = \sqrt{\sum_{c_{j} \in C_{dp}}^{} {(c_{j}-\bar{c})}^{2}}
(ただし、$\bar{c}$は$C_{dp}$の要素の平均とする。)