1. Tick数据概述
大家好,我是你们的量化金融讲师。今天咱们聊聊Tick数据——这个在量化回测里最底层、最原始的数据形态。
说实话,我刚入行那会儿,对Tick数据也是一知半解。总觉得用日线做回测就够了,干嘛要折腾这么细的数据?直到有一次,我做一个高频策略的回测,用日线数据跑出来收益曲线漂亮得不行,结果实盘一跑,直接亏到怀疑人生。后来才发现,问题就出在数据粒度上。
嗯,咱们今天就把Tick数据彻底讲透。
什么是Tick数据?
Tick数据,说白了就是每一笔成交的原始记录。交易所每撮合一次交易,就会生成一条Tick数据。它记录的是最微观的市场行为。
一条典型的Tick数据长这样:
时间戳: 2024-01-15 09:30:00.123456
代码: 600519.SH
最新价: 1688.50
成交量: 100
成交额: 168850
买卖方向: 买
你想想看,这跟咱们平时看到的K线图完全不是一个东西。K线是把一段时间内的Tick数据聚合起来,而Tick数据本身是离散的、逐笔的。
核心要点:Tick数据是市场最原始的数据形态,不可再分。它是所有高级数据(分钟线、日线)的源头。
Tick数据在量化回测中的重要性
我个人习惯把量化策略分成三类:
- 低频策略:持仓几天到几个月,用日线就够了
- 中频策略:持仓几小时到几天,分钟线勉强够用
- 高频策略:持仓几秒到几分钟,必须用Tick数据
为什么高频策略必须用Tick?我举个例子你就明白了。
假设你写了一个策略,在价格突破某个阈值时买入。用日线数据回测,你看到的是:
开盘价: 100
最高价: 105
最低价: 98
收盘价: 102
你设定突破103买入。日线告诉你,今天最高到了105,所以你的买入指令应该被执行了。但问题是——你知道它是在什么时间突破的吗?是在开盘后第1秒,还是收盘前最后一秒?
这差别可大了去了。如果是开盘第1秒突破,你后面还有将近4个小时可以持仓。如果是收盘前最后一秒突破,你买入后马上就收盘了,根本没法操作。
避坑指南:我曾经用日线数据回测一个突破策略,年化收益做到30%。结果实盘一跑,收益直接腰斩。后来查原因,发现日线回测里很多突破发生在收盘前最后一刻,根本没法成交。这就是典型的「回测幸存者偏差」。
Tick数据能帮你精确到毫秒级别。你可以知道:
- 每一笔成交的具体时间
- 买卖双方的博弈过程
- 订单簿的微观变化
- 市场冲击成本的真实影响
Tick数据与分钟/日线数据的区别
咱们用一张表来对比,一目了然:
| 维度 | Tick数据 | 分钟线 | 日线 |
|---|---|---|---|
| 数据粒度 | 逐笔成交 | 1分钟聚合 | 1天聚合 |
| 数据量 | 极大(每天数百万条) | 中等(每天约240条) | 极小(每天1条) |
| 时间精度 | 毫秒/微秒级 | 秒级 | 天级 |
| 信息含量 | 完整保留市场微观结构 | 丢失大部分微观信息 | 仅保留4个价格点 |
| 存储成本 | 极高 | 中等 | 极低 |
| 回测精度 | 最接近实盘 | 有一定偏差 | 偏差较大 |
说白了,分钟线和日线都是对Tick数据的「降采样」。降采样会丢失信息,这是不可避免的。你想想看,把几百万条Tick数据压缩成1条日线,中间丢失了多少市场博弈的细节?
我举个例子:
# 假设这是某股票1分钟内的所有Tick数据
ticks = [
{"time": "09:30:00.000", "price": 100.00, "volume": 100},
{"time": "09:30:00.050", "price": 100.02, "volume": 200},
{"time": "09:30:00.100", "price": 100.01, "volume": 150},
{"time": "09:30:00.150", "price": 100.03, "volume": 300},
# ... 还有几百条
]
# 聚合成的1分钟K线
minute_bar = {
"open": 100.00,
"high": 100.03,
"low": 100.00,
"close": 100.03,
"volume": 750
}
你看,分钟线只保留了4个价格和总成交量。但Tick数据里,你能看到价格是如何一步步从100.00涨到100.03的,中间有没有回调,买卖力量如何变化——这些信息在分钟线里全丢了。
我的建议:如果你的策略持仓周期在1分钟以内,或者你的策略依赖于订单簿的微观结构(比如做市策略、套利策略),那必须用Tick数据。如果只是做中长线趋势跟踪,日线其实够用了。
最后,咱们用一张图来总结Tick数据的核心地位:
嗯,这张图很直观。Tick数据在最底层,是所有数据的源头。往上走,数据越来越粗,信息越来越少,但存储成本也越来越低。这就是一个典型的「精度 vs 成本」的权衡。
我个人建议,如果你刚开始做量化,可以先从日线入手。但如果你想做真正精细的回测,尤其是高频策略,那Tick数据是你绕不开的一关。下一章咱们就聊聊Tick数据的存储格式和压缩方案。