ZVT 项目研究站 · 工具分工

ZVT 与同类工具的分工:数据层、因子层、回测层各占哪一段

这几个工具经常被放在一起比较,但它们其实处在研究链条的不同位置:取数、因子、回测三段,各自强项不同。搞清分工,就不会纠结「选哪个」,而是知道「哪两段要串起来」。本页的对照事实以各工具的官方 PyPI 元数据与 ZVT 源码为依据,能力边界一律以各自官方文档为准。

对照对象:5 个同类工具事实来源:PyPI 元数据 2026-09-18未逐项核验其余工具的运行行为

三段链条与各工具的落点

数据层AkShare / Tushare / ZVT
因子层ZVT / Qlib / Alphalens(评估)
回测层ZVT / RQAlpha / Qlib
分析层Alphalens / Pyfolio
按各工具官方定位整理的示意(非官方图);落点为编辑判断,其余工具的具体能力请以其官方文档为准,本站未逐项核验。
Facts

六个工具的官方元数据事实

下表全部来自各工具在 PyPI 上的公开元数据(2026-09-18 采集)。事实与「定位判断」分开列,避免把编辑观点当成事实。

工具最新版本(发布日期)Python 要求许可PyPI 发布数官方一句话定位
zvt0.13.5(2026-01-18)>=3.9, <4MIT(license 字段为空,classifier 声明)86unified, modular quant framework for human beings
akshare1.18.96(2026-09-17)>=3.11MIT221财经数据接口库(Python 封装)
tushare1.4.29(2026-03-25)未标注BSD229Tushare Pro 数据接口 SDK
alphalens0.4.0(2020-04-27)未标注Apache9因子绩效分析(Quantopian 开源,主库多年未更新)
rqalpha6.4.0(2026-09-18)>=3.8Apache186事件驱动回测与实盘框架
pyqlib0.9.7(2025-08-15)>=3.8.0MIT29面向 AI 的量化投资平台(微软)
三个可直接观察的事实:①ZVT 与这几个工具不是同一层的东西——只有它是「统一取数 + 因子 + 回测」都覆盖;②akshare 现在要求 Python ≥3.11,而 ZVT 要 ≥3.9 且 <4,两者装在同一环境时版本约束会先打架;③alphalens 主库最后一次发布是 2020 年,社区维护分支另有其人,用之前先确认版本策略。
By layer

按链条分段看:每一段谁更顺手

「顺手」是编辑判断,判断依据是各工具官方定位与 ZVT 的源码结构(下面注明依据)。

环节ZVT 的做法同类工具的常见做法搭配建议判断依据
取数并落本地库record_data(provider=...) 写本地库并增量更新,8 组 provider 目录多为「调用即返回」,不强制建本地库需要反复做因子与回测 → 用 ZVT 落库;一次性取数 → 直接用数据接口库ZVT 源码 recorders 目录与 README 数据章节
标的与行情口径7 类标的、33 张 K 线表,前复权/后复权按表名区分接口维度多、以单次查询为主口径要求严格 → ZVT;只要原始数据 → 数据接口库ZVT domain/quotes 目录实际文件清单
财务数据四个财务 schema + important_cols()数据接口库通常覆盖更广(含公告等非结构化入口)结构化财报做因子 → ZVT;要公告原文 → 另找来源domain/fundamental/finance.py
因子计算二维索引 factor_df / result_df + TargetSelectorQlib 提供因子表达式与模型库;Alphalens 只做因子绩效评估做可复现因子流水线 → ZVT;做因子有效性统计 → AlphalensZVT README 因子章节
回测StockTrader.on_time + trade_the_targets 记录调仓RQAlpha / Qlib 的回测与撮合建模更细需要更细的撮合与成本建模 → 把因子结果导出后接 RQAlphaZVT README 策略章节;其余工具按其官方文档
绩效与报告界面与本地记录;不含专业绩效报告Alphalens 出因子分析图,Pyfolio 出组合绩效报告因子评估接 Alphalens,组合绩效接 Pyfolio(两者主库均已停更)各工具官方定位
Workflow

把两三个工具串起来:一条可落地的工作流

顺序很重要:先固定口径再算因子,先算因子再做评估,最后才是回测与绩效。

  1. ZVT 取数并落库

    标的清单 + 行情 + 财务,各自 record_data 写进本地库,之后所有查询都打本地。这一步决定了后续口径是否统一。

  2. ZVT 算因子

    data_df → factor_df → result_df 产出因子值;注意时间轴要对齐到「当时可获得」的日期(见点时数据页)。

  3. 导出成下游需要的格式

    Alphalens 需要「因子值 Series + 价格 DataFrame」两样东西,且价格表要按交易日对齐;这一步需要你自己写转换代码,框架之间没有官方集成。

  4. Alphalens 看因子有效性

    IC、分位收益、换手率这几项决定因子值不值得继续做。注意主库停更,现代 pandas 下需自行处理兼容问题。

  5. 回测与绩效

    留在 ZVT 里跑用 StockTrader;需要更细的撮合与成本模型时,把选股结果导出到 RQAlpha 之类的框架里执行。

  6. 结果复核

    回到「从信号到可信回测」与「数据避坑」两页的清单,逐项确认后再下结论。

