代替的なリスク指標

Pythonで学ぶポートフォリオ分析入門

Charlotte Werger

Data Scientist

下方リスクを見る

上方・下方リスクのグラフ

  • 良いリスク指標は損失(下方リスク)に注目すべき
Pythonで学ぶポートフォリオ分析入門

ソルティノ比

$$

  • シャープ比に類似、ただし分散が異なる
  • $ Sortino \; Ratio = \frac{R_p - R_f}{\sigma_d}$
  • $\sigma_d$ は下方リターンの標準偏差

$$

下方リスクの計算

Pythonで学ぶポートフォリオ分析入門

Pythonでのソルティノ比

# Define risk free rate and target return of 0
rfr = 0
target_return = 0
# Calcualte the daily returns from price data
apple_returns=pd.DataFrame(apple_price.pct_change())
# Select the negative returns only 
negative_returns = apple_returns.loc[apple_returns['AAPL'] < target]
Pythonで学ぶポートフォリオ分析入門
# Calculate expected return and std dev of downside returns
expected_return = apple_returns['AAPL'].mean()
down_stdev = negative_returns.std()
# Calculate the sortino ratio
sortino_ratio = (expected_return - rfr)/down_stdev
print(sortino_ratio)
0.07887683763760528
Pythonで学ぶポートフォリオ分析入門

最大ドローダウン

  • 市場のピークからボトムまでの最大下落率
  • 選ぶ期間に依存
  • 回復時間:損益分岐に戻るまでの時間

S&P500のドローダウンの推移

Pythonで学ぶポートフォリオ分析入門

Pythonでの日次最大ドローダウン

# Calculate the maximum value of returns using rolling().max()
roll_max = apple_price.rolling(min_periods=1,window=250).max()

# Calculate daily draw-down from rolling max daily_drawdown = apple_price/roll_max - 1.0
# Calculate maximum daily draw-down max_daily_drawdown = daily_drawdown.rolling(min_periods=1,window=250).min()
# Plot the results daily_drawdown.plot() max_daily_drawdown.plot() plt.show()
Pythonで学ぶポートフォリオ分析入門

Appleの最大ドローダウン

Apple価格の最大ドローダウンのプロット

Pythonで学ぶポートフォリオ分析入門

Passons à la pratique !

Pythonで学ぶポートフォリオ分析入門

Preparing Video For Download...