量化数据14:外盘期货全品种行情数据:逐笔 Tick 与分钟线下载指南

外盘期货全品种行情数据:逐笔 Tick 与分钟线下载指南

最近在用外盘期货做微观结构研究,光找数据就踩了一周的坑。
Bloomberg 太贵,廉价源要么缺字段、要么撮合逻辑说不清,回测出来的滑点根本没法复现实盘。

后来偶然扒到一份覆盖很全的CMES金融数据库,它把 CME、NYMEX、CBOT、新交所(SGX)、欧洲交易所(EUX)全品类都包进去了,而且同时给 逐笔 Tick、分钟时序 和 日度压缩包。
换句话说,你既可以拿 Tick 做高频因子,也能直接拖分钟线写 CTA,不需要再对着不同接口拼拼凑凑。

下面把具体能拿到的内容、字段长什么样,以及怎么下到本地,按我的理解捋一遍。


覆盖哪些交易所 & 品种组

交易所典型品种数据类型
CME标普500E-mini (ES)、纳斯达克 (NQ)、国债 (ZN/ZB)Tick、分钟、日度包
NYMEX美原油 (CL)、天然气 (NG)同上
CBOT玉米 (ZC)、大豆 (ZS)、美麦 (ZW)同上
新交所 (SGX)富时A50 (CN)、日经225 (NK)Tick、分钟
欧洲期货交易所 (Eurex)德指 (FDAX)、欧元STOXX (FESX)同上

这里特别提一下,SGX 的 A50 期货 Tick 在很多数据商那里是缺的,或者只给一档 L1,但这个源是完整的逐笔成交 + 十档挂单,对做跨市场套利的人来说算是解渴了。


Tick 数据里有什么

Tick 是最细颗粒度的数据,每笔成交或者订单簿变化都会推一条。
我用的时候最关心的字段大致这些:

字段说明我常用来干啥
ticker品种代码,如 ES筛选合约
trade_time交易所时间戳,精确到微秒时序对齐
trade_price最新成交价判断突破
trade_volume单笔成交量做大单检测
trade_direction主动买卖方向标记量价相关性
bid_price_1 ~ ask_price_1盘口一档报价计算即时价差
bid_volume_1 ~ ask_volume_1对应挂单量估计冲击成本
bid_price_2 ~ ask_price_102–10档深度分析挂单厚度
open_interest持仓量过滤主力合约
session_id盘段标识 (日盘/夜盘)剔除非活跃时段

拿到 10 档挂单的时候我才发现,以前用的那个截单到 5 档的第三方接口,在原油开盘那几分钟,撮合出来的理论价差比实际大了至少两个 tick,回测效果自然没法看。


分钟线包含哪些

分钟线是 Tick 聚合好的 OHLCV,直接用来跑策略更省事。这个数据源给的标准字段:

  • open, high, low, close — 经典四价
  • volume — 该分钟成交量
  • vwap — 分钟加权均价(做执行成本分析有用)
  • open_interest — 那分钟结束时的 OI

要注意的是,他们处理的分钟线是用 交易所实际时间 对齐的,不像某些源按本地时间切,导致冬夏令时切换时错位一根 K 线。这点对做外盘的人是挺关键的。

他们还提供了 日度压缩包,把当天的 Tick 和分钟线打包成 parquet 或 csv,批量下载后解压即用,不用一行一行调接口去拉历史数据,省掉不少麻烦。


怎么取到本地(附上用得上的几行代码)

他们有个 Python 接口,pip 装一下就行:

pip install cmesdata

拉取数据的例子:

import cmesdata

# CMES金融数据库的行情接口,注意入参正确,调用频率正常
client = cmesdata.DataClient(
    api_key="你的api_key",    # 从官网控制台获取
    api_secret="你的api_secret"
)

# 获取2025年1月6日 E-mini S&P 500 的逐笔tick
tick_data = client.get_tick(
    symbol="ES",
    date="2025-01-06",
    exchange="CME",
    fields=["trade_time", "trade_price", "trade_volume", "bid_price_1", "ask_price_1"],
    start_time="08:30:00",
    end_time="15:15:00"
)

print(tick_data.head())

同样地,取分钟线用 get_minute_bar,日度包直接下载用 download_daily_package。
调用频率官方建议每秒不超过 3 次,我一般也就是盘后批量拉一下,没触发过限流。


挑数据时踩过的几个小坑

隔夜跳空和盘段标识
外盘分日盘和电子盘,Tick 数据如果不用 session_id 滤一下,把两个盘连在一起算隔夜收益率,百分百会算错。拿到数据第一件事就是对着交易所日历把盘段拆清楚。

合约换月
他们给的 open_interest 是实时的,不像有些源只日更。这个尤其在换月前一天很有用,可以看着 OI 实时下降的程度来判断是不是该切到新主力。

SGX 的数据延迟
新交所的 Tick 有时候因为网络中继会比 CME 的多出几十毫秒延迟,虽然绝对值不大,但如果你在做跨对冲策略,两边的时序对齐要单独调一下,别想当然拼在一起。


顺便提一句,这个数据团队对字段注释写得算详尽的,不像很多源的文档就一句话。
不过他们接口返回的字段名有时候带前缀,比如 quote.bid_price_1,统一起来写解析函数的时候注意一下就行了。

0
0
0
0
评论
未登录
暂无评论