1. Tick数据概述
大家好,我是老张。做量化交易这些年,我接触最多的就是Tick数据。说实话,刚入行那会儿我也觉得分钟数据够用了,直到有一次做高频策略回测,发现分钟K线里藏着太多猫腻——嗯,从那以后我就再也不敢忽视Tick数据了。
今天这一章,咱们就来聊聊Tick数据到底是什么,它跟分钟数据有啥区别,以及它到底能用在哪些地方。
1.1 什么是Tick数据
Tick数据,说白了就是交易所每一笔成交的原始记录。你想想看,股票市场每秒钟可能成交几百笔,每一笔都会产生一条Tick数据。它记录的是最微观的市场行为。
一条典型的Tick数据长这样:
时间戳, 代码, 最新价, 成交量, 成交额, 买卖方向
09:30:00.123, 600519, 2050.00, 100, 205000, B
09:30:00.456, 600519, 2050.50, 200, 410100, S
09:30:00.789, 600519, 2050.20, 150, 307530, B
注意看时间戳,精确到了毫秒甚至微秒。我在项目中遇到过最夸张的情况——某只热门股票一秒钟产生了3000多条Tick数据。这种数据量,分钟数据根本没法比。
核心特征:
- 时间精度高:毫秒/微秒级别
- 数据量大:单只股票一天可能几十万条
- 信息完整:包含每一笔的成交细节
- 无压缩:原始数据,未经任何聚合处理
1.2 Tick数据与分钟数据的区别
很多人问我:直接用分钟数据做策略不行吗?我的回答是:看场景。但如果你做高频交易,分钟数据就是"近视眼"。
咱们用一张表来对比:
| 对比维度 | Tick数据 | 分钟数据 |
|---|---|---|
| 时间粒度 | 毫秒/微秒 | 1分钟/5分钟等 |
| 数据量 | 极大(单日百万级) | 较小(单日几百条) |
| 信息完整性 | 保留每一笔成交 | 只保留OHLCV |
| 买卖方向 | 有(B/S标记) | 无 |
| 订单簿信息 | 可重建 | 无法重建 |
| 存储成本 | 高 | 低 |
| 策略适用性 | 高频、做市、套利 | 中低频、趋势跟踪 |
举个例子你就明白了。假设某只股票在1分钟内发生了这些事:
- 09:30:00 成交价100元,成交量1000股
- 09:30:30 成交价101元,成交量500股
- 09:30:45 成交价99元,成交量2000股
分钟数据只会告诉你:开盘100,最高101,最低99,收盘99,总成交量3500股。但Tick数据告诉你:价格先涨后跌,而且最后那笔大单砸盘了。这两种信息量,完全不是一个级别。
我曾经踩过的坑: 用分钟数据做高频策略回测,结果实盘时发现策略完全失效。后来一查,原来是分钟数据把很多日内反转信号给"平滑"掉了。从那以后,只要涉及高频,我必用Tick数据。
1.3 Tick数据的典型应用场景
Tick数据到底能干啥?我总结了三个最核心的场景:
场景一:高频交易
高频交易靠的就是速度。你想想看,如果别人在毫秒级别捕捉到价格异动,而你还在等分钟K线收盘——黄花菜都凉了。Tick数据能让你看到:
- 大单的逐笔成交细节
- 买卖力量的瞬时变化
- 价格跳动的微观模式
我记得有个做市商朋友,他的策略就是基于Tick数据里的买卖方向标记。当连续出现5笔买方主动成交时,他就判断短期买盘强劲,开始做多。这种信号在分钟数据里根本看不到。
场景二:订单簿重建
这是Tick数据最牛的应用之一。通过逐笔成交和逐笔委托数据,你可以重建出任意时刻的订单簿状态。说白了,就是能看到"挂单的排队情况"。
订单簿重建的核心逻辑:
# 伪代码示意
order_book = {
'bids': [], # 买单队列,价格从高到低
'asks': [] # 卖单队列,价格从低到高
}
for tick in tick_data:
if tick.type == '成交':
# 从订单簿中移除已成交的订单
update_order_book(order_book, tick)
elif tick.type == '挂单':
# 新增订单到队列
add_to_order_book(order_book, tick)
elif tick.type == '撤单':
# 从队列中移除
remove_from_order_book(order_book, tick)
有了订单簿,你能做很多事情:
- 计算买卖盘口的深度
- 分析大单的挂单行为
- 预测短期价格走势
- 识别虚假挂单(spoofing)
我的经验: 订单簿重建最头疼的是数据对齐问题。不同交易所的时间戳精度不一样,有的用毫秒,有的用微秒。我建议统一转成纳秒级时间戳,避免排序时出现歧义。
场景三:市场微观结构分析
这是学术界和业界都很关注的方向。通过Tick数据,你可以研究:
- 买卖价差的动态变化
- 成交量的时间分布特征
- 价格发现的过程
- 市场参与者的行为模式
举个简单的例子。我曾经分析过某只股票Tick数据里的"大单拆分"现象。发现很多机构会把大单拆成几十笔小单,每笔间隔几十毫秒,目的是隐藏自己的交易意图。这种模式在分钟数据里完全看不出来。
嗯,这一章的内容就到这里。Tick数据是量化交易的"原材料",理解它的本质和特点,是后续做数据清洗和特征工程的基础。我个人建议,如果你刚开始接触Tick数据,先找一只流动性好的股票,下载一天的Tick数据,用Python读一读,感受一下它的"呼吸节奏"——这对你理解市场会有很大帮助。