米国株のティッカー(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を買収したようです。

Nasdaq Acquires Quandl to Advance the Use of Alternative Data
NEW YORK and TORONTO, Dec. 04, 2018 (GLOBE NEWSWIRE) -- Nasdaq (Nasdaq: NDAQ) announced today it has acquired Quandl, Inc., a leading provider of alternative an...

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

Nasdaq Data Link
The source for financial, economic, and alternative datasets, serving investment professionals.

無料でアカウント作成はできます。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で1.5GBのcsvファイル読み込み高速化:1分5秒⇒4秒程度 DASK , pickle (Pythonコードあり)
デコピコミンが全国(47都道府県)で、どの施設に出てくるか地図(Google Maps)で確認!!【ピクミン ブルーム(Pikmin Bloom)】
【コピペで動く!】レイ・ダリオ推奨「オール・ウェザー戦略」をETFで構築するには? ETFの手軽さとそのパフォーマンスの高さとは!【違いをみつけろ!】
Windows10で機械学習環境チェック CPU/GPUでTensorflowの作業時間はどのくらい違うのか、Google Colabとも比較してみた。(CUDA Toolkit,cuDNN)
【解決】Google ColabのPythonでエクセル(Excel)ファイルやCSVファイルに出力・入力する方法【コピペで動く!】
【コピペで動く!】Google ColabでPython を用いての 効率的フロンティア と ポートフォリオの最適化 Efficient Frontier & Portfolio Optimization with Python [Part 2/2]
【コピペで動く!】20行で資産運用モデル作成 Google ColabのPythonで 米国株の株価を取得し、グラフ・チャートを表示
【解決】スクレイピングでHTTP Error 403: Forbiddenでアクセスできないときに試すべき方法【コピペで動く!】【Google Colab:Python:pd.read_html,selenium】
米国債のゼロクーポン債STRIPSについてのメモ
ConoHa WINGレンタルサーバーでPython! Webアプリcgiを動かす手順を紹介!3つの例あり【コピペで動く!】
株価時系列データを分析する上で正規化を行う事の重要性について紹介する【違いをみつけろ!】
Google Analytics にPython APIで接続してみた話【コピペで動く!】
【コピペで動く!】IB証券(インタラクティブ・ブローカーズ証券 )へのPythonでのAPI接続 ib_insync [自分が使っているPythonコード]
Google Data Portalを使ってWeb上のオープンデータを使って簡単に情報を可視化しようという話

コメント

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