/cn_zipline

python tdx zipline bundles, 支持A股的zipline量化框架

Primary LanguagePython

cn_zipline


PyPI version Py version Build Status Build status

注意:

cn_zipline项目已经迁移到更简洁易用的zipline。此项目进度已经落后于zipline,并且将不再维护,因此带来的不便,敬请谅解。


基于tdx的zipline bundle.

zipline是美国Quantopian 公司开源的量化交易回测引擎,它使用Python语言开发, 部分代码使用cython融合了部分c语言代码。Quantopian 在它的网站上的回测系统就是基于zipline的, 经过生产环境的长期使用,已经比完善,并且在持续的改进中。

zipline的基本使用方法在https://www.quantopian.com/tutorials/getting-started ,对于zipline的深度解析,可以看大神rainx写的文档,本项目中的大部分依赖项目也都是rainx开发的项目 `

数据源

cn_zipline的历史k线以及除息除权数据来自通达信,数据接口来自项目github 项目tdx https://github.com/JaysonAlbert/tdx

环境

python2.7或者python3.5,尽量使用较新版本的Anaconda。旧版本的在安装依赖时容易报错。推荐使用python3.5,数据获取的接口依赖于python3.5的 一些库,用于提升性能。

注意:Anaconda官网提供的链接,3.x版本默认下载python3.6。

安装

pip install cn_zipline

注意:在windows上,如果zipline安装失败,先用conda install -c Quantopian zipline安装zipline,然后再安装cn_zipline

cn_zipline/extension.py拷贝至zipline的数据目录,默认为~/.zipline

实盘

实盘部分代码正在开发中,请参考issue

使用

cn_zipline与zipline大同小异,具体使用方法请参考zipline官方文档。不同之处在于,ingest数据时请使用 cn_zipline命令,管理以及清理bundls数据时使用zipline。运行策略的形式也不同,为便于调试代码,采用直接运行策略脚本, 而不是通过zipline run命令来运行。下面是使用示例:

一、ingest数据:

cn_zipline ingest -b tdx -a assets.csv --minute False --start 20170901 --overwrite True

-a assets.csv指定需要ingest的代码列表,缺省ingest 4000+只所有股票,耗时长达3、4小时,通过-a tests/ETF.csv 只ingest ETF基金数据,一方面可以节省时间达到快速测试的目的。 另一方面可以通过这种方法ingest非股票数据,例如etf基金。

--minute False 是否ingest分钟数据

--start 20170901 数据开始日期,默认为1991年

--overwrite True 由于分钟数据获取速度较慢,默认start至今超过3年的话,只拿3年数据,日线数据依然以start为准,overwrite为True时,强制拿从start开始 至今的分钟数据

二、编写策略cn_zipline/examples/buyapply.py

examples

三、运行策略文件 cn_zipline/examples/buyapply.py

四、运行分析脚本cn_zipline/examples/analyse.py

问题

如有任何问题,欢迎大家提交issue ,反馈bug,以及提出改进建议。

其它

对量化感兴趣的朋友,以及想更方便的交流朋友,请加QQ群434588628