策略回测
用历史数据模拟策略表现,事件驱动机制让策略只能访问当时已知的数据,降低前视偏差。
zipline / Quantopian
zipline 是 Quantopian 开发的 Python 风格算法交易库(Pythonic algorithmic trading library),一个事件驱动(event-driven)的回测系统。它让策略按市场事件顺序推进,避免前视偏差,适合量化研究者、策略开发者与想用 Python 验证交易想法的用户。原版已归档,社区维护版 zipline-reloaded 仍在更新。
项目页面显示约 20k Star;该数字会随社区活动变化,采集日期为 2026-08-19。
查看固定版本源码
它把「策略想法 → Python 策略编写 → 历史数据回测 → 指标与结果评估」整理成一条可复现的量化回测链路,让算法交易验证更结构化。
用历史数据模拟策略表现,事件驱动机制让策略只能访问当时已知的数据,降低前视偏差。
用因子对大量证券筛选、过滤、排序与分析,输出多索引 DataFrame,适合横截面研究。
通过数据 bundle 统一管理行情与资产数据,用 Pandas DataFrame 集成,可扩展 matplotlib/scipy/sklearn。
首页只保留理解所需的三步,详细流程见架构页与策略页。
安装 zipline 后,用 zipline ingest 下载样本行情与资产数据(数据 bundle)。
在 initialize() 初始化,在 handle_data() 中逐事件计算信号并下单(如双均线交叉)。
用 zipline run 执行回测,输出结果与指标;回测结果不构成收益保证。
同一个研究目标,两种准备成本。完整对比见对比子页。
灵活度高,但环境、数据与 Python 版本兼容都需要自己维护(原版依赖较旧)。
# 1. 安装(原版或维护版)
conda create -n zipline_env python=3.8
conda install -c ml4t -c conda-forge \
-c ranaroussi zipline-reloaded
# 2. 准备数据
zipline ingest
# 3. 写策略并回测
def initialize(context):
context.asset = symbol('AAPL')
def handle_data(context, data):
short = data.history(context.asset, 'price',
bar_count=100).mean()
long = data.history(context.asset, 'price',
bar_count=300).mean()
order_target(context.asset,
100 if short > long else 0)
# 4. 回测
zipline run -f dual_moving_average.py \
--start 2014-1-1 --end 2018-1-1 \
-o dma.pickle --no-benchmarkSkill 的数据源、Token、网络与市场覆盖各不相同;不代表 zipline 已集成 EasyClaw。
zipline 是 Quantopian 开发的 Python 风格算法交易库,一个事件驱动的回测系统,用于用历史数据验证交易策略。
原版 quantopian/zipline 随 Quantopian 关闭(2020 年末)停止维护,最后版本 1.4.1;社区维护版 zipline-reloaded 仍在更新(v3.1.1,2025-07),支持较新 Python。
需要。zipline 是库而非软件,需要用 Python 编写 initialize()/handle_data() 策略、准备数据并运行脚本。
无已证实集成。zipline 与 EasyClaw 没有官方集成证据;EasyClaw 内置的是量化研究类 Skill(如量化分析、财经数据、选股等),两者是独立路线。
回测结果仅代表历史表现,涉及数据、参数与市场环境假设,不构成收益保证或投资建议。