米国株のティッカー(Symbol)のスクレイピングによる取得、APIによるヒストリカルデータやファンダメンタルズデータ取得について【コピペで動く!】Python,Quandl,無料枠あり

スポンサーリンク
投資

データの使用目的に応じていろいろなデータ取得方法があります。単純なリストとして取得できればいいのか、ヒストリカルデータやファンダメンタルズデータまで必要なのかも重要ですし、取得方法も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になり、有志が最新のデータに更新してくれているものになります。

List of S&P 500 companies - Wikipedia

また、上記指数の構成銘柄ではなくて、すべての銘柄リストとなると、1次情報という事で、取引所のリストにあたるのが基本かなと思います。

Stock Screener

スクレイピングもできるでしょうし、CSVへのデータ出力もできるようなので、そのような選択肢もあるかと思います。

ETFについては、リストは以下のようなサイトからも取得できたりするようです。

NASDAQ-Listed Exchange Traded Funds Data - Definitions

ヒストリカルデータ:料金が発生しないタイプ

料金を発生させずにデータ取得したい場合はYahoo US!が候補になるはずです。

詳細についてはこちらの記事などをご確認ください。

またIB証券に口座開設が必要という前提がありますが、IB証券に口座をお持ちの方はAPI接続でデータを無料で取得できます。

データ接続の設定方法などはこちらになります。

ヒストリカルデータ:料金が発生するタイプ(無料枠あり、動作確認可能)

料金を発生してかまわないならNasdaqグループになったQuandlがデータの信頼性やAPIでのデータ取得の容易さなどからもおすすめかなと思います。2018年にNasdaqがQuandleを買収したようです。

https://www.nasdaq.com/about/press-center/nasdaq-acquires-quandl-advance-use-alternative-data

私も以前は過去データの取得や、決算情報などのファンダメンタルズデータの取得に使ったこともあります。

https://data.nasdaq.com/databases/SF1/data

無料でアカウント作成はできます。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に関する記事をご紹介します。

Python高速化! for文は遅いので、”これ”を使うと30倍早いですよ!【Google ColabのPython:コピペで動く!】
【コピペで動く!】日本株、米国株で個別銘柄ベータ値(β値)を簡単に調べる方法 Python 米国株 Webサービス&コード 【Google Colabで違いをみつけろ!】
【コピペで動く!】Pythonで1.5GBのcsvファイル読み込み高速化:1分5秒⇒4秒程度 DASK , pickle (Pythonコードあり)
【コピペで動く!】Google ColabでPython を用いての 効率的フロンティア と ポートフォリオの最適化 Efficient Frontier & Portfolio Optimization with Python [Part 2/2]
【解決】Google ColabのPythonでエクセル(Excel)ファイルやCSVファイルに出力・入力する方法【コピペで動く!】
【コピペで動く!】20行で資産運用モデル作成 Google ColabのPythonで 米国株の株価を取得し、グラフ・チャートを表示
米国債のゼロクーポン債STRIPSについてのメモ
【解決】スクレイピングでHTTP Error 403: Forbiddenでアクセスできないときに試すべき方法【コピペで動く!】【Google Colab:Python:pd.read_html,selenium】
曜日による米国株指数(S&P500)のパフォーマンスに違いはあるのか?有利なポジション取りはできるのか?【Google ColabのPython:コピペで動く!】Twitterで出てくる知見は本当か自分で調べてみよう。
自動化・効率化できます!金融向けGoogle スプレッドシートのすぐ使える簡単な使い方4選!(Google Finance,セントルイス連銀,アメリカ合衆国財務省,スクレイピング)【コピペで動く!】
【コピペで動く!】レイ・ダリオ推奨「オール・ウェザー戦略」をETFで構築するには? ETFの手軽さとそのパフォーマンスの高さとは!【違いをみつけろ!】
【コピペで動く!】IB証券(インタラクティブ・ブローカーズ証券 )へのPythonでのAPI接続 ib_insync [自分が使っているPythonコード]
過去50年間のS&P500の季節性の値動きから負けにくいポジション構築はできるのか考える・大統領選挙のアノマリー対応!【コピペで動く!】Google ColabのPythonで自分で調べてみよう!
自動化・効率化でなにができるのか!Google FinanceやYahoo Financeからデータ取得して年初来パフォーマンスや週次騰落率のファクターチェック
ボラティリティ クラスタリング(Volatility Clustering)について:Google ColabのPythonでの相場環境分析

コメント

タイトルとURLをコピーしました