Zipline 3.0 中文文档(一)(1)

简介: Zipline 3.0 中文文档(一)

回测您的交易策略

原文:zipline.ml4trading.io/index.html

Zipline 是一个用于回测的 Pythonic 事件驱动系统,由众包投资基金 Quantopian开发和使用,作为回测和实时交易引擎。自 2020 年底关闭以来,托管这些文档的域名已过期。该库在Stefan Jansen所著的《机器学习算法交易》一书中被广泛使用,他正努力保持该库的更新,并使其对读者和更广泛的 Python 算法交易社区可用。

功能

  • 易用性: Zipline 试图不干扰您,以便您可以专注于算法开发。下面是一个代码示例。
  • 即用型: 许多常见的统计数据,如移动平均和线性回归,可以直接从用户编写的算法中访问。
  • PyData 集成: 历史数据的输入和性能统计的输出基于 Pandas DataFrames,以便与现有的 PyData 生态系统良好集成。
  • 统计和机器学习库: 您可以使用 matplotlib、scipy、statsmodels 和 scikit-learn 等库来支持开发、分析和可视化最先进的交易系统。

注意: 版本 3.0 更新了 Zipline 以使用pandas >= 2.0 和SQLAlchemy > 2.0。这些是重大版本更新,可能会破坏现有代码;请查看链接的文档。

注意: 版本 2.4 更新了 Zipline 以使用exchange_calendars >= 4.2。这是一个重大版本更新,可能会破坏现有代码(我们已尽力避免,但不能保证)。请在此处查看更改:github.com/gerrymanoim/exchange_calendars/issues/61

安装

Zipline 支持 Python >= 3.8,并与当前版本的NumFOCUS相关库兼容,包括pandasscikit-learn

使用pip

如果您的系统满足安装说明中描述的先决条件,您可以使用pip通过运行以下命令来安装 Zipline:

pip  install  zipline-reloaded 

使用conda

如果您使用的是Anacondaminiconda发行版,您可以从conda-forge频道这样安装zipline-reloaded

conda  install  -c  conda-forge  zipline-reloaded 

您还可以通过在.condarc中列出它来启用 conda-forge

如果您在安装zipline-reloaded时与其他包一起安装并遇到冲突错误,请考虑使用mamba代替。

如需更详细的安装说明,请参阅文档的安装部分,以及相应的conda-forge 网站

快速入门

请参阅我们的入门教程

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

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  -b  quandl
$  zipline  run  -f  dual_moving_average.py  --start  2014-1-1  --end  2018-1-1  -o  dma.pickle  --no-benchmark 

这将下载来自Quandl(自收购后由 NASDAQ 托管)的资产定价数据,并在指定的时间范围内通过算法流式传输。然后,将生成的性能 DataFrame 保存为dma.pickle,您可以从 Python 加载并分析它。

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

有问题、建议或发现错误?

如果您发现错误或对库有其他问题,请随时打开一个问题并填写模板。

  • 安装
  • 教程
  • 数据
  • 日历
  • 指标
  • 开发
  • API
  • 版本

功能

  • **易用性:**Zipline 试图不干扰您,以便您可以专注于算法开发。请参见下面的代码示例。
  • **内置功能:**许多常见统计方法,如移动平均和线性回归,都可以在用户编写的算法中直接访问。
  • **PyData 集成:**历史数据的输入和性能统计的输出基于 Pandas DataFrames,以便与现有的 PyData 生态系统很好地集成。
  • **统计和机器学习库:**您可以使用 matplotlib、scipy、statsmodels 和 scikit-learn 等库来支持开发、分析和可视化最先进的交易系统。

**注意:**版本 3.0 更新了 Zipline 以使用pandas >= 2.0 和SQLAlchemy > 2.0。这些都是重大版本更新,可能会破坏现有代码;请查看链接的文档。

注意: 2.4 版本更新了 Zipline,使其使用 exchange_calendars >= 4.2。这是一个重大版本更新,可能会破坏现有代码(我们已尽力避免,但不能保证)。请在此处查看更改内容:这里

安装

Zipline 支持 Python >= 3.8,并与当前版本的NumFOCUS相关库兼容,包括pandasscikit-learn

使用pip

如果您的系统满足安装说明中描述的先决条件,您可以通过运行以下命令使用pip安装 Zipline:

pip  install  zipline-reloaded 

