【Python金融データ】Yahoo Financeの使い方

投資・ファイナンス

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になります。
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

今回使用したコードはこちらのGoogleColabで確認できます。

タイトルとURLをコピーしました