win10下搭建zipline python3.5量化回测平台

  • 1、安装 Anaconda
    • 1.1 下载Anconda
    • 1.2 安装
    • 1.3 Anaconda Prompt
    • 1.4 检查安装
    • 1.5 创建python3.5环境
  • 2、安装zipline
    • 2.1 添加下载频道
    • 2.2 安装zipline
  • 3、安装PyCharm
    • 3.1 下载PyCharm(Windows)
    • 3.2 安装PyCharm
    • 3.3 配置Anaconda
  • 4、 使用zipline
    • 4.1 创建工程
    • 4.2 增加代码
    • 4.3 ingest数据
      • 4.3.1 创建cvsdir目录
      • 4.3.2 日线数据
      • 4.3.3 extension.py文件
      • 4.3.4 ingest csv文件
      • 4.3.5 查看可用Bundles
  • 5 运行zipline
  • 6 执行zipline示例策略
    • 6.1 安装matplotlib
    • 6.2 运行buyapple.py策略

1、安装 Anaconda

1.1 下载Anconda

我们在 Anaconda 的官网下载windows环境Anaconda3-5.2.0版本的64位安装包,对应conda版本是4.5.4。为什么下载这个版本,是因为zipline对环境的要求比较严格,如果版本不匹配,会出现不少问题。
官网下载地址:https://repo.anaconda.com/archive/Anaconda3-5.2.0-Windows-x86_64.exe,对应的conda版本4.5.4,python版本3.5.5。
清华镜像下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.2.0-Windows-x86_64.exe
说明:anaconda2对应的是python 2.x版本,anaconda3对应python 3.x版本。

1.2 安装







1.3 Anaconda Prompt

安装后会有一个Anaconda Prompt菜单项,运行类似于windows的终端操作,可以输入命令行。

1.4 检查安装

我们在Anaconda Prompt中检查conda信息


(base) C:\Users\lzc>conda infoactive environment : baseactive env location : d:\Anaconda3shell level : 1user config file : C:\Users\lzc\.condarcpopulated config files : C:\Users\lzc\.condarcconda version : 4.5.4conda-build version : 3.10.5python version : 3.6.5.final.0base environment : d:\Anaconda3  (writable)channel URLs : https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro/win-64https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro/noarchhttps://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/noarchhttps://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/win-64https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/noarchhttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarchhttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarchhttps://repo.anaconda.com/pkgs/main/win-64https://repo.anaconda.com/pkgs/main/noarchhttps://repo.anaconda.com/pkgs/free/win-64https://repo.anaconda.com/pkgs/free/noarchhttps://repo.anaconda.com/pkgs/r/win-64https://repo.anaconda.com/pkgs/r/noarchhttps://repo.anaconda.com/pkgs/pro/win-64https://repo.anaconda.com/pkgs/pro/noarchhttps://repo.anaconda.com/pkgs/msys2/win-64https://repo.anaconda.com/pkgs/msys2/noarchpackage cache : d:\Anaconda3\pkgsC:\Users\lzc\AppData\Local\conda\conda\pkgsenvs directories : d:\Anaconda3\envsC:\Users\lzc\AppData\Local\conda\conda\envsC:\Users\lzc\.conda\envsplatform : win-64user-agent : conda/4.5.4 requests/2.18.4 CPython/3.6.5 Windows/10 Windows/10.0.18362administrator : Falsenetrc file : Noneoffline mode : False

注意:检查conda版本为4.5.4,Python版本为3.6.5,用户配置目录为C:\Users\lzc\。请记住用户配置目录,后面会需要使用。

1.5 创建python3.5环境

首先,在Anaconda prompt中创建python3.5环境:

conda create -n env_zipline python=3.5

然后,在Anaconda prompt中激活刚才新添加的env_zipline环境:

activate env_zipline

最后,我们在Anaconda prompt中来检查是否切换成功:

python --version

2、安装zipline

2.1 添加下载频道

为防止安装时下载包比较慢的话,或因为网络出现下载错误时,我们先增加清华镜像,再继续安装。
安装下载错误描述:

