Skip to content

python tdx zipline bundles, 支持A股的zipline

Notifications You must be signed in to change notification settings

yucanbin/cn_zipline

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cn_zipline


PyPI version Py version Build Status Build status Coverage Status

基于tdx的zipline bundle.

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

zipline的基本使用方法在http://www.zipline.io/beginner-tutorial.html, 对于zipline的深度解析,可以看大神rainx写的文档,本项目中的大部分依赖项目也都是rainx开发的项目 `

数据源:

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

安装:

pip install cn_zipline

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

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

使用:

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

ingest数据:

cn_zipline ingest -b tdx

编辑策略cn_zipline/examples/buyapply.py

from zipline.api import order, record, symbol


def initialize(context):
    pass


def handle_data(context, data):
    order(symbol('000001'), 10)
    record(AAPL=data.current(symbol('000001'), 'price'))


if __name__ == '__main__':
    from cn_zipline.utils.run_algo import run_algorithm
    from zipline.utils.cli import Date
    from cn_stock_holidays.zipline.default_calendar import shsz_calendar

    start = Date(tz='utc', as_timestamp=True).parser('2017-01-01')

    end = Date(tz='utc', as_timestamp=True).parser('2017-10-20')
    run_algorithm(start, end, initialize, 10e6, handle_data=handle_data, bundle='tdx',trading_calendar=shsz_calendar,output='out.pickle')

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

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

About

python tdx zipline bundles, 支持A股的zipline

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%