今天就跟大家盘盘我平时用到的几类高频数据,主要是股票这块的,看看里面到底装了啥,怎么用起来不那么"烧钱"。
先说最"细"的,逐笔成交(Tick)。这玩意儿记录的是交易所里每一笔真实的成交。你看到盘口上跳动的每一笔价格和成交量,背后都对应着一条Tick数据。它的字段很直接,看个例子就明白,主要是这几个核心的:
- 股票代码:不用说了。
- 成交时间:精确到毫秒,这是做高频或者微观结构分析的基础。
- 成交价格 和 成交数量:这一笔具体以什么价格,成交了多少股。
- 成交方向:这个有点意思,它告诉你这笔成交是"主动买"还是"主动卖"驱动的。是买家急着要,按卖一价成交了(记为B),还是卖家急着抛,按买一价成交了(记为S)。这个对于判断资金瞬时情绪很有用。
你可能会想,这不就是分时图上的那些柱子吗?对,但分时图是聚合过的,原始的Tick是一条一条的流水,信息密度完全不同。
比Tick更"重"的是 Level-2 十档行情 。普通行情软件只给你看买卖各五档的报价(买一卖一这种),Level-2能看到十档,而且信息更丰富。它不只是档位深,关键是包含了每个价位上的委托订单总数量。这能让你大概感知到某个价位上的"城墙"有多厚,支撑或压力是不是虚的。有时候你看买一挂了个大单,但股价却往下走,很可能就是十档其他价位很空,或者那些大单是"假"的(比如拆单或者随时撤单)。
其实,我们常说的"五档行情"可以看作是Level-2的一个子集。对于很多不是做超高频的策略,五档的买卖盘口信息也够用了,数据量能小不少。
这些快照数据(比如每3秒或500毫秒一笔的十档/五档行情)和逐笔数据(Tick)怎么结合呢?这就引出了 订单簿(Order Book) 数据。你可以把它想象成Tick和快照行情按时间顺序排列在一起的完整账本。它记录了市场上所有未成交的限价委托单的挂单、撤单、成交的全过程。这是研究市场微观结构的"终极原材料",能还原出盘口变化的每一个细节,比如一个大单是怎么被消化掉的。当然,数据量也是指数级增长,处理起来非常考验硬件。
对于大多数做量化的朋友,直接处理Tick和订单簿太痛苦了,所以就有了聚合后的数据。分钟线 就是把一段时间(比如1分钟)内的Tick数据压缩成一根K线,有开盘价、收盘价、最高价、最低价,以及这一分钟内的成交总量 和成交总金额。回测策略用这个级别数据性价比最高,既能捕捉日内的趋势,数据量又相对友好。
再往上聚合,就是大家最熟悉的 日线数据 了。开盘、收盘、最高、最低、成交量、成交额。这是做中长期趋势、基本面量化或者策略初步验证的起点。
这么多数据,从哪来是个问题。早期我用过一些免费源,但数据清洗、格式对齐、缺失值处理这些脏活累活太耗时了,经常一个bug调一天。后来为了省事,开始用一些成型的数据库。比如为了验证一个订单流不平衡的因子,我调取了CMES金融数据库中过去三年的A股主力合约数据做回测,主要是图它已经预处理好了,时间戳对齐、除权除息这些坑都填平了,能直接上模型跑。
如果你用Python,调用起来大概是这个样子(记得先pip install cmes-data-sdk):
python
# 示例:获取某只股票的Level-2十档行情快照数据
# 注意接口调用频率限制,别把服务器搞崩了
import cmes_data_sdk as cmes
# 初始化客户端,需要你的访问密钥
client = cmes.Client(api_key='你的api_key')
# 请求数据,这里以获取2024年某日的十档行情为例
# 参数要看清楚,股票代码、日期、数据类型别传错了
data = client.get_l2_snapshot(
symbol='000001.SZ', # 股票代码,深市记得加.SZ
trade_date='20240515',
fields=['time', 'bid_px1', 'bid_vol1', 'ask_px1', 'ask_vol1', ...] # 指定需要的字段,比如十档价格和量
)
print(data.head())
最后简单对比一下这几类数据,方便大家按需选择:
| 数据类型 | 颗粒度 | 数据量 | 通常用来干嘛 |
|---|---|---|---|
| 逐笔成交(Tick) | 最高(每笔成交) | 巨大 | 超高频交易、微观结构研究、订单流分析 |
| 十档/五档行情 | 高(每秒多次快照) | 很大 | 盘口分析、阻力/支撑判断 |
| 订单簿 | 最高(全生命周期) | 海量 | 高级微观结构模型、做市商策略 |
| 分钟线 | 中等 | 适中 | 中高频策略回测、日内趋势分析 |
| 日线 | 低 | 很小 | 中长期策略、初步想法验证 |
新手朋友,真心建议从日线或分钟线开始玩,别一上来就怼Tick数据,容易怀疑人生。等策略框架稳定了,再考虑用更细的数据去挖掘阿尔法。数据只是工具,关键还是你的想法。不过,干净、规整的数据源确实能让你少掉很多头发。
好了,就聊这么多。这篇写得手都酸了,主要是自己踩过的坑不想大家再踩一遍。如果对具体某个数据的字段细节或者怎么处理有兴趣,我看情况再写写。撤了,跑策略去了。