CondaError: Downloaded bytes did not match Content-Length

添加清华源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro/
conda config --set show_channel_urls yes

2.2 安装zipline

conda install -c Quantopian zipline

检查是否安装成功

zipline run --help

输出响应信息,表示我们的安装成功了。

(env_zipline) C:\Users\lzc>zipline run --help
Usage: zipline run [OPTIONS]Run a backtest for the given algorithm.Options:-f, --algofile FILENAME         The file that contains the algorithm to run.-t, --algotext TEXT             The algorithm script to run.-D, --define TEXT               Define a name to be bound in the namespacebefore executing the algotext. For example

3、安装PyCharm

PyCharm 是一款功能强大的 Python 编辑器,具有跨平台性。我们通过PyCharm来使用zipline。现在,我们来看下PyCharm 在 Windows下是如何安装的。

3.1 下载PyCharm(Windows)

首先,我们下载PyCharm,这是 PyCharm 的下载地址:http://www.jetbrains.com/pycharm/download。professional 是专业版,需要授权使用,community 是社区版,可以免费使用的。

3.2 安装PyCharm

下载好后进行安装,请记住安装路径。具体安装就不展开了

3.3 配置Anaconda





4、 使用zipline

我们通过PyCharm创建一个zipline来初次使用zipline。

4.1 创建工程

在PyCharm中,选择File->New Project创建一个工程pythonProject,在创建工程页面中,我们可以选择新建环境,选择使用Conda环境,Python version版本使用2.7,Conda executable选择前面我们所找到的conda所在目录,点击Create创建工程。

也可以选择使用已有环境,建设使用已有环境,点击Create创建工程。

4.2 增加代码

在工程中增加名为main.py的Python文件

打开https://www.zipline.io/,找到使用zipline的示例代码并复制到main.py文件中,我们就通过这段代码来学习使用zipline。代码如下:

from zipline.api import order_target, record, symboldef initialize(context):context.i = 0context.asset = symbol('AAPL')def handle_data(context, data):# Skip first 300 days to get full windowscontext.i += 1if 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 logicif 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 inspectionrecord(AAPL=data.current(context.asset, 'price'),short_mavg=short_mavg,long_mavg=long_mavg)

我们增加一些输出信息用来体验。

def handle_data(context, data):# Skip first 300 days to get full windowsprint ("index:%d" % context.i) # 增加输出信息context.i += 1if context.i < 300:return

4.3 ingest数据

为了使用zipline进行回测,我们要获取数据源。由于zipline支持的国外数据源需要让终端翻墙,我们从CSV文件ingest数据。
我们参考https://www.zipline.io/bundles.html

4.3.1 创建cvsdir目录

在工程中创建cvsdir目录,在目录下创建daily日线目录,在日线目录下创建AAPL的cvs文件。

4.3.2 日线数据

把示例中的数据拷贝到这个文件中,示例数据如下:

date,open,high,low,close,volume,dividend,split
2012-01-03,58.485714,58.92857,58.42857,58.747143,75555200,0.0,1.0
2012-01-04,58.57143,59.240002,58.468571,59.062859,65005500,0.0,1.0
2012-01-05,59.278572,59.792858,58.952858,59.718571,67817400,0.0,1.0
2012-01-06,59.967144,60.392857,59.888573,60.342857,79573200,0.0,1.0
2012-01-09,60.785713,61.107143,60.192856,60.247143,98506100,0.0,1.0
2012-01-10,60.844284,60.857143,60.214287,60.462856,64549100,0.0,1.0
2012-01-11,60.382858,60.407143,59.901428,60.364285,53771200,0.0,1.0

4.3.3 extension.py文件

在工程中创建extension.py文件。

把示例中的数据拷贝到这个文件中,示例数据如下:
import库

import pandas as pdfrom zipline.data.bundles import register
from zipline.data.bundles.csvdir import csvdir_equities

指定绑定数据的开始和结束时间

start_session = pd.Timestamp('2012-1-3', tz='utc')
end_session = pd.Timestamp('2012-1-11', tz='utc')

设置.csv文件所在目录并注册数据源

