跳转到主要内容

金融算法的回测工具。

项目描述

Zipline

Gitter pypi version status pypi pyversion status travis status appveyor status Coverage Status

Zipline是一个Python算法交易库。它是一个事件驱动的回测系统。Zipline目前作为回测和实时交易引擎在生产中使用,为Quantopian提供支持——这是一个免费、以社区为中心、托管的平台,用于构建和执行交易策略。Quantopian还为专业人士提供包括Zipline、Alphalens、Pyfolio、FactSet数据和更多内容的完全托管服务

特性

  • 易用性: Zipline试图让路,以便您能专注于算法开发。请参阅下面的代码示例。

  • “内置电池”:许多常用统计信息,如移动平均和线性回归,可以从用户编写的算法中直接访问。

  • PyData集成:历史数据的输入和性能统计数据的输出基于Pandas DataFrames,以便很好地集成到现有的PyData生态系统中。

  • 统计和机器学习库:您可以使用matplotlib、scipy、statsmodels和sklearn等库来支持最先进交易系统的开发、分析和可视化。

安装

当前Zipline支持Python 2.7、3.5和3.6版本,可以通过pip或conda进行安装。

注意:安装Zipline比安装普通的Python包稍微复杂一些。请参阅完整的Zipline安装文档以获取详细说明。

对于开发安装(用于开发Zipline本身),创建并激活一个虚拟环境,然后运行etc/dev-install脚本。

快速入门

查看我们的入门教程

以下代码实现了一个简单的双移动平均算法。

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)

然后您可以使用Zipline CLI运行此算法。首先,您必须下载一些示例定价和资产数据

$ zipline ingest
$ zipline run -f dual_moving_average.py --start 2014-1-1 --end 2018-1-1 -o dma.pickle --no-benchmark

这将下载来自Quandl的资产定价数据,并在指定的时间范围内通过算法进行流式传输。然后,将生成的性能DataFrame保存到dma.pickle中,您可以在Python中加载和分析。

您可以在zipline/examples目录中找到其他示例。

有问题?

如果您发现了一个bug,请随时打开一个issue并填写issue模板。

贡献

所有贡献,包括bug报告、bug修复、文档改进、增强和想法都欢迎。有关如何设置开发环境的详细信息,请参阅我们的开发指南

如果您想开始使用Zipline代码库,请转到GitHub issues标签,并开始查看有趣的issue。有时会有标记为入门友好帮助所需的issue。

您可以在邮件列表Gitter上提问。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

zipline-1.4.1.tar.gz (5.4 MB 查看哈希)

上传时间:

由以下支持