Yahoo Financeからは価格データのみでなく、個別銘柄の財務諸表情報も比較的簡単に入手できます。そのほか、関連ニュースなどを取得する関数もあります。
今回は、Yahoo Financeからデータを取得する方法を見ていきます。
pandas_datareader(現在はエラー)
以前はpandas_datareaderを用いてYahoo Financeのデータを取得可能でしたが、2024年6月時点ではエラーが発生して使えなくなっています。
例えば、General Electric(GE)の株価データをダウンロードする例です
import pandas_datareader.data as web
import pandas as pd
import datetime as dt
# Yahoo FinanceからGeneral Electric(GE)のデータをダウンロード
start_date = dt.datetime(2019, 9, 10)
end_date = dt.datetime(2019, 10, 9)
ge_data = web.DataReader('GE', 'yahoo', start=start_date, end=end_date)
# データを表示
ge_data
yfinanceを使ったデータ取得
pandas_datareaderは使うことができませんが、代わりにyfinanceというライブラリを使うことで、簡単にデータ取得が可能です。
pip install yfinance
import pandas as pd
import yfinance as yf
data = yf.download(['GE','^N225'], start="2023-01-01",end="2023-07-31")
例えば上記のようにして、GEと日経平均のデータを取得できます。
また、pandas_datareaderをどうしても使いたい場合には以下のようにオーバーライトすることで使うこともできます。
import yfinance as yf
from pandas_datareader import data as pdr
from datetime import date
from dateutil.relativedelta import relativedelta
yf.pdr_override()
date_e = date.today()
date_s = date_e - relativedelta(years=1)
data = pdr.get_data_yahoo('^N225', date_s, date_e)
Tickerの調べ方
Yahoo Financeのトップページ(米国)の検索部分で検索すると候補が表示されます。
その候補の上側に表示される文字列がTickerになります。
この例では上の赤く囲んだものはは日経先物、下は日経平均の指数になります。
より短いスパンのデータ、リアルタイムデータの取得
日足データは上記のようにして取ることができますが、より短いスパンでデータを取得したいケースもあると思います。そのような場合には、intervalを指定することによって分単位や時間単位でデータを取得することができます。
from datetime import date, timedelta
import yfinance as yf
start=date.today()
end=date.today()+timedelta(days=1)
data = yf.download(['7203.T','^N225'], start=start,end=end, interval="1m")
data
このコードは1分ごとのデータを取得していますが1時間ごとにしたい場合にはinterval="1h"
のようにすることで取得できます。
先物価格の取得
先物価格のデータ取得方法についてはあまり情報がないのでこちらで簡単に説明しておきます。yfinanceを使うことで先物価格も取得可能です。
Tickerが=Fになるのが基本形です。S&Pminiと日経の先物は
future_data = yf.download(['ES=F','NIY=F'], start="2023-01-01",end="2023-07-31")
このようにして取得ができます。
個別銘柄の情報取得
yfinanceを使うと、個別銘柄の財務諸表やニュースなどの情報も取得可能です。
例えば、トヨタの例を見てみたいと思います。
ticker_data=yf.Ticker('7203.T')
まずは、基本情報を出力します。
ticker_data.info
すると、銘柄の基本的な情報や、業種データ、主要な現在の財務指標の数値などが辞書形式で表示されます。
続いて、バランスシートを見てみます。
ticker_data.balance_sheet
キャッシュフロー計算書も同様に確認可能です。
ticker_data.cashflow
損益計算書の項目の多くは以下で確認できます。
ticker_data.financials
ニュースに関しても取得可能です。
ticker_data.news