Zipline(原始仓库)
Quantopian 时代的经典事件回测引擎,展示数据包、因子管线、算法和交易模拟的分层。
为什么值得学
适合带着“怎样设计一个回测引擎”的问题阅读源码,理解后来许多框架采用的抽象。
数据与控制流程
- 1Bundle 历史数据
- 2Pipeline 因子
- 3TradingAlgorithm
- 4SimulationBlotter
- 5绩效记录
此流程为教学归纳,便于建立整体认识;完整条件分支与运行细节请对照下方源码。
架构拆解 · 4 个核心模块
每个入口均已核对,点击可阅读源码数据包管理
Bundle 注册与读取机制组织资产元数据、价格和复权数据。
- 输入
- 数据导入函数与市场数据
- 输出
- 可复用的历史数据包
zipline/data/bundles/core.py因子计算引擎
PipelineEngine 根据因子依赖和窗口计算横截面结果。
- 输入
- 因子定义、日期与资产集合
- 输出
- 日期 × 资产的因子表
zipline/pipeline/engine.py算法运行体
TradingAlgorithm 管理用户算法状态、数据访问和回测执行。
- 输入
- 算法函数和历史数据
- 输出
- 策略运行及绩效记录
zipline/algorithm.py模拟订单簿
SimulationBlotter 管理订单并结合滑点与佣金模型产生交易。
- 输入
- 订单与市场价格
- 输出
- 成交和订单状态变化
zipline/finance/blotter/simulation_blotter.py建议阅读顺序
- 先读数据包如何注册和读取
- 跟踪 Pipeline 的依赖计算
- 阅读 TradingAlgorithm 怎样调用用户函数
- 最后核对模拟订单簿的成交成本
动手做一次
画出引擎四层结构,并用一个最小事件回放器演示订单状态变化。
完成后,检查这些证据
- 区分因子计算与交易执行
- 说明复权和交易日历在哪层处理
- 用手工数据验证一笔交易的费用和现金变化
适用边界与版本说明
此处是经典原始仓库,README 仍列出旧 Python 版本;不建议作为现代环境的首次安装入口。未标记 archived 不代表依赖仍适合当前环境。
Star 快照:20,152 · 核验日期:2026-10-20 · GitHub 归档标记:未归档
核验默认分支:master · 源码固定提交:014f1fc339dc ↗
来源:GitHub 仓库与 Star 页面、README及上述源文件。分层、阅读顺序与练习为本站归纳;未逐一安装运行这些框架,源码提交不等于推荐安装版本。