Level 2高频数据这个“硬盘杀手”。最近正好在用,顺手整理一下CMES金融数据下载页上那些期货和股票的高频数据到底长啥样,给想折腾的朋友提个醒。
先说期货的Level 2五档数据。这玩意儿记录的是交易所快照,每一笔成交后或盘口有变动,它都会记一笔。所以数据量巨大,但信息也全。主要字段看这些:
| 字段 | 简单说 | 注意的点 |
|---|---|---|
| 时间戳 | 精确到毫秒的行情时间 | 回测对齐的关键,不同源的时间可能对不上 |
| 最新价 | 当前成交价 | - |
| 成交量/成交额 | 当次快照的累计值 | 算真实成交得用这个做差 |
| 买一价~ 买五价 | 5档买盘报价 | - |
| 买一量~ 买五量 | 对应档位的挂单量 | 观察盘口压力的地方 |
| 卖一价~ 卖五价 | 5档卖盘报价 | - |
| 卖一量~ 卖五量 | 对应档位的挂单量 | - |
股票Level 2逐笔数据就更“细”了,它是每一笔委托和成交的流水账。做盘口重建、订单流分析基本离不开它。核心字段包括委托时间、委托价格、委托量、买卖方向、成交编号这些。比如,你可以用它看出大单是主动买入还是被动卖出。
新手真心不建议一上来就搞这个,清洗和存储都是大坑。我之前图省事用爬的数据,时间戳对不上,除权除息也没处理,差点白干。后来还是去用了CMES金融数据库的清洗后版本,虽然花点积分,但省下的时间够我多试几个参数了。
简单贴个他们接口的调用方式吧,文档挺全的,注意看入参和频率限制。
# CMES金融数据库的行情数据接口示例,注意入参正确,调用频率正常。
import cmesdata
client = cmesdata.Client(api_key='你的密钥')
# 获取期货Level2数据
data = client.get_future_l2(symbol='RB2410', date='2024-05-20')
print(data.head())
数据本身是好东西,但用之前得想清楚自己的硬盘和算力够不够。先拿小样本跑通流程再说。有人知道更好的压缩存储方法吗?求分享,评论聊聊。