使用conda

如果您使用的是Anacondaminiconda发行版,您可以从conda-forge频道这样安装zipline-reloaded

conda  install  -c  conda-forge  zipline-reloaded 

您还可以通过在您的.condarc中列出它来启用 conda-forge

如果您在安装zipline-reloaded时与其他包一起安装并遇到冲突错误,请考虑改用mamba

请参阅文档的安装部分,了解更详细的说明以及相应的conda-forge 站点

使用pip

如果您的系统满足安装说明中描述的先决条件,您可以通过运行以下命令使用pip安装 Zipline:

pip  install  zipline-reloaded 

使用conda

如果您使用的是Anacondaminiconda发行版,您可以从conda-forge频道这样安装zipline-reloaded

conda  install  -c  conda-forge  zipline-reloaded 

您还可以通过在您的.condarc中列出它来启用 conda-forge

如果您在安装zipline-reloaded时与其他包一起安装并遇到冲突错误,请考虑改用mamba

请参阅文档的安装部分,了解更详细的说明以及相应的conda-forge 站点

快速入门

请参阅我们的入门教程

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

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  -b  quandl
$  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目录中找到其他示例。

有问题、建议、错误吗?

如果您发现错误或有关于库的其他问题,请随时打开一个问题并填写模板。

  • 安装
  • 教程
  • 数据
  • 日历
  • 指标
  • 开发
  • API
  • 发布

安装

原文:zipline.ml4trading.io/install.html

您可以使用pip,Python 包安装程序,或conda,跨 Windows、macOS 和 Linux 的包和环境管理系统来安装 Zipline。如果您在安装 zipline-reloaded 的同时安装其他包并遇到冲突错误,请考虑使用mamba代替。

Zipline 支持 Python 3.8、3.9、3.10 和 3.11。要安装和并行使用不同版本的 Python 以及创建虚拟环境,您可能希望使用pyenv

使用pip安装

通过pip安装 Zipline 比一般的 Python 包稍微复杂一些。

增加复杂性的原因有两个:

  1. Zipline 提供了几个需要访问 CPython C API 的 C 扩展。为了构建这些 C 扩展,pip需要访问您的 Python 安装的 CPython 头文件。
  2. Zipline 依赖于NumPy,这是 Python 中用于数值数组计算的核心库。而 NumPy 又依赖于LAPACK线性代数例程。

由于 LAPACK 和 CPython 头文件是非 Python 依赖项,因此安装它们的方法因平台而异。如果您更愿意使用单一工具来安装 Python 和非 Python 依赖项,或者如果您已经在使用Anaconda作为您的 Python 发行版,您可以直接跳到:ref: conda 部分。

一旦您安装了必要的额外依赖项(请参阅下面针对您特定平台的说明),您应该能够简单地运行(最好在激活的虚拟环境中):

$  pip  install  zipline-reloaded 

如果您使用 Python 进行除 Zipline 之外的任何操作,我们强烈建议您在virtualenv中安装。《Python 编程指南》提供了一个关于 virtualenv 的优秀教程

GNU/Linux

依赖项

Debian 衍生的 Linux 发行版上,您可以通过运行以下命令从apt获取所有必要的二进制依赖项:

$  sudo  apt  install  libatlas-base-dev  python-dev  gfortran  pkg-config  libfreetype6-dev  hdf5-tools 

在最近的RHEL 衍生Linux 发行版(例如 Fedora)上,以下步骤应该足以获取必要的额外依赖项:

$  sudo  dnf  install  atlas-devel  gcc-c++  gcc-gfortran  libgfortran  python-devel  redhat-rpm-config  hdf5 

Arch Linux上,您可以通过pacman获取额外的依赖项:

$  pacman  -S  lapack  gcc  gcc-fortran  pkg-config  hdf5 

还有适用于安装ta-lib的 AUR 包。Python 3 也可以通过以下方式安装:

$  pacman  -S  python3 
编译 TA-Lib

你还需要编译TA-Lib库以进行技术分析,以便其头文件可用。

你可以按照以下步骤进行操作:

$  wget  http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
$  tar  -xzf  ta-lib-0.4.0-src.tar.gz
$  cd  ta-lib/
$  sudo  ./configure
$  sudo  make
$  sudo  make  install 

这将允许你使用pip安装 Python 包装器,正如二进制轮子所预期的那样。

