1日毎の利益率を出すことに意味があるかはわからないが、Pythonを使ってYahoo! Financeから株価を取得して単純利益率を計算する。
Adj Closeは配当込み分割調整後株価。Y!Financeのヘルプによると配当金の終値に占める割合を除き、終値を過去を含めて再計算している。分割も同様。気にせず使って良さそうだ。
import pandas_datareader.data as wb
import pandas as pd
import matplotlib.pyplot as plt
#Yahoo Financeの仕様変更の影響で関数をオーバーライドする必要が出たため
#以下のライブラリを追加
import yfinance as yf
#Override することで pandas_datareader.data.get_data_yahooが追加される。
yf.pdr_override()
tickers = ["V", "PG", "MMM", "MSFT"]
mydata = pd.DataFrame()
for t in tickers:
mydata[t] = wb.get_data_yahoo(tickers= t , start="2011-1-1")["Adj Close"]
#単純利益率を計算。当日の値を前日の値で割り1を引く。値が正なら株価上昇。
returns = (mydata/mydata.shift(1))-1
コメント