【Python】yfinanceの使い方を徹底解説!日本株や米国株の株価データや財務情報、為替データを取得する方法

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

株のテクニカル分析やファンダメンタルズ分析を行うためには、株価データや財務情報を取得する必要があります。

yfinanceは、株価データや財務情報を取得できるPythonのライブラリです。

株価を取得できるライブラリをいくつか使ってきましたが、yfinanceが最も使いやすいかなと思います。

本記事では、yfinanceの使い方の徹底解説をします。

yfinanceとは

yfinanceとは、Yahoo! FinanceのAPIから株価データや財務情報といった市場データをダウンロードできるライブラリです。

次のリンクが、yfinance(https://pypi.org/project/yfinance/)の公式サイトです。

yfinance は、 Yahoo, Inc. と提携、承認、または審査されていないようで、研究および教育目的に使用できるようです。

yfinanceのインストール

yfinanceはpipでインストールできます。

TeX
pip install yfinance

yfinanceで株価データを取得する方法

サンプルコード

downloadモジュールで株価データを取得することができます。

Python
import datetime
import yfinance as yf

start = datetime.datetime.today().date() - datetime.timedelta(days=365)
end = datetime.date.today()
ticker = '7203.T'

df = yf.download(ticker, start=start, end=end)

print(df.head())

実行すると、下記のデータが取得できます。それぞれ、Open(始値)、High(高値)、Low(安値)、Close(終値)、Adj Close(調整後終値)、Volume(出来高)となっています。

startは、株価の取得開始日を代入しています。今回はdatetimeを使用して、1年前を指定しています。また、「’2024-1-1’」といった日付の文字列でも指定できます。

endは、取得終了日です。本日の日付を代入しています。

tickerは、証券コードを文字列で指定します。日本株で東証の場合は、末尾に「.T」を追加する必要があります。その他の市場は、下記の表のようになります。

市場アルファベット
東証.T
名証.N
札証.S
福証.F

今回はトヨタの株価を取得しました。

他にも、日経平均の場合は「’^N225’」、米国株の場合は「’MSFT’」のように米国株の証券コードで株価を取得できます。

オプションの設定

yfinanceではオプションで取得するデータの設定をすることができます。

Python
import datetime
import yfinance as yf

start = datetime.datetime.today().date() - datetime.timedelta(days=365)
end = datetime.date.today()
ticker = ['7203.T', '7201.T']

df = yf.download(ticker, start=start, end=end, period='1mo', interval='1h')

print(df.head())

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から選択できます。

オプションではありませんが、複数の証券コードをリストでわたすことで、一括してデータを取得できます。

yfinanceで財務情報を取得する方法

サンプルコード

Tickerモジュールで財務情報を取得することができます。

Python
import yfinance as yf

ticker = '7203.T'

ticker_info = yf.Ticker(ticker)

# 貸借対照表
balance_sheet = ticker_info.balance_sheet

# キャッシュフロー
cash_flow = ticker_info.cash_flow

# 配当金
dividends = ticker_info.dividends

# 決算日
earnings_dates = ticker_info.earnings_dates

# 財務諸表
financials = ticker_info.financials

# 企業情報
info = ticker_info.info

# ニュース
news = ticker_info.news

# 四半期貸借対照表
quarterly_balance_sheet = ticker_info.quarterly_balance_sheet

# 四半期キャッシュフロー
quarterly_cash_flow = ticker_info.quarterly_cash_flow

# 四半期財務諸表
quarterly_financials = ticker_info.quarterly_financials

様々なデータを取得できるので、主なものを載せておきます。

  • Total Revenue(売上高)
  • Operating Income(営業利益)
  • Pretax Income(経常利益(税引き前利益))
  • Diluted NI Availto Com Stockholders (当期純利益)
  • Basic EPS(EPS)
  • Diluted EPS (調整後EPS)
  • Free Cash Flow(フリーキャッシュフロー)
  • Operating Cash Flow(営業キャッシュフロー)
  • Investing Cash Flow(投資キャッシュフロー)
  • Financing Cash Flow(財務キャッシュフロー)
  • dividends(配当金)

yfinanceで為替データを取得する方法

サンプルコード

株価の時と同様にdownloadモジュールで株価データを取得することができます。

Python
import yfinance as yf

pair = "USDJPY=X"
df = yf.download(pair, period="1mo", interval="1h")
print(df.head())

実行すると、下記のデータが取得できます。それぞれ、Open(始値)、High(高値)、Low(安値)、Close(終値)、Adj Close(調整後終値)、Volume(出来高)となっています。為替のためVolumeは0となっています。

通貨ペアの指定は、pair = "USDJPY=X"で設定します。コードの調べ方は、ヤフーファイナンスのFX・為替のページに記載のあるコードから”F”を省きます。

主な通貨ペアを表にまとめます。

通貨ペアコード
米ドル/円USDJPY=X
ユーロ/円EURJPY=X
豪ドル/円AUDJPY=X
英ポンド/円GBPJPY=X
ユーロ/ドルEURUSD=X

オプションの設定は株価と同様に、periodで期間、intervalで時間足の指定ができます。

おわりに

以上、yfinanceの解説でした。

yfinanceを活用すれば簡単に情報を取得することができます。

Pythonでのテクニカル分析やファンダメンタルズ分析が格段に捗るようになると思います。