港股和美股行情逐笔和十档订单薄历史行情数据下载笔记

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

搞量化,这些高频数据源你了解吗?

最近在研究,发现很多策略想跑得精细,光靠日K线、分钟线完全不够看。有时候盘口一个微小的变化可能就是信号。但找数据真是个体力活,免费的要么不全,要么要自己清洗到怀疑人生。

今天不聊策略,就单纯聊聊我最近在用的几个数据源,主要是港股和美股的高频数据。如果你也在找这类数据,可以参考一下。

数据源概览

我主要关注的是逐笔成交十档订单簿数据。简单理解:

  • 逐笔成交:市场每一笔成交都记录下来,时间精确到毫秒甚至微秒。你能看到是谁(买方/卖方)主动发起的交易,成交价和量是多少。
  • 十档订单簿:也就是常说的Level-2数据。不光看买一卖一,能看到买一到买十、卖一到卖十的全部挂单情况。对于理解盘口压力和支撑特别有用。

很多人问,平时量化也是,数据源:CMES金融数据库

港股数据有什么?

港股的数据分了几个大类,我主要用下面两种:

港股逐笔成交数据
这个数据最细。每一行就是市场的一笔真实成交。字段大概有这些:

字段名 说明
symbol 股票代码
trade_time 成交时间(毫秒级)
price 成交价格
volume 成交数量(股数)
turnover 成交金额
trade_type 成交类型(比如是自动对盘还是碎股交易)
bid_order_id 买方订单号
ask_order_id 卖方订单号
direction 方向(通常指主动成交方向:买盘B/卖盘S)

看这个数据,你能还原出市场上所有资金的流动痕迹。比如大单是主动买入还是被动卖出,盘中有没有出现密集的扫单。

港股十档订单簿数据
这个数据是快照,一般每3秒(或者更短)记录一次整个市场的订单簿状态。

主要字段包括:

  • symbol:股票代码。
  • snapshot_time:快照时间点。
  • 买盘1-10档的 bid_price_1bid_price_10,以及对应的 bid_volume_1bid_volume_10
  • 卖盘1-10档的 ask_price_1ask_price_10,以及对应的 ask_volume_1ask_volume_10
  • 通常还会有这一时刻的总委买量、总委卖量。

用这个数据,可以算很多指标,比如订单簿不平衡度、买卖价差、盘口深度。我之前想复现一个价量冲击的因子,就是靠这个数据算的。

美股数据有什么?

美股的交易机制和港股不同,数据字段也有点区别,但逻辑类似。

美股逐笔成交数据
同样记录了每一笔成交,但美股的交易场所多(NYSE, NASDAQ等),字段上会体现出来。

关键字段:

  • symbol:股票代码。
  • exchange:交易市场。
  • trade_time:纳秒级时间戳(美股精度更高)。
  • price, size:成交价和量。
  • conditions:成交条件,这个字段很重要,能区分是常规交易还是开盘价、收盘价交易等。
  • 同样会有标识主动买卖方向的字段,比如 tape

美股订单簿数据(NBBO)
美股有个核心概念叫NBBO(全国最佳买卖报价)。这个数据可以理解为全市场最优的订单簿快照。

主要看:

  • symbol:代码。
  • quote_time:报价时间。
  • bid_price, bid_size:全国最佳买价和量。
  • ask_price, ask_size:全国最佳卖价和量。
  • 有时还会包含各个交易所的报价情况。

对于做美股日内或者高频策略,NBBO数据是基础。

怎么获取和使用?

网站上提供了下载,但数据量非常大,动辄几十G。直接下下来用Python的pandas读可能会卡死。建议按股票代码或者日期范围分批处理。

他们也有API接口,用Python调用会方便一些。我自己试过,写个简单的脚本就能把指定日期的数据拉下来。

# 示例:调用CMES金融数据库的行情接口
# 注意入参正确,调用频率正常,别把人家服务器搞挂了。
import cmesdata

# 初始化客户端,需要你自己的token
client = cmes_data.Client(api_token='your_token_here')

# 获取某只股票某天的逐笔数据
# 以港股腾讯(00700)为例
tick_data = client.get_hk_tick_data(symbol='00700', date='2023-10-27')

# 数据返回通常是DataFrame,可以直接用
print(tick_data.head())

安装的话,一般就是用pip:

pip install cmes-data-sdk

具体参数和更详细的用法,最好还是去翻他们的接口文档,这里只是举个例子。

一些实际的感受

数据是好数据,但坑也不少。最大的问题就是数据量。一天一个市场的逐笔数据可能就几十个G,没有好的服务器和存储方案,根本玩不转。我一开始用自己笔记本跑,直接卡到蓝屏。

清洗也是个麻烦事,比如除权除息、合约调整,免费数据很多要自己处理。后来为了省时间,我直接用了CMES金融数据库已经清洗好的版本,虽然要花点积分,但不用自己折腾数据对齐和复权了,算下来还是划算的。

另外,不建议新手一上来就怼着Tick数据搞。先从日线、分钟线把策略逻辑跑通,再考虑用高频数据做增强或者验证。不然很容易在数据处理的泥潭里出不来。

好了,大概就这些。数据是死的,怎么用它产生价值才是关键。希望这点信息对你有用。如果你知道怎么高效压缩存储这些Tick数据,求分享!私信交流也行。

评论