マーコウィッツ・ポートフォリオ

Pythonで学ぶポートフォリオ・リスク管理入門

Dakota Wixom

Quantitative Analyst | QuantCourse.com

ランダム生成した100,000件のポートフォリオ

Pythonで学ぶポートフォリオ・リスク管理入門

シャープレシオ

シャープレシオはリスク調整済みリターンの指標です。

1966年版シャープレシオの計算式:

$$ S = \frac{ R_a - r_f }{\sigma_a} $$

  • S: シャープレシオ
  • $ R_a $: 資産リターン
  • $ r_f $: 無リスク金利
  • $ \sigma_a $: 資産のボラティリティ
Pythonで学ぶポートフォリオ・リスク管理入門

効率的フロンティア

Pythonで学ぶポートフォリオ・リスク管理入門

マーコウィッツ・ポートフォリオ

効率的フロンティア上のすべての点は最適ポートフォリオです。

以下の2点をマーコウィッツ・ポートフォリオと呼びます:

  • MSR: 最大シャープレシオ・ポートフォリオ
  • GMV: 最小分散ポートフォリオ

Pythonで学ぶポートフォリオ・リスク管理入門

ポートフォリオの選択

最適なポートフォリオの選び方

  • 効率的フロンティアの境界上のポートフォリオを選ぶ
  • リスクを許容できれば、より高いリターンが得られる
Pythonで学ぶポートフォリオ・リスク管理入門

PythonでのMSR選択

Volatility 列と Returns 列を持つランダムポートフォリオのDataFrame df を仮定:

numstocks = 5
risk_free = 0
df["Sharpe"] = (df["Returns"] - risk_free) / df["Volatility"]
MSR = df.sort_values(by=['Sharpe'], ascending=False)
MSR_weights = MSR.iloc[0, 0:numstocks]
np.array(MSR_weights)
array([0.15, 0.35, 0.10, 0.15, 0.25])
Pythonで学ぶポートフォリオ・リスク管理入門

過去のパフォーマンスは将来の成果を保証しない

最大シャープレシオ・ポートフォリオは魅力的に見えますが、実際にはリターンの予測は非常に困難です。

Pythonで学ぶポートフォリオ・リスク管理入門

PythonでのGMV選択

Volatility 列と Returns 列を持つランダムポートフォリオのDataFrame df を仮定:

numstocks = 5
GMV = df.sort_values(by=['Volatility'], ascending=True)
GMV_weights = GMV.iloc[0, 0:numstocks]
np.array(GMV_weights)
array([0.25, 0.15, 0.35, 0.15, 0.10])
Pythonで学ぶポートフォリオ・リスク管理入門

練習しましょう!

Pythonで学ぶポートフォリオ・リスク管理入門

Preparing Video For Download...