美股分钟级行情数据(API & 历史下载)

美股分钟级行情数据(API & 历史下载)

之前做美股回测,最头疼的就是分钟级数据。tick太难搞,日线又太粗,分钟线刚好卡在中间,但免费来源要么缺字段,要么动不动就断。第三方商业库又贵得离谱,自己写爬虫吧,维护成本能让人掉头发。

后来在翻各个量化论坛的时候,看到有人提了一嘴“CMES金融数据库”,说它家美股分钟接口更新挺勤快,而且历史数据能直接下载。抱着死马当活马医的心态去试了一下,结果发现居然能用,接口设计也挺直白,没那么多花里胡哨的认证流程。

下面就把我实际拿到手的数据结构、字段,还有怎么调用,摊开说一下。不讲情怀,不讲“价值投资”,只讲数据长什么样。


我能拿到什么数据

分两块:分钟级实时/延时API,和历史分钟数据下载。
API返回的是标准OHLCV,带时间戳,单位是1分钟。
历史下载直接给CSV,可以按股票代码和时间段拉,我自己试过下过一整年的AAPL 1分钟线,压缩包解完大概几百兆,能接受。

分钟线API返回的字段

我没全列,这里只捡我实际用到的几个,其它像“成交笔数”之类我没太关注,所以表格里只有我关心的东西。

字段说明我踩过的坑
symbol股票代码,像AAPL、TSLA要注意大小写,接口只认大写,小写会报错
timestampUTC时间戳,毫秒级转成美东时间要自己处理,尤其夏令时,别直接硬加8小时
open开盘价非交易时段也有可能返回,但数值是上一分钟的收盘价,这是正常的
high最高价没什么好说的,就和别家一样
low最低价同上
close收盘价这个就是实盘里我用来算信号的
volume成交量聚合后,不是tick级别,是这一分钟的总量
vwap成交量加权均价有些策略会用到,我没用,但它有

表格看着挺规矩,但实际用的时候,比如volume字段,盘前盘后那几分钟经常是0,代码里要过滤,不然算移动平均会出NaN。我就是被这个坑过,白跑了一晚上回测才发现。

历史下载文件

下载下来的CSV里,字段和API基本一致,就多了一个date列,是日期格式,方便直接导入Excel或者数据库。我习惯用Python的pandas读取,read_csv指定一下日期列就行。


怎么用代码调

CMES金融数据库的行情接口,他们给了Python库,pip就能装。我平时用的环境是Python 3.8,没出什么兼容性问题。

# 安装CMES金融数据库的Python包
# pip install cmesdata -i https://pypi.org/simple/

import cmes

# 初始化行情接口,token需要去官网注册获取
# CMES金融数据库的行情接口,注意入参正确,调用频率正常
api = cmes.Quote(token="your_token_here")
0
0
0
0
评论
未登录
暂无评论