重要边界:上面这条链路里的每一次衔接(尤其是第 3 步)都是你自己写的胶水代码——ZVT、Alphalens、RQAlpha 之间没有官方集成,本站也没有在本机验证过端到端跑通。把它当作规划而不是承诺。
Choose

选型决策表:先问你要产出什么

把「我要什么」放在最左边,选择就清楚了。

你的目标建议起点理由注意点
先取一批数据看行情与财务数据接口库(akshare / tushare 类)装上就能调,无需建库不落本地库,反复用要重复取
把口径固定下来、反复做因子ZVT 落库 + 因子层先写库再查询,口径与结果可复现要接受 19 项钉版本依赖与 Python 版本约束
判断一个因子有没有用ZVT 算因子 + Alphalens 做评估一个负责算,一个负责统计口径两者格式需要自己转换
要接近实盘的撮合与成本建模RQAlpha 类回测框架事件驱动、撮合与费用建模更细数据格式要适配,学习成本更高
做机器学习选股流水线Qlib 类平台数据层 + 模型库 + 回测一体化数据准备通常是主要工作量
只想先问几个问题、不想搭环境免部署的对话式技能路线装客户端即可,当天就能得到结果一次性结果、不落库;详见「对比」页
Misconceptions

关于工具搭配的三条常见误解

这三句话在本领域的讨论里反复出现,但都可以用官方事实纠正。

误解一:装了框架就不用数据接口库

不对。ZVT 解决的是「把数据按统一 schema 落库并在上面做研究」,它自己也需要通过 provider 去取数;而公告、研报、非结构化数据这类需求,框架并不覆盖。两者是分工,不是替代。

误解二:几个工具之间可以无缝衔接

没有官方集成。ZVT、Alphalens、RQAlpha 之间的数据格式、时间口径、复权方式各不相同,衔接层要你自己写并测试——本文把它写成规划而不是承诺。

误解三:数据都一样,用哪个都行

恰恰相反。同一只标的在不同数据源、不同复权口径下数值可能明显不同(ZVT 官方示例里默认口径与后复权的收盘价差了一个数量级)。研究里必须固定口径并记录来源,否则结果无法复现。

一个务实的判断顺序:先看你的数据条件(有没有账号、能不能落本地库)→ 再看你要的产出(研究结论 / 可复现流程 / 接近实盘的回测)→ 最后才选工具。反过来先选工具,通常会卡在数据上。
FAQ

工具选型常见问题

事实类问题给出来源;能力边界问题一律以各工具官方文档为准。

ZVT 和 AkShare、Tushare 是什么关系?

不是替代关系,层级不同:AkShare / Tushare 主要解决「把数据取到手」,ZVT 解决「把数据按统一 schema 落到本地库,并在上面做因子与回测」。事实上 ZVT 的依赖里既没有 akshare 也没有 tushare,它走的是自己的 provider 体系(东财、新浪、交易所、聚宽等)。

可以同时装 ZVT 和 AkShare 吗?

要小心版本约束:PyPI 显示 akshare 当前要求 Python ≥3.11,而 ZVT 要求 ≥3.9 且 <4。3.11 同时满足两者,但依赖版本仍可能冲突——建议放在不同虚拟环境里,用文件交换中间数据。

ZVT 和 Qlib 更像吗?

定位上有重叠:两者都覆盖数据层与因子/模型层。Qlib 的强项是面向 AI 的模型库与流水线,ZVT 的强项是统一取数与「先落库再查询」的数据组织方式。选哪个更多取决于你已有的数据条件与工程习惯,本站不做优劣结论。

Alphalens 停更了还要用吗?

它的分析口径(IC、分位收益、换手)至今仍是因子研究通用语言,所以方法层面仍值得用;但主库最后一次发布是 2020-04-27(PyPI 数据),在现代 pandas 下需要自行处理兼容问题,或改用社区维护分支。

这些工具之间要写很多胶水代码吗?

要。数据格式、时间口径、复权方式在工具之间并不统一,衔接层需要你自己写并测试。这也是本页反复强调「分工」而不是「替换」的原因。

本站的对照结论可信吗?

事实部分(版本、日期、Python 要求、许可、发布数)全部来自 PyPI 公开元数据,可自行复核;ZVT 的部分另外以源码与 README 为依据。表格里的「建议」与「落点」属于编辑判断,已在图注与表头标明。其余工具的具体能力,本站没有逐项核验。

选好工具之后,回到最基础的一件事

不管用哪套工具,数据口径与时间轴都决定了结论能不能信。建议把「点时数据」与「A 股数据避坑」两页当作长期清单。