始める無料で始める

最良シャープレシオを持つポートフォリオを効率的フロンティアにプロットする

効率的フロンティアを再度プロットしましょう。今回は、シャープ指数が最も高いポートフォリオにマーカーを追加します。データを可視化することで、内容をより深く理解できます。

効率的フロンティアは、x 軸にポートフォリオのボラティリティ、y 軸にポートフォリオのリターンをとった散布図で表します。データの最新日付は covariances.keys() から取得しますが、portfolio_returns などのディクショナリからも同様に取得できます。次に、portfolio_volatilityportfolio_returns から最新日付のボラティリティとリターンを取得します。最後に、max_sharpe_idxs[date] からシャープ指数が最も高いポートフォリオのインデックスを取得し、plt.scatter() ですべてをプロットします。

この演習はコースの一部です

Python による金融のための Machine Learning

コースを見る

演習の手順

  • cur_volatility に、最新の date におけるポートフォリオのボラティリティを設定してください。
  • x 軸にボラティリティ、y 軸にリターンをプロットして、「効率的フロンティア」のグラフを作成してください。
  • max_sharpe_idxs から、最新の date における最良ポートフォリオのインデックスを取得してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Get most recent (current) returns and volatility
date = sorted(covariances.keys())[-1]
cur_returns = portfolio_returns[date]
cur_volatility = ____

# Plot efficient frontier with sharpe as point
plt.scatter(x=____, y=____, alpha=0.1, color='blue')
best_idx = max_sharpe_idxs[____]

# Place an orange "X" on the point with the best Sharpe ratio
plt.scatter(x=cur_volatility[best_idx], y=cur_returns[best_idx], marker='x', color='orange')
plt.xlabel('Volatility')
plt.ylabel('Returns')
plt.show()
コードを編集して実行