A 股历史 tick 数据怎么下载与存储
tick 数据是「逐笔成交 + 逐笔报单」的完整流水,粒度最细。做高频做市、撮合回放、订单簿研究的核心原料。本文按「数据量级 → 数据源选择 → 存储策略 → 增量更新」四步讲清。
量级
A 股活跃股一天大致几十万笔 tick。单股一年 1~3 GB(取决于活跃度,贵州茅台这类大盘股偏多)。
如果想覆盖沪深主板 + 创业板全部约 5000 只股票:
- 1 年全量 ≈ 5~15 TB(未压缩 CSV)
- 用 Parquet + Snappy 压缩 ≈ 1.5~4 TB
- 用 DuckDB 列式存储 + zstd ≈ 1~3 TB
数字级别远超日线(全 A 日线一年 ~100 MB)。机械硬盘塞不下、慢,SSD 是必须。
数据源对比
| 源 | 优点 | 缺点 |
|---|---|---|
| Tushare stk_ticks | 数据全、字段规整、与日线一致 | 需要 5000+ 积分,实际只有付费用户能拿到稳定的全量 |
| 各券商 API | 部分免费 | 接入复杂、字段差异大、有些只给当日 |
| 上交所 / 深交所历史档 | 权威 | 不提供给散户,机构通过结算所 / 数据服务商订购 |
| 第三方代采(淘宝 / GitHub) | 便宜 | 字段质量参差、可能侵权,生产环境不可靠 |
对零售量化:Tushare 充值 + 增量更新 是最实用路径。
存储
不要用 CSV / SQLite。DuckDB + Parquet 是当前 sweet spot:
- 按「股票 × 月份」分区,文件名
ticks/600519/2026-05.parquet - DuckDB 直接
SELECT * FROM 'ticks/600519/*.parquet'(glob 自动展开) - 查询走列存索引,扫 1 个月数据秒级返回
- 备份 = 复制文件夹,简单
RTD 内部就是这套方案 — 用户不用关心实现,只用配「下载哪只 + 起始日期」。
增量更新
tick 数据不会改历史,只追加新日。策略:
- 每个交易日收盘后 1 小时(15:00 + 1 小时 = 16:00 北京)跑一次
- 只下当日数据,落到当月 parquet 文件追加
- 任务失败时记录到 activity log,第二天交易前自动补跑
RTD 的「定时任务」可以这样配:每个工作日 16:00 触发,只跑 tick 接口分组。
现实建议
- 先想清楚要做什么。tick 数据存储 + 维护成本高,如果不是高频研究,日线 + 分钟线就够。
- 先下小样本(2-3 只股票,半年)做策略原型,验证想法之后再扩到全 A。
- 本地磁盘冗余备份。1-2 TB 的数据丢了重新下要好几天 + 重新消耗积分。