加载中…
个人资料
海阔天空
海阔天空
  • 博客等级:
  • 博客积分:0
  • 博客访问:41,787
  • 关注人气:19
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

Zipline框架初探(上)

(2017-09-18 09:04:04)

Zipline框架初探(上)

转载 2016年10月19日 10:17:32
为了朝着量化交易的方向努力行进,数学和编码是必须提高的垫脚石,财务分析则属于业余爱好加分项。数学方面借着报名“七月在线 — 机器学习数学班”重温数学基础以图从机器学习的角度入手,而编码则再次翻开数据结构和算法导论用以弥补计算机基础不足的同时,一方面尝试配合小伙伴重写C++版本vn.py用于实盘交易框架储备,另一方面则研究Zipline用于指标及策略回测框架学习研究。Zipline是一个自动化交易回测框架,同时国外Quantopian,国内优矿、米筐和聚宽等web平台都基于它提供服务,它的成熟性自不必说。但它由Quantopian开发维护并不断迭代,默认只支持欧美市场,如果要将其应用于国内市场,即使国内已有成熟的web服务,但相关资料却甚为匮乏,看看StackOverflow上的问答就能窥见一二。因此,对个人用户而言,对它的研究仍有很多的坑要踩,今天我就想分享一下最近填好的坑。

开发环境:64位Win7 + PyCharm

1、首先下载并安装64位Anaconda,CMD运行”conda install -c Quantopian zipline”,将Zipline作为第三方库安装至Anaconda,再将PyCharm的解释器设置为Anaconda下的python.exe,至此准备工作一切就绪。

2、Zipline的本地化回测应用主要涉及2大块内容:TradingEnvironment和TradingAlgorithm。TradingEnvironment主要用于本地化交易环境设置,而TradingAlgorithm则是Zipline回测框架的主对象,可以理解为回测入口。本文将介绍TradingEnvironment的详细设置,同时初探TradingAlgorithm实现,它的具体实现则放在以后的博文中介绍。

3、TradingEnvironment本地化最重要的就是设置tradingcalendar、benchmarke_return和treasury_return。tradingcalendar用于设置tradingdays,其默认已排除周六周日,因此用户只需要重写一个py文件将每年对应的holiday从tradingdays除去即可。而benchmarke_return和treasury_return则作为策略回报的比较基准,将国内沪深300和对应各期限国债收益率通过重载load函数导入,将load函数对象传入至TradingEnvironment即可,注意benchmarke_return为Pandas的Series对象,treasury_return为DataFrame对象,各期限必须包含1month ~ 10year间所有。

4、TradingAlgorithm的本地化则需要重点设置simulation_parameters、initialize函数对象,handle_data函数对象。simulation_parameters包括策略回测的起始日期和回测频率,回测起始日期必须通过Pandas的tz_localize本地化,而回测频率包含daily和minute两种方式。而initialize函数与handle_data函数则用于策略初始化和模拟Bar周期反复回调所用,具体作用可参考国内优矿、米筐和聚宽任意一款服务。

5、数据的准备:理论上Zipline只支持其内置的DataPortal类型,它是其回测模拟所有数据的接口。考虑到通用性,Zipline目前也支持pandas的DataFrame和Panel,只不过它对DataFrame的支持就是将其很粗暴的转换为Panel来实现的。因此,就目前来说,Zipline只支持内置DataPortal和Pandas的Panel两种类型。所以,用户可以将任何本地可获取的数据首先转换为DataFrame,其index按日递增,columns为小写的open、high、low、close和volume等。然后以DataFrame为value,数据ticker为key来构建相对应的Panel作为回测本地化的标准数据输入。

至此,用户就已经可以利用Zipline跑通一个完整的本地化回测Demo,这也解决了StackOverflow上关于Zipline提出70%以上问题,希望对大家有用。





【干货】量化投资国内外很棒的论坛网站

转载 2017年04月19日 16:42:35

国内比较活跃的是海洋论坛   海洋部落(OceanTribe.org)
交易开拓者官网: 专业的期货程序化与量化系统自动交易软件领航者门户网站
国外有: Simple H1 GBPUSD EA @ Forex Factory
量化服务方面,有http://myfxbook.comhttp://zulutrader.comCollective2 - Automated Trading for Humans

疯狂宽客疯狂宽客—专注程序化交易,有网站和论坛,网站提供方法,论坛提供策略分享

宽客网宽客 -  Powered by Discuz!

中国量化投资网http://www.myvc.com.cn/

宽客俱乐部量化投资|对冲基金

中国量化投资俱乐部中国量化投资俱乐部

中国量化投资学会中国量化投资学会官网

海洋部落海洋部落(OceanTribe.org)

Matlab技术论坛MATLAB技术论坛|Simulink仿真论坛|MATLAB函数百科|MATLAB论坛|Simulink论坛|MATLAB下载|MATLAB教程

QuantzoneQuantzone

faruto的博客1.前言-基于Matlab的量化投资_faruto_新浪博客

中国统计网中国统计网(iTongji.CN)-国内大数据分析第一门户

统计之都统计之都 (Capital of Statistics)

SAS博客webgu_新浪博客

冰火岛的博客博文_bicloud_新浪博客

郑来轶博客博文_郑来轶_新浪博客

数据挖掘学习交流站http://www.businessanalysis.cn/portal.php

知乎量化投资话题量化交易 - 话题精华

人大经济论坛国内比较活跃的是海洋论坛   海洋部落(OceanTribe.org)

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有