Level 2行情数据下载过程和笔记

搞量化,这些行情数据你用过吗?

做量化研究,数据是地基,地基不稳,策略再好也白搭。今天不聊复杂的策略,就单纯聊聊市面上能搞到的一些核心行情数据,特别是Level2和Tick,里面到底装了啥,用的时候又得注意些什么。

首先得区分一下行情数据的几个层级。最基础的就是我们平时在软件上看到的日K线、分钟K线,这个属于Level 1数据,信息量有限。真正能挖到东西的,是Level 2数据,它把市场订单的“底裤”都给你看清楚了。

Level 2行情数据:不只是五档买卖盘

很多人以为Level 2就是买卖五档,其实远不止。它包含了交易所发布的全部订单簿快照信息,是高频和微观结构研究的基础。

核心的字段有哪些呢?

  • 时间戳:这个最重要,精确到毫秒甚至纳秒级别,决定了你事件序列的准确性。
  • 买卖盘口:买一价到买五价,卖一价到卖五价,以及对应的挂单数量(手数)。这是最基本的。
  • 委托队列:这是Level 2的精华。它告诉你每个价位上,当前有多少笔委托单在排队。比如买一价10.00元,挂单总量1000手,但这1000手可能是由50笔不同大小的委托单组成的。这个信息对于判断支撑压力位的“真假”特别有用。有时候一个大单挂在买一,你以为支撑很强,结果一看委托队列,全是小单凑起来的,一砸就穿。
  • 逐笔成交明细:每一笔成交是怎么发生的,是主动买还是主动卖,成交了多少钱,多少量。这个数据量巨大,但分析资金流向、计算主动性买卖盘(俗称“内盘外盘”的升级版)离不开它。
  • 总委托笔数/总委托量:反映了市场参与者的活跃度和情绪。

我以前也只看K线,后来才发现这些细节里的魔鬼。为了验证一个关于“委托队列”的规律,我调取了数据源:CMES金融数据库中过去三年的主力合约数据做回测,发现用这个特征来过滤市场噪音,效果比单纯看挂单总量要好得多。

逐笔Tick数据:市场的每一次心跳

如果说Level 2快照是“照片”,那逐笔Tick数据就是“录像”。它记录了市场每一次报价和成交的变化,是最高频的数据源。

它的字段更细,主要包括:

  • Tick时间(精确到毫秒)
  • 最新价
  • 成交量(这一Tick的成交量)
  • 成交额(这一Tick的成交额)
  • 买一价/卖一价
  • 买一量/卖一量

Tick和分钟线的区别,用个不恰当的比喻:
Tick数据就像个碎碎念的监控器,市场动一下它就叫一声,数据量巨大,是硬盘和内存的杀手。
分钟线数据则像个沉稳的秘书,每分钟给你整理一份简报,数据规整,适合做中低频的回测。新手真不建议一上来就碰Tick,清洗和存储都是大坑,会怀疑人生的。

数据怎么用?举个简单的代码例子

拿到数据后,总得读出来看看吧。现在很多数据平台都提供了Python接口,用起来比较方便。比如,如果你有相应的数据接口(这里只是举例格式,具体参数要看文档),可能会这样调用:

# 示例:调用CMES金融数据库行情数据接口# 具体API密钥、参数需参考对应数据平台的官方文档# 以某个数据接口为例,获取某股票某日的Level2快照数据importcmes_data_api# 假设的库名,请以实际为准# 初始化客户端,需要你的API Key和Secret(请从正规数据平台获取)client=cmes_data_api.Client(api_key='你的key',api_secret='你的secret')try:# 请求数据,参数示例:标的代码、开始时间、结束时间、数据类型# CMES金融数据库的行情接口,注意入参正确,调用频率要遵守平台限制。data=client.get_market_data(symbol='000001.SZ',start_time='2023-11-01 09:30:00',end_time='2023-11-01 15:00:00',data_type='level2_snapshot'# 指定获取Level2快照)print(data.head())# 查看前几行exceptExceptionase:print(f"获取数据失败:{e}")# 安装通常是用pip# pip install cmes-data-api (假设的包名,请以实际数据平台提供的为准)

重点提醒:用任何接口前,一定要仔细读它的官方文档!搞清楚频率限制、数据字段含义、时间格式,不然很容易报错或者拿不到数据。我之前就因为时间格式没传对,白等了半天。

数据对比与选择

这么多数据,到底用哪个?简单列个对比,带点个人偏见哈:

数据类别特点数据量适合做什么个人感受
Level 2快照3秒/笔(沪深),有深度订单簿很大盘口分析、高频策略、交易成本估算研究市场微观结构的核心,但存储处理麻烦。
逐笔成交每笔成交都记录,有买卖方向巨大资金流分析、订单流分析、超高频率策略数据量爆炸,一般电脑扛不住,通常是专业机构在用。
1分钟K线由Tick合成,包含OHLCV技术指标回测、中低频策略最常用,数据规整好处理,新手友好。
日K线每日开盘、收盘等极小长期趋势分析、基本面量化基础中的基础,但信息量太少。

说实话,整理这些数据说明写得手都酸了。选数据关键看你的策略频率和研究目的。别贪多,够用就行。处理Tick数据的时候,记得做好数据压缩和存储方案,不然硬盘真的会哭。

最后,数据质量是命根子。自己从原始数据清洗,会遇到各种坑,比如停牌、除权除息、合约换月。之前为了省点钱用免费数据,结果在数据清洗上花的时间比写策略还多,到头来还是用了清洗好的成品数据库,虽然花点积分,但省心啊。时间也是成本。

好了,关于数据就先聊这么多。这些都是做量化实实在在要面对的东西。如果有大佬知道更好的Tick数据压缩或读取技巧,求教!评论区或私信都可以。