首页 / 资讯中心 / 文章详情

Zipline 环境搭建完整指南:3 步跑通第一个策略回测

Zipline 环境搭建完整指南:3 步跑通第一个策略回测 ★ FEATURED ARTICLE
Zipline 环境搭建完整指南3 步跑通第一个策略回测【免费下载链接】ziplineZipline, a Pythonic Algorithmic Trading Library项目地址: https://gitcode.com/gh_mirrors/zi/zipline执行pip install zipline卡在一串 C 扩展编译错误上是很多人放弃 Zipline 的第一现场——它自带 C 扩展系统还缺 LAPACK 和 CPython 头文件。Zipline 是用 Python 编写的事件驱动量化回测框架本文把 Zipline 环境搭建到跑通一次真实回测的路线一次走完。三种安装路线为什么 conda 是主路径这一步先解决选哪条路的问题。官方 安装说明 里 pip 和 conda 都给了但两者难度不一样pip 安装需要先在本机装好 LAPACK 线性代数库和 CPython 头文件再现场编译 C 扩展conda 则把 numpy、scipy 这类带二进制依赖的包一并管理不需要第二套工具。路线适用场景核心命令备注conda-forge新手与日常使用Windows 首选conda install -c conda-forge zipline1.4.0 仅提供 Python 3.6 包pip已有 Anaconda 环境或需锁定版本装系统依赖后pip install zipline需本机编译 C 扩展Docker / 源码要用最新源码或可复现环境docker build -f Dockerfile -t zipline .源码路线需先装编译工具链下面只走 conda 这一条主路径从建环境到跑通回测不分叉。conda 主路径从建环境到跑通回测 4 步第一步是准备隔离环境并安装。官方文档专门提醒不要把 Zipline 装进全局 Python隔离环境能避免与现有库互相污染。三条命令完成环境准备与安装conda create -n env_zipline python3.6 conda activate env_zipline conda install -c conda-forge zipline注意conda-forge 目前只有 zipline 1.4.0 且面向 Python 3.6 的包。环境里 Python 版本不对时安装会找不到包或直接装进旧版本需要 2.7 / 3.5 等旧版本时包在 Quantopian 频道已停止更新或走源码路线。环境装好后先别急着写策略先灌数据。回测必须基于本地数据 bundle 运行默认 bundle 是quantopian-quandlQuandl WIKI 数据集含日线价格、拆股、分红下载只要几秒zipline ingest zipline bundleszipline bundles会列出已有 bundle 及其摄取时间看到quantopian-quandl后面跟着日期戳说明数据就位。最后跑仓库自带的示例策略 buyapple.py——它每天都在买入 10 股 AAPL 并记录价格足够验证整条链路zipline run -f zipline/examples/buyapple.py --start 2016-1-1 --end 2018-1-1 -o perf.pickle --no-benchmark参数含义-f指定策略文件--start/--end是回测区间-o把绩效 DataFrame 存成 pickle--no-benchmark表示不设基准。[示例策略目录](https://link.gitcode.com/i/3a3123a097a9c77fd3dcecc656f7ee52)里还有 buy_and_hold、双均线、动量 pipeline 等可以直接替换-f的现成策略。回测结果自检跑成功的样子这一步解决怎么确认环境真的通了。命令正常结束时控制台会出现这样的日志Performance: Simulated 503 trading days out of 503.Performance: first open: 2016-01-04 ...与last close: 2017-12-29 ...看到交易日完整模拟完毕说明数据、日历、撮合逻辑全链路正常。接着读一下绩效文件自检输出应包含ending_value、algorithm_period_return、alpha等列python -c import pandas as pd; print(pd.read_pickle(perf.pickle).head())跑完 buyapple 后用 matplotlib 画一下绩效数据得到的就是教程里这种组合价值曲线叠加 AAPL 价格走势的回测结果图 换成双均线策略再跑一次图里会多出 short_mavg / long_mavg 两条均线与信号点形态类似卡住时先看这 3 个报错这一步把最容易卡住的三类报错集中处理现象、原因、修复命令各占一行对号入座即可。1.pip install zipline编译 C 扩展失败报 LAPACK / 头文件缺失原因系统依赖没装齐。Debian 系执行sudo apt-get install libatlas-base-dev python-dev gfortran pkg-config libfreetype6-dev hdf5-toolsmacOS 执行brew install freetype pkg-config gcc openssl hdf5嫌麻烦就直接切回 conda 路线。完整依赖清单见 etc/requirements_build.in。2.conda activate env_zipline提示找不到命令原因conda 版本低于 4.6。Linux / macOS 上改用source activate env_ziplineWindows 上直接activate env_zipline。3. conda 装不到 zipline 或装进来版本很旧原因conda-forge 对 Python 版本有硬性约束见上文注意块。按python3.6重建环境重装即可不要试图在 3.7 以上环境里硬装。环境配置经验镜像、版本约束与数据目录这一步汇总不报错但拖慢你的环境经验。镜像加速国内网络下建议给 conda 与 pip 都换到国内镜像源conda install和zipline ingest的下载速度差异很明显。版本约束别乱动Zipline 1.4.x 对依赖锁得很紧比如 pandas 被限制在 0.18.1 到 0.22 之间见 etc/requirements.in同一环境里不要自行动手升级 pandas、numpy。数据目录会膨胀每次 ingest 都在~/.zipline/data/bundle下新建一个按时间戳命名的目录。只保留最近两次摄取执行zipline clean --keep-last 2即可。备选路线速查源码路线先克隆仓库git clone https://gitcode.com/gh_mirrors/zi/zipline建好 virtualenv 后运行仓库自带的 etc/dev-install 脚本一键装好锁定版本的全部依赖Docker 路线构建Dockerfile后启动容器Jupyter 端口为 8888详见 Dockerfile 头部注释里的完整运行命令。提示默认 bundle 的数据已经停止更新只适合跑通流程。要回测自己的数据bundles 文档 讲了如何用csvdir注册本地 CSV 行情数据这是从玩样例到跑自己的数据的必经一步。回测跑通了perf DataFrame 里已经是一套完整的绩效与风险指标。下一步读 入门教程把 buyapple 换成你自己的initialize和handle_dataZipline 环境搭建就算真正落地。【免费下载链接】ziplineZipline, a Pythonic Algorithmic Trading Library项目地址: https://gitcode.com/gh_mirrors/zi/zipline创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站