下面列出了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 相關的須要重點關注下