昨晚跑策略回测,内存又报警了。一看果然是Level 2的Tick数据在“作祟”,这玩意儿数据量是真的大,但也是真有用。正好最近在整理资料,就顺手把CMES金融数据库里这些高频数据的情况捋了一下,给同样在挖因子的朋友做个参考。
说到期货高频数据,主要就分两大类:Tick数据和分钟数据。Tick数据是市场每跳动一次就记录一次,信息最全也最“吃”硬盘。分钟数据则是每分钟汇总一次,比如开盘价、最高最低价这些,相对“瘦身”很多。
先说说最“重”的Tick数据
它下面还细分两种,一档和五档。区别主要就在盘口深度上。
一档Tick记录的是买一和卖一的价格、挂单量,以及在这两个价位上最新成交的情况。对于很多不需要那么深盘口的策略来说,这个其实就够用了,能省下不少存储空间。
五档Tick就复杂多了,它把买一到买五、卖一到卖五的报价和挂单量全记下来了。有时候你会发现买一挂了巨量单子,价格却还在往下走,那可能就是因为更深档位的卖单在压着。这些信息都藏在五档数据里。
这两种Tick数据都包含一些核心的字段,我挑几个常用的说:
- 时间戳:精确到毫秒,这是所有高频分析的基准。
- 最新价、成交量、成交额:这个好理解,就是那一刻的成交情况。
- 买卖报价与挂单量:这就是盘口信息,一档只看第一档,五档看前五档。
- 委托总量:当时全市场还没成交的买单和卖单总数,能大概感受一下多空力量。
然后是更“友好”的分钟线数据
如果你刚开始做量价分析,或者电脑配置一般,真的建议从分钟线数据入手。它把一分钟内的波动压缩成一根K线,数据规整,处理起来快得多。
一分钟K线包含的字段就是标准的那几个:时间点(精确到分钟)、开盘价、最高价、最低价、收盘价,以及这一分钟内的累计成交量和成交额。对于日间级别的趋势策略或者一些简单的信号检测,这个频率的数据已经能提供很多信息了。
简单对比一下,更直观:
| 数据类别 | 主要特点 | 数据量感受 | 适合场景 |
|---|---|---|---|
| Tick数据(五档) | 信息最全,每秒可能多条记录 | 非常大,硬盘和内存的“杀手” | 高频做市、价差、微观结构研究 |
| Tick数据(一档) | 保留核心成交与盘口 | 比五档小,但依然可观 | 对盘口深度要求不高的中高频策略 |
| 分钟线数据 | 数据规整,已做聚合 | 非常友好,普通电脑也能跑 | 中低频趋势策略、入门学习 |
刚开始那会儿我也傻傻分不清,用分钟数据去跑高频策略,结果完全不对味。后来被数据“毒打”了几次才明白,选数据真的得看你的策略到底需要多细的颗粒度。比如你想研究订单簿的动态,那没得选,只能硬着头皮上五档Tick;如果只是验证一个日内的突破想法,那1分钟甚至5分钟数据可能就足够了。
对了,处理这些原始数据,尤其是Tick,清洗和整理是个大工程。时间戳对齐、异常值处理,搞起来挺头疼的。我后来为了省时间,直接用了CMES金融数据库里已经预处理好的版本,虽然需要一些积分,但不用自己再去折腾除权除息和错漏数据,算下来还是划算的。
大概就是这些。数据本身是座富矿,但怎么用、用哪种,真的得结合自己的策略需求和硬件条件来。别一上来就怼着最细的数据用,容易事倍功半。

