Pythonで学ぶポートフォリオ分析入門
Charlotte Werger
Data Scientist

$$

時間とともに変化する価値
$ Return_t = \frac{V_t - V_{t-1}}{V_{t-1}} $

$$
df.head(2)
AAPL AMZN TSLA
date
2018-03-25 13.88 114.74 92.48
2018-03-26 13.35 109.95 89.79
# 各日のリターンを計算
returns = df.pct_change()
returns.head(2)
AAPL AMZN TSLA
date
2018-03-25 NaN NaN NaN
2018-03-26 -0.013772 0.030838 0.075705
weights = np.array([0, 0.50, 0.25])
# 各銘柄の平均リターンを計算
meanDailyReturns = returns.mean()
# ポートフォリオのリターンを計算
portReturn = np.sum(meanDailyReturns*weights)
print (portReturn)
0.05752375881537723
# 日次ポートフォリオ・リターンを計算
returns['Portfolio']= returns.dot(weights)
# 見てみましょう
returns.head(3)
AAPL AMZN TSLA Portfolio
date
2018-03-23 -0.020974 -0.026739 -0.029068 -0.025880
2018-03-26 -0.013772 0.030838 0.075705 0.030902
# パーセントリターンを時系列で複利化
daily_cum_ret=(1+returns).cumprod()
# 累積リターンをプロット
daily_cum_ret.Portfolio.plot()

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