1. 行情数据基础:定义、来源与频率
做量化交易,第一道坎就是行情数据。
我见过太多人,策略写得花里胡哨,结果数据源一塌糊涂。回测跑得飞起,实盘直接崩盘。说白了,行情数据就是量化交易的「地基」。地基不稳,楼盖得再高也得塌。
1.1 行情数据到底是个啥?
行情数据,就是市场交易行为的数字化记录。它记录了「什么标的、在什么时间、以什么价格、成交了多少」这些核心信息。
我个人习惯把行情数据分成两类:
- 快照数据:某一时刻的市场状态。比如当前买一价、卖一价、最新成交价。
- 流水数据:连续的交易事件。比如每一笔成交的逐笔明细。
嗯,这里要注意。快照数据是「切片」,流水数据是「录像」。两者用途完全不同。
核心要点:行情数据的本质是「时间序列 + 价格/成交量/盘口深度」的三维结构。缺少任何一个维度,数据质量都会大打折扣。
1.2 数据源类型:交易所 vs 第三方
数据从哪来?这是个好问题。我刚开始做量化时,图省事直接用了某免费数据源。结果回测收益年化50%,实盘亏得亲妈都不认识。后来一查,数据延迟了整整3秒。
目前主流的数据源就两种:
| 数据源类型 | 优点 | 缺点 | 典型场景 |
|---|---|---|---|
| 交易所直连 | 延迟最低(微秒级)、数据最完整、无中间环节 | 成本高(硬件/带宽/席位费)、接入复杂 | 高频交易、做市商 |
| 第三方数据商 | 接入简单、成本低、提供清洗后的数据 | 延迟较高(毫秒到秒级)、可能有数据缺失 | 中低频策略、回测研究 |
你想想看,做高频交易的人,为什么愿意花几百万买交易所直连?因为那几微秒的差距,可能就是盈利和亏损的分界线。
我的建议:如果你做的是日线级别的策略,第三方数据完全够用。但如果是Tick级别的高频策略,别省那个钱,直接上交易所直连。
1.3 数据频率:Tick、1分钟、日线
数据频率决定了你能看到多细的市场纹理。我把它比作拍照:
- 日线:相当于每天拍一张全景照。能看到大趋势,但细节全丢了。
- 1分钟线:相当于每1分钟拍一张。能看到日内波动。
- Tick数据:相当于每秒拍60张的高速连拍。每一笔成交都记录在案。
这三种频率的数据,各有各的用途:
Tick数据
Tick数据是最高频的数据,记录每一笔成交的详细信息。包括:成交时间、成交价格、成交量、成交方向(买/卖)。
我曾经在做一个期货高频策略时,发现用1分钟线回测效果很好,但实盘就是不行。后来换成Tick数据一查,发现策略在毫秒级别的价格反转中频繁亏损。这就是频率不够细带来的问题。
# Tick数据示例(CSV格式)
timestamp,symbol,price,volume,side
2024-01-15 09:30:00.123456,600519.SH,168.50,100,BUY
2024-01-15 09:30:00.234567,600519.SH,168.51,200,SELL
2024-01-15 09:30:00.345678,600519.SH,168.50,150,BUY
1分钟线
1分钟线是聚合数据。把1分钟内的所有Tick数据,按时间聚合成一笔K线。包含:开盘价、最高价、最低价、收盘价、成交量。
我个人习惯用1分钟线做日内策略的初步筛选。它比日线细,又比Tick数据好处理。数据量适中,回测速度也快。
避坑指南:我曾经犯过一个错误——直接用1分钟线做高频策略的回测。结果发现策略在实盘时频繁触发「滑点亏损」。原因很简单:1分钟线掩盖了毫秒级别的价格波动。高频策略必须用Tick数据回测。
日线
日线是最常用的数据。每天一根K线,包含:开盘价、最高价、最低价、收盘价、成交量。
日线适合做中长线策略。比如趋势跟踪、均值回归这些。数据量小,处理起来也快。我一般用日线做策略的「大方向判断」,然后用更细的数据做入场时机选择。
1.4 三种频率的对比
| 维度 | Tick数据 | 1分钟线 | 日线 |
|---|---|---|---|
| 数据量(单只股票/天) | 数万条 | 240条 | 1条 |
| 存储成本 | 极高 | 中等 | 极低 |
| 适用策略 | 高频、做市 | 日内、统计套利 | 趋势、价值投资 |
| 数据校验难度 | 极高(需逐笔校验) | 中等 | 低 |
1.5 知识体系结构图
下面这张图,是我自己总结的行情数据基础结构。你看一眼就能明白这三者的关系:
这张图展示了行情数据的完整链路:从数据源出发,经过不同频率的聚合,最终形成快照或流水数据,服务于具体的交易场景。
个人经验:我建议初学者先从日线数据入手。等把策略逻辑跑通了,再逐步细化到1分钟线、Tick数据。一步到位搞Tick数据,很容易被海量数据淹没,反而抓不住重点。
好了,行情数据的基础就这些。说白了就是三件事:数据从哪来、数据多细、数据长啥样。搞清楚了这些,后面的数据校验和错误恢复才有意义。