データの使用目的に応じていろいろなデータ取得方法があります。単純なリストとして取得できればいいのか、ヒストリカルデータやファンダメンタルズデータまで必要なのかも重要ですし、取得方法もPythonによるスクレイピングなのか、APIなどで取得する方法など、使用用途や方法によってさまざまだと思います。
無料の方法を中心に、いくつかデータの取得方法を以下に示したいと思います。
ティッカー(Symbol)のスクレイピング
もっともお手軽な方法、リストだけ取得方法について、S&P500の銘柄についてはWikipediaからの取得は以下のようになります。
import pandas as pd
data = pd.read_html('https://en.wikipedia.org/wiki/List_of_S%26P_500_companies')
display(len(data[0]))
display(data[0].info())
display(data[0].head().append(data[0].tail()))
もともとのデータは以下のWikipediaになり、有志が最新のデータに更新してくれているものになります。
また、上記指数の構成銘柄ではなくて、すべての銘柄リストとなると、1次情報という事で、取引所のリストにあたるのが基本かなと思います。
スクレイピングもできるでしょうし、CSVへのデータ出力もできるようなので、そのような選択肢もあるかと思います。
ETFについては、リストは以下のようなサイトからも取得できたりするようです。
ヒストリカルデータ:料金が発生しないタイプ
料金を発生させずにデータ取得したい場合はYahoo US!が候補になるはずです。
詳細についてはこちらの記事などをご確認ください。
またIB証券に口座開設が必要という前提がありますが、IB証券に口座をお持ちの方はAPI接続でデータを無料で取得できます。
データ接続の設定方法などはこちらになります。
ヒストリカルデータ:料金が発生するタイプ(無料枠あり、動作確認可能)
料金を発生してかまわないならNasdaqグループになったQuandlがデータの信頼性やAPIでのデータ取得の容易さなどからもおすすめかなと思います。2018年にNasdaqがQuandleを買収したようです。
私も以前は過去データの取得や、決算情報などのファンダメンタルズデータの取得に使ったこともあります。
無料でアカウント作成はできます。PythonやExcelからのアクセスやデータ取得もできます。
End of Day でのデータで構わない場合はYahoo US!などで取得する場合が多いと思いますが、quandlでも以下のように取得もできるようです。
無料アカウントでもある程度のデータは以下のように取得できますので、
!pip install Nasdaq-Data-Link
import nasdaqdatalink
mydata = nasdaqdatalink.get("FRED/GDP")
display(mydata)
FREDのGDPのデータ。
mydata = nasdaqdatalink.get("WIKI/AAPL")
display(mydata)
無料でアクセスできるヒストリカルデータ。
APIキーを準備すれば、EPSなどファンダメンタルズデータにもアクセスできるようです。
nasdaqdatalink.ApiConfig.api_key = "YOUR_KEY_HERE"
mydata = nasdaqdatalink.get_table('ZACKS/FC', ticker='AAPL')
display(mydata)
display(mydata.T.head().append(mydata.T.tail(30)))
必要に応じて(必要なデータの量や精度など)データは取得できるようになるようです。
もちろん、データ配信のロールスロイス、Bloombergが使えれば一番なんでしょうけどね。ないならないなりにいろいろなことが可能です。
ご参考になれば幸いです。
Pythonに関する記事をご紹介します。
コメント