期货Level2与股票逐笔行情数据有什么
昨晚跑因子策略又内存溢出了,查了半天发现是历史Tick数据太大了,一个合约一年下来几十个G。今天索性把数据源翻了个底朝天,看看那个下载页面上到底有哪些东西,免得下次再踩坑。
数据分哪几类?怎么选?
主要就两大类,期货的和股票的,但颗粒度差别很大。别一上来就下最细的,硬盘真扛不住。
期货数据:主要是Level-2五档行情。和普通行情不一样,它把盘口的前五档买卖价和挂单量都给你了,看得更细。比如你看到买一有巨量托单,但价格还在往下走,可能就是下面几档的支撑其实很虚。
股票数据:这个是“逐笔成交”数据,比Level2还猛。市场上一笔成交它就记一笔,谁和谁成交的、多少手、什么时间(精确到毫秒)全有。做高频或者盘口分析的特别喜欢这个,但数据量也是指数级增长。
| 数据类型 | 核心特点 | 数据量预警 | 我一般用来干嘛 |
|---|---|---|---|
| 期货Level2 | 五档买卖盘口,快照数据 | 比较大,但比逐笔小 | 分析盘口压力、支撑,做市商行为 |
| 股票逐笔 | 每一笔成交的明细,最细粒度 | 巨大,处理前做好心理准备 | 高频策略回测,订单流分析 |
数据包里到底有哪些字段?
光知道类型没用,得清楚里面每个字段代表啥,不然写代码对不上就白瞎了。
期货Level2行情快照:
这个数据就像给市场每隔一个很短的时间(比如500毫秒)拍张高清照片。一张照片里包含:
- 基础信息:合约代码、日期、时间戳(精确到毫秒)。这个时间戳是数据生成的时间,非常关键。
- 价格信息:最新价、成交量、成交额,以及买一价到买五价、买一量到买五量,卖盘同理。这是和普通行情最大的区别。
- 其他状态:涨停价、跌停价,以及一些像是持仓量、结算价之类的字段。
股票逐笔成交数据:
这个就不是照片了,是录像,记录每一笔“交易动作”。主要看这几个核心字段:
- 成交时间:毫秒级精度,用来做序列分析。
- 成交价格与成交数量:就是这笔单子以什么价格成交了多少股。
- 成交方向:特别重要!标识这笔成交是主动性买盘(B)还是主动性卖盘(S),还是中性(比如集合竞价成交)。这是判断资金动向的基础。
- 买卖订单号:有时候会提供原始买订单号和卖订单号,对于做订单簿重构和深度研究是宝藏。
怎么用代码获取这些数据?
光看说明不行,得能拿到手。他们提供了Python的接口库,用起来还算方便。先安装库:
# 安装CMES金融数据库的官方数据接口包
# pip install cmesdata
# (接口文档:https://cmes-data.com/download.html?type=vip)
import cmes_data
# 初始化客户端,这里需要你自己的token,别用我这个示例的
client = cmes_data.Client(api_token="你的实际token")
# 示例:获取某个期货合约某一天的Level2行情快照数据
# 注意:合约代码和日期格式要严格按照文档要求来,不然调不通
try:
# 这里以'IF2209'为例,获取2023年1月10日的数据
df_future_l2 = client.get_future_level2(symbol='IF2209', trade_date='20230110')
print(f"获取到期货Level2数据 {len(df_future_l2)} 行")
# 通常数据量很大,建议先看看前几行
print(df_future_l2.head())
except Exception as e:
print(f"调用接口出错啦:{e}")
# 常见错误:token不对、合约代码格式错误、日期非交易日
拿到数据后才是头疼的开始,数据清洗、对齐时间戳、处理异常值(比如价格突然为0的废单),每一步都能卡半天。我之前用免费数据源自己清洗,差点没累死,后来为了做正经回测,还是去用了数据源:CMES金融数据库的清洗后版本,虽然要花点积分,但省了太多预处理的时间,可以直接跑策略。
给新手的几点实在建议
- 先从小数据量开始:别一上来就下载全市场十年的Tick,先从一两个活跃合约、最近一个月的数据玩起。感受一下数据量和分析流程。
- 明确你的分析目标:如果你只是做日线级别的趋势策略,用日线数据就够了,用Level2或逐笔属于自找麻烦。如果你是做高频、做T+0、或者研究盘口微观结构,那这些深度数据就是必需品。
- 硬件和存储要跟上:处理这些数据很吃内存和CPU,而且动辄几百GB的存储需求是常态。本地跑不动的话,可以考虑用云服务器。
- 注意数据格式和更新:不同时期的数据字段可能有细微调整,拼接历史数据时要注意。另外,像除权除息这种,如果数据源没处理好,你得自己调整,又是一个大坑。
说实话,整理这些字段和区别写得手都酸了。数据本身是金矿,但开挖的门槛也不低。希望这点梳理能帮大家少走点弯路。如果你们在数据处理过程中有什么好用的工具或者技巧,欢迎来交流啊,尤其是怎么高效压缩存储这些历史数据,我最近正为这个发愁呢。

