下面列出了zipline主要的目录和文件结构和它的说明
├── ci - 持续集成相关
├── conda - 生成conda 包相关
├── docs - 文档
│ ├── notebooks - notebook代码
│ └── source - 教程和what’s new
├── etc - 依赖配置和一些 hook shell 脚本
├── tests - 测试代码
├── zipline - 代码主目录
│ ├── __init__.py - 集中引入包内容
│ ├── __main__.py - 主程序入口
│ ├── _protocol.pyx - current, history, can_trade 之类的一些数据操作接口的实现
│ ├── _version.py - 版本管理相关的
│ ├── algorithm.py - 策略算法的主逻辑抽象,算法最后会被实例化为TradingAlgorithm的实例或者继承它, 并且里面进行了主要的api的定义,zipine的 cli会调用它的run方法启动回测
│ ├── api.py 常用api
│ ├── api.pyi 常用api说明
│ ├── assets - 资产类抽象 里面封装了常用的资产如股票Equity,期货Funtrue, 作为Asset的子类,并且封装了其数据库操作(这里是sqlite)
│ ├── data - 数据相关,所有的数据操作封装为dataportal
│ │ ├── __init__.py
│ │ ├── _adjustments.pyx - 除权除息等信息的读取
│ │ ├── _equities.pyx - 从bcolz里面获取行情的索引的抽象
│ │ ├── _minute_bar_internal.pyx - 分钟bar相关的索引
│ │ ├── bar_reader.py - BarReader接口定义
│ │ ├── benchmarks.py - 从雅虎获取基准数据
│ │ ├── bundles - 官方的提供的data bundle
│ │ ├── continuous_future_reader.py
│ │ ├── data_portal.py DataPortal定义,整合了所有的reader,writer,等,是biplane获取数据的入口,提供reader,writer数据的简单高层封装
│ │ ├── dispatch_bar_reader.py - 结合trading calendar 读取asset的bar信息
│ │ ├── history_loader.py - asset 历史信息的获取, 包括附加复权信息
│ │ ├── loader.py - loader 封装了基准信息和国债收益率曲线
│ │ ├── minute_bars.py - 分钟线reader/writer相关的抽象
│ │ ├── resample.py - 把分钟线数据resample为日线数据
│ │ ├── session_bars.py - SessionBarReader
│ │ ├── treasuries.py - 国债收益率曲线
│ │ ├── treasuries_can.py - 加拿大国债收益率曲线
│ │ └── us_equity_pricing.py - 主要是针对Equity的日线读取,adjustment数据读取,
│ ├── dispatch.py - 分发逻辑
│ ├── errors.py - 异常的抽象
│ ├── examples - 一些例子
│ ├── finance - 主要抽象了交易和财务相关的逻辑,这些接口大多会出现在zipline或者quantopian的代码策略代码里,可以进行import
│ │ ├── __init__.py
│ │ ├── asset_restrictions.py - 资产交易限制
│ │ ├── blotter.py - 账号?
│ │ ├── cancel_policy.py - 取消策略
│ │ ├── commission.py - 佣金
│ │ ├── constants.py - 一些常亮定义
│ │ ├── controls.py - 分控相关
│ │ ├── execution.py - 订单类型
│ │ ├── order.py - 订单逻辑
│ │ ├── performance - 收益
│ │ ├── risk - 风险相关
│ │ ├── slippage.py - 滑点
│ │ ├── trading.py - TradingEnvironment, SimulationParameters的抽象,如果使用自己的loader, TradingCalendar 则需要自己初始化这个对象
│ │ └── transaction.py - Transaction - 交易的抽象
│ ├── gens - 应该是集合了大部分的generator , 主要是回测过程的generator
│ │ └── tradesimulation.py - 回测主要过程的generator
│ ├── lib - 一些主要用的的数据结构和算法
│ ├── pipeline - pipeline相关的逻辑
│ ├── protocol.py - Order Account, Portfolio, Position等的抽象
│ ├── resources - etc相关的一些资源
│ ├── sources - 基准数据源等
│ ├── test_algorithms.py - 测试策略...
│ ├── testing - 测试
│ ├── utils - 一些工具类, 其中 run_algo.py, tradingcalendar.py 相关的需要重点关注下