macOS

macOS 随附的 Python 版本通常已过时,并且由于操作系统直接使用它而存在一些怪癖。出于这些原因,许多开发人员选择安装并使用单独的 Python 安装。

Python 搭车指南提供了关于在 macOS 上安装 Python的优秀指南,该指南解释了如何使用Homebrew管理器安装 Python。或者,你也可以使用pyenv

假设你已经使用brew安装了 Python,那么你可能还需要以下包:

$  brew  install  freetype  pkg-config  gcc  openssl  hdf5  ta-lib 

Windows

对于 Windows,安装 Zipline 最简单且最支持的方法是使用conda

使用conda安装

另一种安装 Zipline 的方法是通过conda包管理器,它是Anaconda发行版的一部分。或者,你可以使用相关但更轻量级的MinicondaMiniforge安装程序。

使用 Conda 而不是pip的主要优点是,conda原生理解像numpyscipy这样的包的复杂二进制依赖关系。这意味着conda可以安装 Zipline 及其依赖项,而不需要使用第二个工具来获取 Zipline 的非 Python 依赖项。

有关如何安装conda的说明,请参阅Conda 安装文档

一旦设置了conda,你就可以从conda-forge频道安装 Zipline。

请参阅此处了解最新的安装详细信息。

管理conda环境

建议在隔离的conda环境中安装 Zipline。在conda环境中安装 Zipline 不会干扰你的默认 Python 部署或 site-packages,这将防止与你的全局库发生任何可能的冲突。有关conda环境的更多信息,请参阅Conda 用户指南

假设已经设置了conda,你可以创建一个conda环境:

$  conda  create  -n  env_zipline  python=3.10 

现在你已经设置了一个名为env_zipline的隔离环境,这是一个类似沙盒的结构,用于安装 Zipline。然后你应该使用以下命令激活 conda 环境:

$  conda  activate  env_zipline 

你可以通过运行以下命令来安装 Zipline:

(env_zipline)  $  conda  install  -c  ml4t  zipline-reloaded 

要停用conda环境:

(env_zipline)  $  conda  deactivate 

注意

conda activateconda deactivate 仅适用于 conda 4.6 及更高版本。对于 conda 4.6 之前的版本,请运行:

  • Windows:activatedeactivate

  • Linux 和 macOS:source activatesource deactivate

使用 pip 安装

通过 pip 安装 Zipline 比一般的 Python 包稍微复杂一些。

增加复杂性的原因有两个:

  1. Zipline 提供了多个需要访问 CPython C API 的 C 扩展。为了构建这些 C 扩展,pip 需要访问您 Python 安装的 CPython 头文件。
  2. Zipline 依赖于 NumPy,这是 Python 中用于数值数组计算的核心库。NumPy 反过来又依赖于 LAPACK 线性代数例程。

由于 LAPACK 和 CPython 头文件是非 Python 依赖项,因此安装它们的方法因平台而异。如果您更愿意使用单个工具来安装 Python 和非 Python 依赖项,或者如果您已经在使用 Anaconda 作为您的 Python 发行版,则可以跳至 :ref: conda 部分。

一旦您安装了必要的额外依赖项(请参阅下面的特定平台),您应该能够简单地运行(最好在激活的虚拟环境中):

$  pip  install  zipline-reloaded 

如果您使用 Python 进行除 Zipline 之外的任何操作,我们强烈建议您在 virtualenv 中安装。《Python 漫游者指南》提供了一个关于 virtualenv 的优秀教程

GNU/Linux

依赖项

Debian 派生的 Linux 发行版上,您可以通过运行以下命令从 apt 获取所有必要的二进制依赖项:

$  sudo  apt  install  libatlas-base-dev  python-dev  gfortran  pkg-config  libfreetype6-dev  hdf5-tools 

在最近的 RHEL 派生的 Linux 发行版(例如 Fedora)上,以下内容应该足以获取必要的额外依赖项:

$  sudo  dnf  install  atlas-devel  gcc-c++  gcc-gfortran  libgfortran  python-devel  redhat-rpm-config  hdf5 

Arch Linux 上,您可以通过 pacman 获取额外的依赖项:

$  pacman  -S  lapack  gcc  gcc-fortran  pkg-config  hdf5 

也有 AUR 包可用于安装 ta-lib。Python 3 也可以通过以下方式安装:

