結論
- 方法1.pandas_datareaderを用いてstooqから株の情報を取得する
- 方法2.yfinanceを用いてYahoo Financeから株の情報を取得する
yfinanceを用いると1分、5分、15分、30分、60分の間隔で株の情報を取得するこもできる
経緯
機械学習について学んでいる過程で、過去の情報を基に、未来の情報を予測する時系列予測について学びました。
過去の株情報を基に、未来の株情報を予測できないか。
株価予測ができるとは思えません。ただ、時系列分析で株価予測モデルを作成する過程で「できること」「できないこと」を学べると考え、挑戦することにしました。
まずは株の情報をプログラムで取得する方法を調整し、整理しました。
方法
方法1.pandas_datareaderを用いてstooqから株の情報を取得する
pandas_datareaderのインストール
pip install pandas_datareader
stooqから取得できる株情報は、指定した銘柄の指定期間の下記情報
- 始値(Open)
- 高値(High)
- 安値(Low)
- 終値(Close)
- 出来高(Volume)
コード
# ライブラリの読み込み
import pandas_datareader as web
# 証券コードを指定する
# 日本株の場合は、証券コードの最後に'.JP'を付ける
# トヨタ7203の場合は、'7203.JP'となる
stock_code = '7203.JP'
# 株情報を取得する箇所を設定する
data_source = 'stooq'
# 株情報の取得開始日を指定する
start = '2019-01-01'
# 株情報の取得終了日を指定する
end = '2019-12-31'
# 株情報を取得する
df = web.DataReader(stock_code, data_source=data_source, start=start, end=end)
# 取得した株情報を表示する
print(df)
# 取得した株情報の配列の形状を表示する
print(df.shape)
# 取得した株情報の各列の属性を表示する
print(df.dtypes)
# 取得した株情報の全要素数を表示する
print(df.size)
実行結果
方法2.yfinanceを用いてYahoo Financeから株の情報を取得する
yfinanceのインストール
pip install yfinance
yfinanceから取得できる株情報は、指定した銘柄の指定期間の下記情報。
yfinanceでは、1分、5分、15分、30分、60分、90分、5日、1週間、一か月、三か月の期間を指定することができます。
- 始値(Open)
- 高値(High)
- 安値(Low)
- 終値(Close)
- 調整後終値(Adj Close)
- 出来高(Volume)
株の取引き情報だけではなく、下記の情報も取得できます。
- バランスシート(balancesheet)
- キャッシュフロー(cashflow)
- 財務(financials)
- 配当(dividends)
- 収益(earnings)
- 機関投資家(institutional holders)
など
コード
# ライブラリの読み込み
import yfinance as yf
# 証券コードを指定する
# 日本株の場合は、証券コードの最後に'.T'を付ける
# トヨタ7203の場合は、'7203.T'となる
stock_code = '7203.T'
# 株情報の取得開始日を指定する
start = '2021-05-25'
# 株情報の取得終了日を指定する
end = '2021-06-02'
# 期間を指定して株情報を取得する
toyota1 = yf.download(tickers=stock_code, start=start, end=end)
print(toyota1)
# 直近、1日間の30分間隔の株情報を取得する
# periodでは、1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd,maxを設定できる
# intervalでは、1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3moを設定できる
toyota2 = yf.download(tickers=stock_code, period='1d', interval='30m')
print(toyota2)
# 指定の証券コードの情報を取得する
toyota3 = yf.Ticker(stock_code)
# バランスシートを表示する
print(toyota3.balancesheet)
# キャッシュフローを表示する
print(toyota3.cashflow)
# 財務を表示する
print(toyota3.financials)
# 配当を表示する
print(toyota3.dividends)
# 収益を表示する
print(toyota3.earnings)
# 機関投資家を表示する
print(toyota3.institutional_holders)
実行結果
期間を指定して株情報を取得した結果
直近、1日間の30分間隔の株情報を取得した結果
バランスシートを取得した結果
キャッシュフローを取得した結果
財務を取得した結果
配当を取得した結果
収益を取得した結果
機関投資家を取得した結果
コメント