register('custom-csvdir-bundle',csvdir_equities(['daily'],'C:\\Users\\lzc\\PycharmProjects\\pythonProject3\\csvdir',),calendar_name='NYSE', # US equitiesstart_session=start_session,end_session=end_session
)

注意:C:\Users\lzc\PycharmProjects\pythonProject3\csvdir是我们前面放置日线文件AAPL.csv的目录。

4.3.4 ingest csv文件

我们把extension.py文件复制到用户配置目录的.zipline目录下
注意:先检查用户配置目录下是否有.zipline目录,没有先创建

mkdir C:\Users\lzc\.zipline
copy extension.py C:\Users\lzc\.zipline\extension.py

在PyCharmr的Terminal中执行ingest

zipline ingest -b custom-csvdir-bundle

4.3.5 查看可用Bundles

要查看我们可用的捆绑数据包,我们可以运行命令:

$ zipline bundles

我们可以看到我们刚才绑定的数据包:

(pythonProject3) C:\Users\lzc\PycharmProjects\pythonProject3>zipline bundles
csvdir <no ingestions>
custom-csvdir-bundle 2020-08-26 00:54:17.772000
quandl <no ingestions>
quantopian-quandl <no ingestions>

说明:Zipline默认bundle的存储路径在$ZIPLINE_ROOT/data/
这个工程对应的绑定数据存储在:
D:\anaconda2\envs\pythonProject3\Lib\site-packages\zipline\data\bundles

5 运行zipline

数据绑定好后我们就可以运行zipline来看看是否可以正常使用。

指令如下:

zipline run -f main.py --capital-base 1000 --start 2012-1-3 --end 2012-1-11 -b custom-csvdir-bundle -o dma.pickle --no-benchmark

我们看到的运行结果如下,里面有我们加的输出信息,表示zipline已经可以正常使用。

(pythonProject3) C:\Users\lzc\PycharmProjects\pythonProject3>zipline run -f main.py --capital-base 1000 --start 2012-1-3 --end 2012-1-11 -b custom-csvdir-bundle -o dma.pickle --no-benchmark
index:0
index:1
index:2
index:3
index:4
index:5
index:6
[2020-08-26 03:16:22.287000] INFO: zipline.finance.metrics.tracker: Simulated 7 trading days
first open: 2012-01-03 14:31:00+00:00
last close: 2012-01-11 21:00:00+00:00

到这时,zipline回测就可以初步使用了。

6 执行zipline示例策略

6.1 安装matplotlib

zipline示例需要matplotlib,我们通过下面的方面安装

conda install matplotlib

6.2 运行buyapple.py策略

我们现在使用csv数据文件源来运行buyapple.py策略,命令如下:

zipline run -f ./examples/buyapple.py --capital-base 1000 --start 2012-1-3 --end 2012-1-11 -b custom-csvdir-bundle -o dma.pickle --no-benchmark

zipline使用matplotlib将股价与策略的运行结果绘制出来了,结果如下:

