60分
・株データの取得
このレッスンでは、株情報を収集するために
というライブラリを使っていきます。
まずはyFinanceというライブラリについて簡単に説明します。
yFinanceはYahooが公開しているAPIから作られたオープンソースのツールで、Yahooファイナンスから株価データを取得することが出来ます。
Yahoo!ファイナンスAPIは、個人的な使用のみを目的としているので、あくまで学習のために利用しましょう。
では実際に”yFinance”を使って株データを取得してみましょう。
まずは自身の環境にライブラリをインストールします。
pip install yfinance
実際にライブラリを使って”Amazon.com”の株データを取得します。
株データの取得する際に使う”download関数“では主に「ターゲット」「期間」「頻度」を指定します。
import yfinance as yf
#ターゲットを指定
ticker = "AMZN"
#データを収集
# data = yf.download(ターゲット, 期間, 頻度)
data = yf.download(ticker, period = '6mo', interval = "1d")
print(data)
yFinanceAPIのdownload関数では取得データをpandasのDateFrameの形で結果を返してくれます。
出力された各項目は以下になります
ターゲットの指定には取得したい株の銘柄コード(今回は”Amazon.com”なので、”AMZN”)を指定します。
#ターゲットを指定
ticker = "AMZN"
このターゲットを変更することで別企業の株情報を取得できます。
ただし、日本株を指定するときは銘柄コードに東京証券を表す「.T」を追加する必要があります。
#ターゲットを指定(楽天グループ(銘柄コード:4755))
ticker = "4755.T"
また変数tickerに指定する銘柄コードは複数選択することも可能です。
#ターゲットをlist型で複数指定
tickers = ["AMZN", "AAPL"]
#データを収集
data = yf.download(tickers , period = '6mo' , interval = "1d")
“Amazon.com”に加えて”Apple”をターゲットに指定した例になります。
このように一度に複数の企業の情報を収集することも出来ます。
“download関数“では”period”というパラメータで取得する株データの期間を指定します。
“period”というパラメータではそれぞれ、”d”⇒日、”mo”⇒月、”y”⇒年、”ytd”⇒当会計年度、”max”⇒取得できる全期間、を選択できます。
何も指定しない場合、デフォルトの”max”になります。
また、期間に”period”ではなく”start/end”というパラメータを使用することで特定の期間を指定することが出来ます。
#ターゲットを指定
ticker = "AMZN"
#期間に2022/6/1~2022/06/15を指定
data = yf.download(ticker, start = "2022-06-01", end = "2022-06-15", interval = "1d")
data
このように任意の期間を設定して情報を取得することも出来ます。
ただし、”period”と”start/end”のパラメータは一緒に使えないので注意しましょう。
“download関数“では”interval”というパラメータで取得する株データの頻度を指定します。
“interval”というパラメータでは「1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo」を選択できます。
それぞれ、”m”⇒分、”h”⇒時間、”d”⇒日、”wk”⇒週、”mo”⇒月、となり何も指定しない場合、デフォルトの”1d”になります。
#ターゲットを指定
ticker = "AMZN"
#頻度に5分毎を指定
data = yf.download(ticker, period = "1mo", interval = "5m")
data
また、取得する頻度に応じて指定できる期間に制約があります。
取得する頻度に対して誤った期間を指定してしまうとエラーとなるので頻度を選択する際は期間を確認しましょう。
・ソニーグループとトヨタ自動車の2022/1/1~2022/12/31の株価情報を1日単位で同時に取得してみよう!