ある種の無料のRESTAPIが理想的ですが、一般に、無料のAPI、Webサービス、CSVファイル(パスワードプロンプトの背後にない)、またはS&P500インデックスの現在のリストを取得するためにクエリできるものがあります。構成要素?
S&Pのサイト自体(http://www.standardandpoors.com)、Yahoo FinanceのAPI、Markit ondemand(http://dev.markitondemand.com/)を調べましたが、何も見つかりませんでした。まだ。
ある種の無料のRESTAPIが理想的ですが、一般に、無料のAPI、Webサービス、CSVファイル(パスワードプロンプトの背後にない)、またはS&P500インデックスの現在のリストを取得するためにクエリできるものがあります。構成要素?
S&Pのサイト自体(http://www.standardandpoors.com)、Yahoo FinanceのAPI、Markit ondemand(http://dev.markitondemand.com/)を調べましたが、何も見つかりませんでした。まだ。
同様のニーズもありました。Wikipedia APIを使用するか、htmlを解析して、S&P500の記号のリストを取得できます http://en.wikipedia.org/wiki/List_of_S%26P_500_companies
これで、モジュールをインストールして使用できます。
pip install finsymbols
現在、ウィキペディアから記号のリストを入手しています。これはRESTではありませんが、RESTAPIに簡単に作成できます。Pythonで書かれています
>>import sys
>>sys.path.append('/home/skillachie/Desktop/')
>>import finsymbols
sp500 = finsymbols.get_sp500_symbols()
pprint.pprint(sp500)
{'company': u'Xcel Energy Inc',
'headquaters': u'Minneapolis, Minnesota',
'industry': u'Multi-Utilities & Unregulated Power',
'sector': u'Utilities',
'symbol': u'XEL'},
{'company': u'Xerox Corp.',
'headquaters': u'Norwalk, Connecticut',
'industry': u'IT Consulting & Services',
'sector': u'Information Technology',
'symbol': u'XRX'},
{'company': u'Xilinx Inc',
'headquaters': u'San Jose, California',
'industry': u'Semiconductors',
'sector': u'Information Technology',
'symbol': u'XLNX'},
{'company': u'XL Capital',
'headquaters': u'Hamilton, Bermuda',
'industry': u'Property & Casualty Insurance',
'sector': u'Financials',
'symbol': u'XL'},
興味がある場合は、ここで詳細情報を入手できますhttp://skillachie.github.io/finsymbols/
Pythonを使用すると、私が書いたばかりのこのスニペットを試すことができます(少し醜いですが、それは機能します)。(実際には502ティッカーを返します。それは正しいです)
from urllib import request
from bs4 import BeautifulSoup
import datetime
import dateutil.relativedelta as dr
import pandas as pd
def get_constituents():
# URL request, URL opener, read content
req = request.Request('http://en.wikipedia.org/wiki/List_of_S%26P_500_companies')
opener = request.urlopen(req)
content = opener.read().decode() # Convert bytes to UTF-8
soup = BeautifulSoup(content)
tables = soup.find_all('table') # HTML table we actually need is tables[0]
external_class = tables[0].findAll('a', {'class':'external text'})
tickers = []
for ext in external_class:
if not 'reports' in ext:
tickers.append(ext.string)
return tickers
http://finviz.com/export.ashx?v=152&f=idx_sp500&ft=1&ta=1&p=d&r=1&c=1が見つかりました
:-)
しかし、FinvizAPIのドキュメントは見つかりませんでした。
:-(
ブルームバーグはオープンAPIを持っているようです。掘り下げれば、必要なデータが見つかるかもしれません。