@_zheergen: 卧槽!Quantopian 倒闭了,但它的回测引擎被《Machine Learning for Trading》的作者救活了—zipline-reloaded! Zipline 曾是全球最强大的 Python 回测框架,Quantopia…

X AI KOLs Timeline 工具

摘要

zipline-reloaded 是 Quantopian 关闭后由 Stefan Jansen 维护的 Zipline 回测框架延续版,支持 Python 3.11+ 和 pandas 2.0+,保留事件驱动架构和 Pipeline API,适合因子选股与机器学习策略回测。

卧槽!Quantopian 倒闭了,但它的回测引擎被《Machine Learning for Trading》的作者救活了—zipline-reloaded! Zipline 曾是全球最强大的 Python 回测框架,Quantopian 关站后 Stefan Jansen 接手维护,升级到 Python 3.11+、pandas 2.0+,pipeline API 因子计算、data bundle 数据管理、事件驱动引擎全部保留。 核心特点如下: 事件驱动回测架构,逻辑清晰 与 Pandas 深度集成,方便处理数据 支持常见技术指标和统计分析 可配合 scikit-learn、statsmodels 等做机器学习策略 兼容较新的 Python 和依赖版本 有完整文档和示例,适合学习和研究 以前 Zipline 装不上:Python 版本不对 → 依赖冲突 → 放弃了。现在 zipline-reloaded pip install 一行搞定。 做因子选股 + 回测的,zipline-reloaded + Pyfolio 是最接近 Quantopian 体验的组合。 https://github.com/stefan-jansen/zipline-reloaded…
查看原文
查看缓存全文

缓存时间: 2026/08/09 01:12

卧槽!Quantopian 倒闭了,但它的回测引擎被《Machine Learning for Trading》的作者救活了—zipline-reloaded!

Zipline 曾是全球最强大的 Python 回测框架,Quantopian 关站后 Stefan Jansen 接手维护,升级到 Python 3.11+、pandas 2.0+,pipeline API 因子计算、data bundle 数据管理、事件驱动引擎全部保留。

核心特点如下:

事件驱动回测架构,逻辑清晰 与 Pandas 深度集成,方便处理数据 支持常见技术指标和统计分析 可配合 scikit-learn、statsmodels 等做机器学习策略 兼容较新的 Python 和依赖版本 有完整文档和示例,适合学习和研究

以前 Zipline 装不上:Python 版本不对 → 依赖冲突 → 放弃了。现在 zipline-reloaded pip install 一行搞定。

做因子选股 + 回测的,zipline-reloaded + Pyfolio 是最接近 Quantopian 体验的组合。

https://github.com/stefan-jansen/zipline-reloaded…


stefan-jansen/zipline-reloaded

Source: https://github.com/stefan-jansen/zipline-reloaded

Backtest your Trading Strategies

Version InfoPython Anaconda-Server Badge PyPI Anaconda-Server Badge
Test StatusCI Tests PyPI codecov
CommunityDiscourse ML4T Twitter

Zipline is a Pythonic event-driven system for backtesting, developed and used as the backtesting and live-trading engine by crowd-sourced investment fund Quantopian. Since it closed late 2020, the domain that had hosted these docs expired. The library is used extensively in the book Machine Larning for Algorithmic Trading by Stefan Jansen who is trying to keep the library up to date and available to his readers and the wider Python algotrading community.

Features

  • Ease of Use: Zipline tries to get out of your way so that you can focus on algorithm development. See below for a code example.
  • Batteries Included: many common statistics like moving average and linear regression can be readily accessed from within a user-written algorithm.
  • PyData Integration: Input of historical data and output of performance statistics are based on Pandas DataFrames to integrate nicely into the existing PyData ecosystem.
  • Statistics and Machine Learning Libraries: You can use libraries like matplotlib, scipy, statsmodels, and scikit-klearn to support development, analysis, and visualization of state-of-the-art trading systems.

Note: Release 3.05 makes Zipline compatible with Numpy 2.0, which requires Pandas 2.2.2 or higher. If you are using an older version of Pandas, you will need to upgrade it. Other packages may also still take more time to catch up with the latest Numpy release.

Note: Release 3.0 updates Zipline to use pandas >= 2.0 and SQLAlchemy > 2.0. These are major version updates that may break existing code; please review the linked docs.

