一、美股历史数据API
1.数据列表
待完善补充
下载美股公司列表,分别是纳斯达克,纽交所,美国证券交易所,三个CSV文件
下载地址,纳斯达克官网:Company List: NASDAQ, NYSE, & AMEX Companies
http://www.nasdaq.com/screening/company-list.aspx
site = "http://xueqiu.com/S/" + symbol + "/historical.csv"
2. 雅虎网
(1)官网:https://www.yahoo.com/
(2)安装 pandas-datareader
命令行窗口:pip install pandas-datareader(建议)
下载本地安装:https://pypi.org/project/pandas-datareader/
(3)读取数据
import pandas_datareader.data as pdr # 读取标普500
sp500 = pdr.DataReader(name='^GSPC',data_source='yahoo',start='1/1/2020',end='2/26/2020)
# 查看数据前5行
sp500.head()
# 输出数据
sp500.to_csv('sp500.csv')
上证、深证标的
import pandas_datareader.data as pdr # 读取浦发银行:600000(上证)
stock_600000 = pdr.get_data_yahoo('600000.ss','1/1/2015','20/8/2015')
stock_600000.head()# 读取广发证券:000776(深证)
stock_000776 = pdr.get_data_yahoo('000776.sz','1/1/2015','20/8/2015')
stock_000776.head()
3. TuShare
TuShare是一个免费、开源的python财经数据接口包。
主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。
考虑到Python pandas包在金融量化分析中体现出的优势,TuShare返回的绝大部分的数据格式都是pandas DataFrame类型。
(1)官网:http://tushare.org/
(2)安装 tushare
命令行窗口:pip install tushare
下载本地安装:https://pypi.python.org/pypi/tushare/
(3)读取数据
import tushare as ts # 读取中国平安(601318)数据
zgpa = ts.get_hist_data('601318', start='2019-01-01', end='2019-02-20')
# 查看数据前5行
zgpa.head()
# 输出数据
zgpa.to_csv('zgpa.csv')
注: "ts.get_hist_data"接口即将停止更新,请尽快使用Pro版接口:https://tushare.pro/document/2
import tushare as ts # 事先安装:pip install tushare
pro = ts.pro_api()df_000776 = pro.daily(ts_code='000776.SZ', start_date='20161017', end_date='20181117') # 日线数据
df_000776 = pro.weekly(ts_code='000776.SZ', start_date='20161017', end_date='20181117') # 周线数据
df_000776 = pro.monthly(ts_code='000776.SZ', start_date='20161017', end_date='20181117') # 月线数据df_000776.head()
二、美股实时数据API
参考知乎:暂时没有验证
个人印象中有以下这些:
API Solutions | Interactive Brokers
API Developer | TD Ameritrade
Developer Center - X_TRADER API®
Programmatic Trading Interfaces
CQG APIs | CQG, Inc.
Futures Broker | AMP Futures | AMP Clearing
以上是美国可以用的,提供“实时”数据接口的Broker。还有很多金融数据提供者都可以提供“实时”数据,但不具备下单的功能。
1.sina实时接口
本篇以BABA(阿里巴巴)为例,在浏览器地址栏输入以下url,即可获取个股数据:
http://hq.sinajs.cn/list=gb_baba (股票代码必须为小写字母,结果如下图所示)
import requestsurl = 'http://hq.sinajs.cn/list=gb_baba' # 股票代码必须为小写字母
res = requests.get(url).text
print(res) # 此处输出与浏览器页面获取的数据一致data = res[14:-3].replace('="',',').split(',') # 删除、替换无关字符
print(data)
for datum in data: # data数据类型为list,遍历可获得分项数据,详情见本篇截图print(datum) # 注意:获取的datum数据类型为string
2.如果要一次获取大量股票,可在本地创建一个txt文件,存储股票列表,如下:
import requestsf = open(r"C:\Python\StockTest\CNstock.txt") # txt文件,存储股票代码,一行一个代码,小写字母
symbols = [line.strip() for line in f.readlines()]
f.close()def getQuote(sym):url = 'http://hq.sinajs.cn/list=gb_'+symres = requests.get(url).text# print(res) # 此处输出与浏览器页面获取的数据一致quote = res[14:-3].replace('="',',').split(',') # 删除、替换无关字符print(quote)for symbol in symbols: # 遍历股票列表,逐条输出股票数据getQuote(symbol)
3.新浪财经提供的行情数据都有哪些呢?请看截图:
对应的新浪财经个股页面如下:【注意:新浪财经页面,某些数据不显示,所以获取的数据也空缺】
4.新浪数据说它是“实时”的,是相较于传统财经网站15分钟的数据延迟而言。实际上,经笔者亲自测试,a.新浪数据是非完整数据,数据源为Nasdaq交易所集团(Nasdaq、Nqbx、Nqpx三大交易所数据)以及FINRA/TRF(darkpool暗盘数据),因此其他交易所成交的数据,新浪页面是不会更新的,这是秒级乃至分钟级的数据缺失;b.新浪页面的数据刷新,大概有数秒的延迟。敬请留意!
2.yahoo
https://query1.finance.yahoo.com/v7/finance/quote?symbols=LVMUY