米国株の分析をPythonで効率化しましょう!
「じっちゃま」こと広瀬隆雄さんは,決算発表の前に「EPS・売上高のコンセンサス予想を書き留める」ことを推奨しています.
でも,Yahoo Financeは重いし,ウォッチリストとにらめっこしながら複数銘柄を調べるのはちょっと大変ですね.また,慣れていないと,どの数値をメモすれば良いかも悩んでしまうでしょう.
そこで,この処理をPythonで自動化することを考えてみましょう.
Googleアカウントさえあれば,この記事のコードをコピペして実行できます.
また,ティッカーシンボルを書き換えれば,自分のウォッチリストも作れます.
Pythonに馴染みのない人は,すごく簡単にできることに驚くはずです.
Pythonの使い方
Googleアカウントさえあれば,この記事のコードをコピペして実行できます.詳しくは次の記事を参照してください.コード
まず,yahoo_fin をインストールします.pip install yahoo_fin
必要なライブラリを読み込みます.
import yahoo_fin.stock_info as si import pandas as pd from collections import defaultdict
ウォッチリストを作成します.
watchlist = defaultdict(list) watchlist['GAFAM'] = ['GOOGL', 'AMZN', 'FB', 'AAPL', 'MSFT'] watchlist['IPO'] = ['U', 'AI', 'AFRM', 'RPRX'] watchlist['GROWTH'] = ['ZM', 'OKTA', 'CRWD', 'DOCU']
データを取得します.
data = defaultdict(lambda: defaultdict(dict)) for k, v in watchlist.items(): for ticker in v: # print(ticker, end = ', ') analysis = si.get_analysts_info(ticker) data[k][ticker]['next earnings date'] = si.get_next_earnings_date(ticker) for name in ['Earnings Estimate', 'Revenue Estimate']: data[k][ticker][name + analysis[name].columns[1]] = analysis[name].at[1, analysis[name].columns[1]] data[k][ticker][name + analysis[name].columns[2]] = analysis[name].at[1, analysis[name].columns[2]]
結果を出力します.決算発表日でソートしています.
res = defaultdict(dict) for key in watchlist.keys(): res[key] = pd.DataFrame(data[key]) res[key].sort_values(by = 'next earnings date', axis = 'columns', inplace=True) res[key] = res[key].T print(key) display(res[key])
実行結果
上のコードを順番に実行すると,次が出力されます.
Yahoo Financeの以下の部分が取得できていることがわかります.