win10下搭建zipline python3.5量化回测平台环境相关推荐

  1. 搭建系统|继承backtrader的本地量化回测平台如何玩转多股轮动策略!

    前言 一个完整的量化交易系统离不开人机交互功能的应用,特别是在回测阶段,我们需要不断更改参数因子.更换交易策略以应对当前的市场.因此创建完整的.功能键全的GUI用户界面至关重要. 市面上也出现了很多相 ...

  2. 量化回测平台|有现成的不用吗?如何利用聚宽平台回测交易策略

    导览 本文为掘金小册课程加推篇!小册还在持续加推中,敬请期待!!!目前已经加推了20节!!! 超值的43节课程!从目录就能看出来! 1-贯穿小册:Python金融数据分析实战型项目 2-前置基础:量化 ...

  3. Win10下搭建绿色版基于WAMP的PHP开发环境

    1.安装Apache 下载最新稳定版http://www.apachehaus.com/downloads/httpd-2.4.23-x64-vc11.zip: 解压到D:\Apached下: 修改D ...

  4. 掘金量化回测平台 - 1

    掘金量化平台初探 python 量化分析包括:策略研发.策略回测.仿真交易.实盘交易.实盘盘后优化. 主要想使用掘金的平台来做策略回测和仿真交易两个环节的功能. 对比了下主流的云平台JoinQuant ...

  5. 利用米筐量化回测平台实行量化炒股

    1.主要属性 2.代码 # 可以自己import我们平台支持的第三方python模块,比如pandas.numpy等. import pandas as pd import numpy as np f ...

  6. 在Win10下搭建web服务器,使用本机IP不能访问,但是使用localhos或127.0.0.1可以正常访问的解决办法...

    最近在在Win10下搭建web服务器,发现通过windows自带的浏览器win10 edge浏览器使用本机IP不能放问,但是使用localhos或127.0.0.1可以正常访问, 后来无意发现,使用w ...

  7. Win10下搭建旷视YOLOX(新一代anchor-free目标检测网络)并训练自定义CoCo格式数据集

    注意:原始的YOLOX只支持乌班图系统,因此以下所有操作均需要依赖博主自己的安装包.链接:https://pan.baidu.com/s/1CoQa8WjJ89gNfexK59Ewrw 提取码:qhi ...

  8. 1、回测平台搭建——思路

    什么是回测平台? 最简单来说,写好了一个策略,从一个txt中读取了数据,放到策略中,得到了一个最后的收益,这个程序就是一个回测平台,用回测平台来概括虽然有些过,但是这就是一个回测平台的雏形. 升级-- ...

  9. Win10下Keil5的C51和ARM共存的开发环境配置

    文章目录 概述 正文 1.安装 C51 2.安装 MDK 3.C51 和 MDK 共存 4.注册 5.安装 STM32 PACK 6.更改配色 结语 概述 在学完51单片机就要学习32单片机了,由于二 ...

最新文章

  1. 影像锐化工具_如何以及为什么要进行工具改造:花在锐化斧头上的时间永远不会浪费...
  2. Google Gson-反序列化列表 class 宾语? (通用类型)
  3. Linux下安装Anaconda 详细过程 搭建python环境
  4. 快速迁移 Next.js 应用到函数计算
  5. MedMNIST:上海交大发布医学影像领域的MNIST(附下载)
  6. 基于TCP协议用多线程实现并发服务器,实现思路、算法和demo
  7. 创始团队的执行力很重要
  8. 牛客 2021年度训练联盟热身训练赛第二场 G题Plate Spinning
  9. 02-CSS基础与进阶-day11_2018-09-17-21-35-14
  10. nyoj936蚂蚁的难题(X)
  11. 2011年八大赚钱爆发点
  12. bandgap带隙基准电路设计,cadence,
  13. 根据原图和对应的alpha图提取前景并且合成新图(基于python+opencv)
  14. 10/9 直播预告|半只土豆老师来啦
  15. XUI 熟练使用之(一) ----------- 将 XUI 引入项目
  16. CAD梦想画图中“插入图片”
  17. 路透社:大众与江淮计划在合肥投资50.6亿元建新电动汽车工厂
  18. Jenkins 与 Gitlab 之间非交互拉取代码并进行代码部署
  19. 第9章第8节:制作过渡页幻灯片的版式 [PowerPoint精美幻灯片实战教程]
  20. 目前最好用的云电脑排行有哪些?免费阿里云无影云电脑

热门文章

  1. 关于PCL显示(未经处理的异常)
  2. Linux Wine 微信输入中文乱码,黑块,和多余窗口问题解决
  3. 服务器上的文件如何查看,如何查询服务器上的文件来源
  4. SaltStack Grains 使用指南
  5. 广州翰智软件有限公司
  6. yolo入门之一----yolo的使用
  7. MySQL 内部 临时表 图文 详解
  8. linux下gradle安装
  9. 微信的内容布局已经甩了百度、阿里和今日头条3条街
  10. 任何一种进步的过程都是反人性的,甚至是痛苦的。所以我们要努力做到在快乐中学习与成长。首先要对世界产生强烈的好奇心,兴趣是自己最好的老师!