$  pacman  -S  python3 
编译 TA-Lib

您还需要编译 TA-Lib 库以进行技术分析,以便其头文件可用。

您可以按照以下步骤操作:

$  wget  http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
$  tar  -xzf  ta-lib-0.4.0-src.tar.gz
$  cd  ta-lib/
$  sudo  ./configure
$  sudo  make
$  sudo  make  install 

这将允许您按照二进制轮子的预期使用 pip 安装 Python 包装器。

macOS

macOS 随附的 Python 版本通常已过时,并且由于操作系统直接使用它而存在一些特殊情况。出于这些原因,许多开发者选择安装并使用单独的 Python 安装。

Python 漫游指南提供了在 macOS 上安装 Python的优秀指南,解释了如何使用Homebrew管理器安装 Python。或者,您可以使用pyenv

假设您已经使用brew安装了 Python,您可能还需要以下包:

$  brew  install  freetype  pkg-config  gcc  openssl  hdf5  ta-lib 

Windows

对于 Windows,安装 Zipline 最简单且最支持的方法是使用conda

GNU/Linux

依赖项

Debian 衍生的 Linux 发行版上,您可以通过运行以下命令从apt获取所有必要的二进制依赖项:

$  sudo  apt  install  libatlas-base-dev  python-dev  gfortran  pkg-config  libfreetype6-dev  hdf5-tools 

在最近的RHEL 衍生的 Linux 发行版(例如 Fedora)上,以下步骤应该足以获取必要的额外依赖项:

$  sudo  dnf  install  atlas-devel  gcc-c++  gcc-gfortran  libgfortran  python-devel  redhat-rpm-config  hdf5 

Arch Linux上,您可以通过pacman获取额外的依赖项:

$  pacman  -S  lapack  gcc  gcc-fortran  pkg-config  hdf5 

也有 AUR 包可用于安装ta-lib。Python 3 也可以通过以下方式安装:

$  pacman  -S  python3 
编译 TA-Lib

您还需要编译TA-Lib技术分析库,以便其头文件可用。

您可以按照以下步骤操作:

$  wget  http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
$  tar  -xzf  ta-lib-0.4.0-src.tar.gz
$  cd  ta-lib/
$  sudo  ./configure
$  sudo  make
$  sudo  make  install 

这将允许您按照二进制轮子的预期使用pip安装 Python 包装器。

Zipline 3.0 中文文档(一)(2)https://developer.aliyun.com/article/1523876

相关文章
|
4月前
|
SQL 缓存 API
SqlAlchemy 2.0 中文文档(八十)(4)
SqlAlchemy 2.0 中文文档(八十)
32 0
|
6月前
|
算法 Linux iOS开发
Zipline 3.0 中文文档(一)(2)
Zipline 3.0 中文文档(一)
202 7
|
6月前
|
存储 算法 Shell
Zipline 3.0 中文文档(一)(3)
Zipline 3.0 中文文档(一)
158 6
|
6月前
|
算法 安全 API
Zipline 3.0 中文文档(二)(2)
Zipline 3.0 中文文档(二)
84 3
|
6月前
|
算法 IDE API
Zipline 3.0 中文文档(一)(4)
Zipline 3.0 中文文档(一)
90 3
|
6月前
|
算法 API 索引
Zipline 3.0 中文文档(二)(5)
Zipline 3.0 中文文档(二)
75 2
|
4月前
|
自然语言处理 PyTorch 算法框架/工具
Transformers 4.37 中文文档(三十三)4-37-中文文档-三十三-(4)
Transformers 4.37 中文文档(三十三)4-37-中文文档-三十三-
26 0
|
4月前
|
自然语言处理 PyTorch API
Transformers 4.37 中文文档(三十三)4-37-中文文档-三十三-(1)
Transformers 4.37 中文文档(三十三)4-37-中文文档-三十三-
44 0
|
4月前
|
自然语言处理 TensorFlow 算法框架/工具
Transformers 4.37 中文文档(三十三)4-37-中文文档-三十三-(3)
Transformers 4.37 中文文档(三十三)4-37-中文文档-三十三-
29 0
|
4月前
|
自然语言处理 PyTorch 算法框架/工具
Transformers 4.37 中文文档(三十三)4-37-中文文档-三十三-(2)
Transformers 4.37 中文文档(三十三)4-37-中文文档-三十三-
40 0