LoginSignup
105
149

More than 3 years have passed since last update.

[Python]investpyで株、為替、経済指標データを取得する

Last updated at Posted at 2021-03-28

はじめに

 株、為替、経済指標データを取得するため、investpyの使い方のメモを残します。API Referenceからの抜粋です。

環境

Windows 10 home
Python(3.7.6)
pandas(1.2.1)
JupyterLab(3.0.6)
investpy(1.0.3)

investpyとは

 Fusion Media Limitedが所有している金融情報のポータルサイトInvesting.comをデータソースとし、株価データ等の金融情報を取得するPythonライブラリです。株価、為替のほか、企業業績、経済指標などpandas-datareaderでは、手に入れられないようなデータも取得することができます。

investpyのインストール

 pipでインストールします。documentにはcondaも可能なようなことが書かれていましたが、pipでしかインストールできませんでした(2021/03/28時点)。import investpyでインポートして利用します。

pip install investpy

使い方

ある期間の株価を取得する

 investpy.get_stock_historical_dataに企業のシンボル(日本だと証券コード)、国、期間を指定して、取得します。シンボル、国を変更するとほかの国の株価を取得することができます。ニューヨーク証券市場やNASDAQだとティッカーシンボル、国、期間を指定します。日付の指定方法が、"日/月/年"とヨーロッパ式なのが注意点です。

日本

code = '7203' #トヨタ自動車
stock_data = investpy.get_stock_historical_data(stock=code, country='japan', from_date='01/02/2021', to_date='28/03/2021')
stock_data.tail(5)

トヨタ自動車
 上の例では、トヨタ自動車(証券コード:7203)の株価を表示しています。ヤフーファイナンス(日本)によると、2021/3/26のトヨタ自動車の株価は、始値:8277、高値:8376、安値:8235、終値:8359となっており、investpyで取得した2021/3/26の株価が微妙にずれているのが気になります。また、出来高が0となっています。
 ソニー(証券コード:6758)だと以下のようになっており、出来高は表示されています。こちらは、investpyと、ヤフーファイナンスの株価や出来高に違いはありません。企業によって、データのとり方が異なるのでしょうか・・・。
sony_stock.png

アメリカ

 NASDAQのアップルのデータも取ることができます。

symbol = "AAPL" #アップル
stock_data = investpy.get_stock_historical_data(stock=symbol, country='united states', from_date='01/02/2021', to_date='28/03/2021')
stock_data.tail(5)

apple_stock.png

業績を取得する

 investpy.get_stock_financial_summaryで、業績、バランスシートやキャッシュフローのデータを取得することができます。

通年業績

 summary_type='income_statement'period='annual'にします。

code = '7203' #トヨタ自動車
annual = investpy.get_stock_financial_summary(stock=code, country='japan', summary_type='income_statement', period='annual')
annual

annual.png

四半期業績

 summary_type='income_statement'period='quarterly'に変更します。最近の業績しか取得できないようです。トヨタ自動車だと、2020年3月までのデータが出力されますが、ソニーだと、2020年12月までの直近データが出力されます。上表がトヨタ自動車で、下表がソニーの四半期業績です。

code = '7203' #トヨタ自動車
quarterly = investpy.get_stock_financial_summary(stock=code, country='japan', summary_type='income_statement', period='quarterly')
quarterly

quartly.png
sony_quartly.png

キャッシュフロー

 summary_type='cash_flow_statement'に変更します。

code = '7203' #トヨタ自動車
cash_flow = investpy.get_stock_financial_summary(stock=code, country='japan', summary_type='cash_flow_statement', period='annual')
cash_flow

cashflow.png

バランスシート

 summary_type='balance_sheet'に変更します。資産の部、負債の部、純資産の部の大枠のデータしかないようです。

code = '7203' #トヨタ自動車
balance_sheet = investpy.get_stock_financial_summary(stock=code, country='japan', summary_type='balance_sheet', period='annual')
balance_sheet

balance_sheet.png

ある期間の為替を取得する

 investpy.get_currency_cross_historical_dataで為替を取得することができます。例として日ごとの日本円とUSドルの為替を表示します。

usd_jpy = investpy.get_currency_cross_historical_data(currency_cross='USD/JPY', from_date='01/02/2021', to_date='28/03/2021')
usd_jpy.tail(5)

jpy_usd.png

経済指標を取得する

 investpy.economic_calendarを使って、各国の経済指標を得ることができます。各国の経済指標の予測と実績を一覧で見ることができるので、便利そうです。例は、日本とアメリカの経済指標です。countries=None(default)だと、investpyで可能なすべての国の経済指標を取得します。

economic_data = invest.economic_calendar(time_zone='GMP +9:00', countries=['japan', 'united states'], from_date='01/02/2021', to_date='28/03/2021')
economic_data.tail(5)

economic_calender_tail.png

 importancecolumnを参照することで、重要な指標だけを見ることができます。

economic_data[economic_data['importance']=='high']

economic_calender_importance.png

参考

105
149
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
105
149