首先zipline
主要有三种启动的方式:
- 使用
zipline
命令行工具 - 使用
jupyter notebook
的zipline
集成magic
- 直接自己组装和调用
TradingAlgorithm
我们主要以zipline
命令行工具为研究对象,来看一下它的结构,其它情况类似
首先从setup.py
中可以看到代码的entry_point
entry_points={
'console_scripts': [
'zipline = zipline.__main__:main',
],
....
}
研究 __main__.py
文件,发现其石宏了 click
(http://click.pocoo.org/)包来做命令行接口的路由,其中可以分为4个子命令
- run : 负责执行策略
- ingest : 负责拉取策略所需的数据包(bundle)
- bundles : 查看所有数据包
- clean: 清除数据包
后两个命令都比较简单,前两个里面的逻辑相对复杂一些。
其中 在main
的入口中,除了者几个子命令,它还是用了load_extensions
来载入所有的扩展,-extension
可以指定扩展的列表。
run
命令在一些初始化和装载过程之后,会调用TradingAlgorithm的run方法。
ingest
命令会调用data.bundles.core
的ingest
函数来进行拉取。