win10下搭建zipline python3.5量化回测平台环境
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量化回测平台环境相关推荐
- 搭建系统|继承backtrader的本地量化回测平台如何玩转多股轮动策略!
前言 一个完整的量化交易系统离不开人机交互功能的应用,特别是在回测阶段,我们需要不断更改参数因子.更换交易策略以应对当前的市场.因此创建完整的.功能键全的GUI用户界面至关重要. 市面上也出现了很多相 ...
- 量化回测平台|有现成的不用吗?如何利用聚宽平台回测交易策略
导览 本文为掘金小册课程加推篇!小册还在持续加推中,敬请期待!!!目前已经加推了20节!!! 超值的43节课程!从目录就能看出来! 1-贯穿小册:Python金融数据分析实战型项目 2-前置基础:量化 ...
- Win10下搭建绿色版基于WAMP的PHP开发环境
1.安装Apache 下载最新稳定版http://www.apachehaus.com/downloads/httpd-2.4.23-x64-vc11.zip: 解压到D:\Apached下: 修改D ...
- 掘金量化回测平台 - 1
掘金量化平台初探 python 量化分析包括:策略研发.策略回测.仿真交易.实盘交易.实盘盘后优化. 主要想使用掘金的平台来做策略回测和仿真交易两个环节的功能. 对比了下主流的云平台JoinQuant ...
- 利用米筐量化回测平台实行量化炒股
1.主要属性 2.代码 # 可以自己import我们平台支持的第三方python模块,比如pandas.numpy等. import pandas as pd import numpy as np f ...
- 在Win10下搭建web服务器,使用本机IP不能访问,但是使用localhos或127.0.0.1可以正常访问的解决办法...
最近在在Win10下搭建web服务器,发现通过windows自带的浏览器win10 edge浏览器使用本机IP不能放问,但是使用localhos或127.0.0.1可以正常访问, 后来无意发现,使用w ...
- Win10下搭建旷视YOLOX(新一代anchor-free目标检测网络)并训练自定义CoCo格式数据集
注意:原始的YOLOX只支持乌班图系统,因此以下所有操作均需要依赖博主自己的安装包.链接:https://pan.baidu.com/s/1CoQa8WjJ89gNfexK59Ewrw 提取码:qhi ...
- 1、回测平台搭建——思路
什么是回测平台? 最简单来说,写好了一个策略,从一个txt中读取了数据,放到策略中,得到了一个最后的收益,这个程序就是一个回测平台,用回测平台来概括虽然有些过,但是这就是一个回测平台的雏形. 升级-- ...
- Win10下Keil5的C51和ARM共存的开发环境配置
文章目录 概述 正文 1.安装 C51 2.安装 MDK 3.C51 和 MDK 共存 4.注册 5.安装 STM32 PACK 6.更改配色 结语 概述 在学完51单片机就要学习32单片机了,由于二 ...
最新文章
- 影像锐化工具_如何以及为什么要进行工具改造:花在锐化斧头上的时间永远不会浪费...
- Google Gson-反序列化列表 class 宾语? (通用类型)
- Linux下安装Anaconda 详细过程 搭建python环境
- 快速迁移 Next.js 应用到函数计算
- MedMNIST:上海交大发布医学影像领域的MNIST(附下载)
- 基于TCP协议用多线程实现并发服务器,实现思路、算法和demo
- 创始团队的执行力很重要
- 牛客 2021年度训练联盟热身训练赛第二场 G题Plate Spinning
- 02-CSS基础与进阶-day11_2018-09-17-21-35-14
- nyoj936蚂蚁的难题(X)
- 2011年八大赚钱爆发点
- bandgap带隙基准电路设计,cadence,
- 根据原图和对应的alpha图提取前景并且合成新图(基于python+opencv)
- 10/9 直播预告|半只土豆老师来啦
- XUI 熟练使用之(一) ----------- 将 XUI 引入项目
- CAD梦想画图中“插入图片”
- 路透社:大众与江淮计划在合肥投资50.6亿元建新电动汽车工厂
- Jenkins 与 Gitlab 之间非交互拉取代码并进行代码部署
- 第9章第8节:制作过渡页幻灯片的版式 [PowerPoint精美幻灯片实战教程]
- 目前最好用的云电脑排行有哪些?免费阿里云无影云电脑