注意:
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
命令来运行。下面是使用示例:
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开始 至今的分钟数据
见examples
如有任何问题,欢迎大家提交issue ,反馈bug,以及提出改进建议。
对量化感兴趣的朋友,以及想更方便的交流朋友,请加QQ群434588628