Quant Data Fetch

A 股历史 tick 数据怎么下载与存储

tick 数据是「逐笔成交 + 逐笔报单」的完整流水,粒度最细。做高频做市、撮合回放、订单簿研究的核心原料。本文按「数据量级 → 数据源选择 → 存储策略 → 增量更新」四步讲清。

量级

A 股活跃股一天大致几十万笔 tick。单股一年 1~3 GB(取决于活跃度,贵州茅台这类大盘股偏多)。

如果想覆盖沪深主板 + 创业板全部约 5000 只股票:

数字级别远超日线(全 A 日线一年 ~100 MB)。机械硬盘塞不下、慢,SSD 是必须

数据源对比

| 源 | 优点 | 缺点 | |---|---|---| | Tushare stk_ticks | 数据全、字段规整、与日线一致 | 需要 5000+ 积分,实际只有付费用户能拿到稳定的全量 | | 各券商 API | 部分免费 | 接入复杂、字段差异大、有些只给当日 | | 上交所 / 深交所历史档 | 权威 | 不提供给散户,机构通过结算所 / 数据服务商订购 | | 第三方代采(淘宝 / GitHub) | 便宜 | 字段质量参差、可能侵权,生产环境不可靠 |

对零售量化:Tushare 充值 + 增量更新 是最实用路径。

存储

不要用 CSV / SQLite。DuckDB + Parquet 是当前 sweet spot:

  1. 按「股票 × 月份」分区,文件名 ticks/600519/2026-05.parquet
  2. DuckDB 直接 SELECT * FROM 'ticks/600519/*.parquet'(glob 自动展开)
  3. 查询走列存索引,扫 1 个月数据秒级返回
  4. 备份 = 复制文件夹,简单

RTD 内部就是这套方案 — 用户不用关心实现,只用配「下载哪只 + 起始日期」。

增量更新

tick 数据不会改历史,只追加新日。策略:

  1. 每个交易日收盘后 1 小时(15:00 + 1 小时 = 16:00 北京)跑一次
  2. 只下当日数据,落到当月 parquet 文件追加
  3. 任务失败时记录到 activity log,第二天交易前自动补跑

RTD 的「定时任务」可以这样配:每个工作日 16:00 触发,只跑 tick 接口分组。

现实建议

你可能还想看