はじめに
株、為替、経済指標データを取得するため、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と、ヤフーファイナンスの株価や出来高に違いはありません。企業によって、データのとり方が異なるのでしょうか・・・。
アメリカ
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)
業績を取得する
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
四半期業績
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
キャッシュフロー
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
バランスシート
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
ある期間の為替を取得する
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)
経済指標を取得する
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)
importance
columnを参照することで、重要な指標だけを見ることができます。
economic_data[economic_data['importance']=='high']
参考