Note: Release 2.4 updates Zipline to use exchange_calendars >= 4.2. This is a major version update and may break existing code (which we have tried to avoid but cannot guarantee). Please review the changes here.

Installation

Zipline supports Python >= 3.9 and is compatible with current versions of the relevant NumFOCUS libraries, including pandas and scikit-learn.

Using pip

If your system meets the pre-requisites described in the installation instructions, you can install Zipline using pip by running:

pip install zipline-reloaded

Using conda

If you are using the Anaconda or miniconda distributions, you install zipline-reloaded from the channel conda-forge like so:

conda install -c conda-forge zipline-reloaded

You can also enable conda-forge by listing it in your .condarc.

In case you are installing zipline-reloaded alongside other packages and encounter conflict errors, consider using mamba instead.

See the installation section of the docs for more detailed instructions and the corresponding conda-forge site.

Quickstart

See our getting started tutorial.

The following code implements a simple dual moving average algorithm.

from zipline.api import order_target, record, symbol


def initialize(context):
    context.i = 0
    context.asset = symbol('AAPL')


def handle_data(context, data):
    # Skip first 300 days to get full windows
    context.i += 1
    if context.i < 300:
        return

    # Compute averages
    # data.history() has to be called with the same params
    # from above and returns a pandas dataframe.
    short_mavg = data.history(context.asset, 'price', bar_count=100, frequency="1d").mean()
    long_mavg = data.history(context.asset, 'price', bar_count=300, frequency="1d").mean()

    # Trading logic
    if short_mavg > long_mavg:
        # order_target orders as many shares as needed to
        # achieve the desired number of shares.
        order_target(context.asset, 100)
    elif short_mavg < long_mavg:
        order_target(context.asset, 0)

    # Save values for later inspection
    record(AAPL=data.current(context.asset, 'price'),
           short_mavg=short_mavg,
           long_mavg=long_mavg)

You can then run this algorithm using the Zipline CLI. But first, you need to download some market data with historical prices and trading volumes.

This will download asset pricing data from NASDAQ (formerly Quandl).

This requires an API key, which you can get for free by signing up at NASDAQ Data Link.

$ export QUANDL_API_KEY="your_key_here"
$ zipline ingest -b quandl

The following will

  • stream the through the algorithm over the specified time range.
  • save the resulting performance DataFrame as dma.pickle, which you can load and analyze from Python using, e.g., pyfolio-reloaded.
$ zipline run -f dual_moving_average.py --start 2014-1-1 --end 2018-1-1 -o dma.pickle --no-benchmark

You can find other examples in the zipline/examples directory.

Questions, suggestions, bugs?

If you find a bug or have other questions about the library, feel free to open an issue and fill out the template.

爱吃折耳根的Ace (@_zheergen): 强烈推荐给想系统入门量化交易的朋友。

这套《Algorithmic Trading Using Python》全长 4 小时 33 分钟,是目前比较完整的 Python 量化从基础到实战课程之一。

为什么值得看?

最大特点是没有刻意剪掉错误,而是完整展示真实开发过程:API 报错、数据缺失、逻辑调试,直到策略最终跑通。

相似文章

@AYi_AInotes: 卧槽,阿里把内部用了多年的向量数据库直接开源了,Pinecone每月70刀的能力,它pip一行免费就能用,十亿向量毫秒级还不用单独起服务 以后做RAG和AI搜索的,不用再每月给Pinecone交70美金了! 阿里内部跑了多年的向量数据库开…

X AI KOLs Timeline

阿里开源了内部使用多年的向量数据库Zvec,支持十亿向量毫秒级检索,无需单独服务即可嵌入应用进程,完全免费,替代Pinecone等付费服务。

@MaxForAI: http://Z.ai和清华这篇ZCube,做Infra的家人们值得看下。 很多人聊AI infra,第一反应还是GPU、显存、量化、推理框架。 但到长上下文和Prefill-Decode分离之后,网络已经不再是机房里的「配角」了。 每一…

X AI KOLs Timeline

ZCube是一种新的网络架构,通过打平拓扑并混合单/多轨接入,优化了长上下文和PD分离场景下的KV Cache传输,在GLM-5.1生产集群中实现了交换机/光模块成本降低33%、GPU推理吞吐提升15%、TTFT P99下降40.6%。