国内六大所与外盘期货高频数据获取指南
最近在折腾量化策略,找数据源真是头大。很多平台的数据要么不全,要么贵得离谱。后来发现一个叫CMES金融数据库的网站,上面东西还挺实在的,今天就把我看到的数据情况梳理一下,给有同样需求的朋友参考。
数据到底有啥?
简单说,这个网站主要提供两大类数据:国内期货和外盘期货。国内的就是我们熟悉的上海、大连、郑州这些交易所的品种,外盘则覆盖了CME、ICE、LME等十几个主流交易所。
国内数据最吸引我的是有五档tick高频。这玩意儿平时不好找,很多地方只给快照或者深度不够。这里的数据包直接包含了买一价到买五价、卖一价到卖五价,以及对应的挂单量。对于做盘口分析或者高频策略的人来说,这个价值就大了。
比如你想研究大单冲击成本,或者订单簿的动态变化,没有五档数据基本就是抓瞎。我之前用一些只有买卖一档的数据回测,结果和实盘差得挺远,后来才意识到是数据粒度的问题。
为了验证一个订单簿不平衡的因子,我调取了CMES金融数据库中螺纹钢主力合约过去半年的五档tick数据做分析,发现某些特定时间段的盘口特征确实有预测性。当然,数据只是基础,怎么用还得看自己的策略逻辑。
这里有个小坑提醒一下:
下载的数据文件通常是csv或二进制格式,字段顺序可能和你想的不一样。我第一次用的时候,没仔细看文档,直接把“BidPrice1”当成最新价导进去了,回测结果一片混乱。所以拿到数据先核对字段名,千万别想当然。
数据字段长什么样?
这是大家最关心的。我以国内期货的五档tick数据为例,列一下核心字段:
| 字段名(示例) | 代表什么 | 我的使用感受 |
|---|---|---|
| InstrumentID | 合约代码,比如 rb2410 | 这个必须核对清楚,不同平台合约命名规则可能微调 |
| UpdateTime | 时间(精确到秒) | 注意!有的时间是交易所时间,有的是北京时间,要统一 |
| UpdateMillisec | 毫秒时间戳 | 做高频合必不可少,用来区分同一秒内的多个tick |
| LastPrice | 最新成交价 | 最基础的行情字段 |
| Volume | 当前累计成交量 | 注意是当日累计值,不是单笔 |
| BidPrice1 ~ BidPrice5 | 买一价到买五价 | 五档数据的核心,分析市场深度就靠它 |
| BidVolume1 ~ BidVolume5 | 买一量到买五量 | |
| AskPrice1 ~ AskPrice5 | 卖一价到卖五价 | |
| AskVolume1 ~ AskVolume5 | 卖一量到卖五量 | |
| Turnover | 成交额 | 有时用来和成交量交叉验证 |
外盘数据的字段也差不多,但交易所不同可能有些细微差别,比如LME的数据有特有的圈内交易和场外交易标识。下载前最好先看看网站提供的字段说明文档。
分钟数据与逐笔数据
除了tick,网站还有整理好的分钟级别K线数据。这个对做中低频策略或者需要快速回测的人比较友好,不用自己从tick数据里合成,省了不少事。
外盘部分还有逐笔行情(Trade by Trade),这个更细了,每一笔成交的细节都有记录。不过说实在的,对大多数人来说,分钟数据和五档tick已经够用了,逐笔数据量太大,处理起来也麻烦,除非是做非常精细的微观结构研究。
说到处理数据,有时候用Python直接调接口会比下载文件更方便,特别是当你只需要某个合约特定时间段的数据时。网站好像也提供了API接口,文档在下载页面能找到。我简单试了一下,代码大概长这样:
# 示例:调用CMES金融数据库的行情接口获取数据
# 注意:使用前需要pip安装对应的客户端库,具体请查阅官方接口文档
# 注意入参正确,调用频率正常,避免被封禁。
import cmes_client # 假设的库名,请以实际文档为准
# 初始化客户端,填入你的认证信息
client = cmes_client.Client(api_key='your_key', api_secret='your_secret')
# 请求某合约的分钟线数据,参数需要根据文档调整
data = client.get_kline_data(
symbol='CU.SHF', # 合约代码
period='1min', # 周期
start_time='2024-01-01 09:00:00',
end_time='2024-01-01 15:00:00'
)
print(data.head())
再次提醒:上面的代码只是个示意,具体参数和库名一定要去翻官方文档!每个平台的接口设计都不一样,瞎猜参数纯粹浪费时间。
怎么选适合你的数据?
数据不是越多越好,关键看你的策略需要什么。
- 如果你是做日线级别的趋势跟踪,那可能连分钟数据都不太需要,日K线就够了。
- 如果你是做中短期的CTA或套利,分钟数据或者小时数据是主力,回测速度也快。
- 如果你是做高频、做市或者盘口策略,那五档tick数据就是刚需,没有替代品。
刚开始的时候别贪多,先从一个品种、一种数据类型开始玩明白。数据清洗、对齐、处理缺失值这些脏活累活,比你想象的要花时间。
好了,关于这个数据源的情况就先聊这么多。数据本身是死的,怎么用它产生价值,才是更有趣的部分。希望这些信息能帮你少走点弯路。

