
ピーター
過去データの株価情報を取得したい!
過去の情報からシミュレーションするために株価や配当情報を取得しようと思いました。
完全に備忘録メモになります。
yfinanceのインストール方法
pip install yfinance
yfinanceの公式情報はこちらのページを参考にしてください
サンプルコード
yfinanceのdownloadを使って株価を取得する場合
import datetime
import yfinance as yf
#####ターゲットを指定
### 米国株の場合、TickerCodeで取得可能
### 日本株の場合、証券番号+".T"で取得可能
ticker = ["VYM", "2914.T"]
# 取得設定
start_date = date(2017,5,1)
end_date = date(2022,2,28)
#データを収集
for code in tickerList:
### 株価情報取得
data = yf.download(code, start = start_date, end = end_date, interval = "1d")
yfinanceのhistoryを使って株価情報を取得する(注意点)
yfinanceの別API(history)を使うことで配当金情報や株式分割情報を取得することが可能です。
ただし、このAPI(history)で取得できる株価(Open, Close等)は、実際の価格と違うことがありました。
import datetime
import yfinance as yf
ticker = ["VYM", "2914.T"]
# 取得設定
start_date = date(2017,5,1)
end_date = date(2022,2,28)
for code in tickerList:
### 株価情報取得
t = yf.Ticker(code)
data = t.history(start = start_date, end = end_date, interval = "1d")
配当金情報を取得する方法
historyの情報で配当情報を抽出する方法です。
import datetime
import yfinance as yf
ticker = ["VYM", "2914.T"]
# 取得設定
start_date = date(2017,5,1)
end_date = date(2022,2,28)
for code in tickerList:
### 配当情報取得
div_data = t.history(start = start_date, end = end_date, interval = "1d")
div_data["Dividends"]
株価と配当金情報同時に扱うなら??(注意点)
historyの情報では、取得する株価(Open, Close等)は、実際の価格と違うことがありました。
そのため、上の2つを組み合わせることが答えの一つと結論づけました!
import datetime
import yfinance as yf
ticker = ["VYM", "2914.T"]
# 取得設定
start_date = date(2017,5,1)
end_date = date(2022,2,28)
for code in tickerList:
### 配当情報取得
t = yf.Ticker(code)
data = yf.download(code, start = start_date, end = end_date, interval = "1d")
div_data = t.history(start = start_date, end = end_date, interval = "1d")
data["Dividends"] = div_data["Dividends"]
株価と配当金の情報をどちらも取得したい場合、下のサンプルコードのように結合するのはひとつかもしれません。
yfinanceを使って財務諸表情報を取得する場合
yfinanceのfinancialsを使うことで財務諸表を取得することが可能です。
ETFの財務諸表はないため、取得できませんが、米国株/日本株ともに対応可能です
import datetime
import yfinance as yf
ticker = ["MSFT", "2914.T"]
for code in tickerList:
### 財務諸表情報取得
t = yf.Ticker(code)
print(t.financials)
2021-06-30 | 2020-06-30 | 2019-06-30 | 2018-06-30 | |
Research Development | 20716000000 | 19269000000 | 16876000000 | 14726000000 |
Effect Of Accounting Charges | None | None | None | None |
Income Before Tax | 71102000000 | 53036000000 | 43688000000 | 36474000000 |
Minority Interest | None | None | None | None |
Net Income | 61271000000 | 44281000000 | 39240000000 | 16571000000 |
Selling General Administrative | 25224000000 | 24523000000 | 23098000000 | 22223000000 |
Gross Profit | 115856000000 | 96937000000 | 82933000000 | 72007000000 |
Ebit | 69916000000 | 53145000000 | 42959000000 | 35058000000 |
Operating Income | 69916000000 | 53145000000 | 42959000000 | 35058000000 |
Other Operating Expenses | None | None | None | None |
Interest Expense | -2330000000 | -2591000000 | -2686000000 | -2733000000 |
Extraordinary Items | None | None | None | None |
Non Recurring | None | None | None | None |
Other Items | None | None | None | None |
Income Tax Expense | 9831000000 | 8755000000 | 4448000000 | 19903000000 |
Total Revenue | 168088000000 | 143015000000 | 125843000000 | 110360000000 |
Total Operating Expenses | 98172000000 | 89870000000 | 82884000000 | 75302000000 |
Cost Of Revenue | 52232000000 | 46078000000 | 42910000000 | 38353000000 |
Total Other Income Expense Net | 1186000000 | -109000000 | 729000000 | 1416000000 |
Discontinued Operations | None | None | None | None |
Net Income From Continuing Ops | 61271000000 | 44281000000 | 39240000000 | 16571000000 |
Net Income Applicable To Common Shares | 61271000000 | 44281000000 | 39240000000 | 16571000000 |
yfinanceを使って株式分割の情報を取得する場合
yfinanceのfinancialsを使うことで財務諸表を取得することが可能です。
import datetime
import yfinance as yf
ticker = ["VYM", "MSFT", "2914.T"]
for code in tickerList:
### 分割情報取得
t = yf.Ticker(code)
print(t.splits)
マイクロソフトの出力結果です。
コメント