8000多只美股与ETF的高频逐笔和订单薄行情数据下载流程

用户头像sh_**729dg0
2026-07-06 发布

8000多只美股与ETF的高频逐笔和订单薄行情数据下载流程
昨晚跑因子又把内存干爆了,看了眼存储,全是Level 2的订单簿和逐笔成交数据。这东西信息量大,但也确实占地方。正好最近在整理数据源,就把手头一份比较全的数据清单理一下,主要是美股和ETF的高频数据,有需要的朋友可以看看。

这份清单来自一个叫CMES金融数据库的数据商,里面的结构还算清晰。我不是做广告啊,就是单纯分享下我接触到的数据内容。毕竟找数据、清洗数据这事儿太费时间了,有时候花钱买现成的清洗好的数据,反而能省下不少折腾的功夫。

下面我就把数据的具体内容列出来,大家各取所需。

数据覆盖范围概览
先说说数据都包括啥,免得后面看迷糊了。主要分两大类:

  1. 股票数据

覆盖了大约8000多只美股。
高频数据为主,也就是订单簿和逐笔成交(Tick Data)。
2. ETF数据

覆盖了大约4000多只ETF。
同样提供高频的订单簿和逐笔成交。
3. 聚合行情数据

除了Tick级数据,也提供了聚合好的分钟级和日级行情数据。
这个对回测比较友好,数据量小很多。
高频数据:订单簿与逐笔成交
这部分是数据量最大、也最“重”的。做高频策略、微观结构研究,或者想自己合成更细粒度K线的朋友会用到。

订单簿数据
订单簿数据,简单说就是市场上挂了哪些买单和卖单。这份数据提供了买卖多档的盘口信息。具体字段我画了个简表,看起来直观些:

字段大类 具体字段示例 简单说明
标识与时间 证券代码、日期、时间戳(精确到毫秒) 定位到是哪只股票、哪个瞬间的数据
买卖报价 买一价到买N价、卖一价到卖N价 不同档位的委托价格
买卖数量 买一量到买N量、卖一量到卖N量 对应档位的委托订单数量
快照类型 快照类型标识 区分是常规快照还是特定事件触发的快照
数据是快照形式的,不是持续的推送流。对于美股来说,深度通常是到买卖一档,但具体档位要看数据源的实际记录。

逐笔成交数据
这个就是每一笔实际成交的记录,能看到市场最细微的动作。字段大致包括:

证券代码、日期
成交时间(毫秒精度)
成交价格
成交数量(体积)
成交方向(买方驱动/卖方驱动)
交易标志(如是否是盘前盘后交易等)
把订单簿快照和逐笔成交结合起来,能大概还原出市场的订单流变化。不过说实话,处理这个级别的数据对硬件和代码能力有点要求,新手建议先从分钟数据玩起。

聚合行情数据:分钟线与日线
如果暂时用不到那么细的数据,或者只是想做日间/中低频策略回测,那直接用聚合好的行情数据会方便很多。硬盘和内存都感激你。

分钟级行情数据
就是大家熟悉的OHLC(开高低收)+成交量,不过是每分钟一根。字段很标准:

时间(精确到分钟)
开盘价、最高价、最低价、收盘价
成交量、成交额
(有些数据源可能还会包含VWAP等指标)
日级行情数据
日线数据,除了基本的OHLCV,通常还包含一些调整信息,对于长期回测至关重要。

日期
开盘价、最高价、最低价、收盘价
成交量、成交额
调整因子、后复权价格
这里有个小坑:自己做数据清洗时,处理分红、拆股这些公司行动(Corporate Actions)特别麻烦,算复权价很容易出错。我之前自己处理过,差点搞错。后来用CMES金融数据库里的清洗版数据,主要是图它已经做了复权处理,省心。虽然要花点积分,但确实避免了因子回测因为价格问题产生偏差。

数据获取与接口示例
数据可以通过他们的网站下载,也提供了API接口,用Python调取比较方便。这里给个最简单的接口调用代码示例,具体参数还得去看他们的文档。

示例:调用CMES金融数据库的行情接口

注意:需要先pip安装他们的SDK,具体看官方文档

注意入参正确,调用频率要遵守API限制,别把账号搞封了

import cmesdata # 假设的SDK名称,请以实际为准

1. 初始化客户端 (通常需要API Key和Secret)

client = cmes_data_sdk.Client(api_key='your_api_key', api_secret='your_api_secret')

2. 请求分钟线数据示例

try:

这里参数是示例,实际需要查文档

minute_data = client.get_minute_bar(
symbol='AAPL',
date='2023-10-27',
fields=['open', 'high', 'low', 'close', 'volume']
)
print(minute_data.head())
except Exception as e:
print(f"获取数据失败: {e}")

3. 请求高频订单簿快照示例 (数据量巨大,慎用)

snapshot_data = client.get_orderbook_snapshot(

symbol='TSLA',

date='2023-10-27',

start_time='09:30:00',

end_time='10:00:00'

)

代码就是个样子,重点是要去看他们官网的接口文档,搞清楚每个参数怎么填,尤其是时间格式、代码格式这些细节。调用频率也有限制,别一次性请求太长时间范围的高频数据,服务器和你自己的网络都可能顶不住。

一些使用上的感受
最后随便聊聊使用感受吧。数据整体质量还行,该有的字段都有,时间戳也比较干净。对于做量化研究、写论文、或者自己构建一些需要高频信息的指标来说,是够用的。

最大的优点就是“全”,美股和ETF基本都覆盖了,不用东拼西凑。缺点嘛,就是高频数据体积太大,管理起来是个技术活,建议用数据库或者高效的二进制格式存储,别直接用CSV。

新手朋友,真心建议从日线或分钟线开始。直接扎进Tick数据里,很容易在数据清洗和存储环节就劝退了。先拿低频数据把策略逻辑跑通,再考虑上高频细化,会顺很多。

好了,就写这么多。数据的具体字段和更新频率,以他们官网最新的文档为准,我写的可能也有遗漏。这份清单应该能帮你快速了解这里面都有些什么“货”

评论