株価DataFrameを結合してリターンを計算する
現代ポートフォリオ理論(MPT)のポートフォリオを計算する第一歩として、日次リターンと月次リターンを求めましょう。最終的には、シャープレシオに基づいて各月の最適ポートフォリオを求めます。そのためにまず、すべての株価を1つのDataFrameにまとめ、日次・月次の時間軸にリサンプリングします。リスクの指標として使うボラティリティを計算するには、日次の価格変化が必要です。
この演習はコースの一部です
Python による金融のための Machine Learning
演習の手順
pd.concat()を使ってlng_df、spy_df、smlv_dfを結合し、full_dfDataFrameを作成しましょう。full_dfをビジネス月初('BMS')の頻度にリサンプリングしましょう。.pct_change()を使ってfull_dfの日次変化率を求めましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Join 3 stock dataframes together
full_df = pd.concat(____, axis=1).dropna()
# Resample the full dataframe to monthly timeframe
monthly_df = full_df.resample(____).first()
# Calculate daily returns of stocks
returns_daily = ____
# Calculate monthly returns of the stocks
returns_monthly = monthly_df.pct_change().dropna()
print(returns_monthly.tail())