量化投資策略:常見的幾種Python回測框架(庫)
在實盤交易之前,必須對量化交易策略進行回測。在此,我們評價一下常用的Python回測框架(庫)。評價的尺度包括用途範圍(回測、虛盤交易、實盤交易),易用程度(結構良好、文檔完整)和擴展性(速度快、用法簡單、與其他框架庫的兼容)。
- Zipline: 事件驅動的回測框架。Quantopian 正在使用它。
- PyAlgoTrade: 也是事件驅動的回測框架,支持虛盤和實盤兩種交易。文檔完整,整合了TA-Lib(技術分析庫)。在速度和靈活方面,它比Zipline 強。不過,它的一大硬傷是不支持 Pandas 的模塊和對象。
- pybacktest: 它以處理向量數據的方式進行回測,非常簡單輕便。2015年5月21日,這個項目有復活的跡象。
- TradingWithPython: 這位Jev Kuznetsov 擴展 pybacktest 形成自己的回測程序。這個庫似乎在2015年2月更新了。不過,相關的文檔和課程售價 $395。
- 其他項目: ultra-finance
Zipline | PyAlgoTrade | TradingWithPython | pybacktest | |
類型 | 事件驅動 | 事件驅動 | 向量處理 | 向量處理 |
社區 | 較大 | 一般 | 無 | 無 |
雲計算 | Quantopian | 無 | 無 | 無 |
支持 IB | 是 | 否 | 否 | 否 |
數據源 | Yahoo, Google, NinjaTrader | Yahoo, Google, NinjaTrader, Xignite, Bitstamp 實時提供數據 | ||
文檔 | 完整 | 完整 | $395 | 很少 |
事件可定製 | 是 | 是 | ||
速度 | 慢 | 快 | ||
支持Pandas | 是 | 否 | 是 | 是 |
交易日曆 | 是 | 否 | 否 | 否 |
支持TA-Lib | 是 | 是 | 是 | |
適用於 |
僅用於美國證券交易 |
實盤交易 虛盤交易 |
虛盤測試交易 | 虛盤測試交易 |
Zipline 與 PyAlgoTrade 的對比評分
Zipline | PyAlgoTrade | 說明 | |
虛盤交易 |
♦ |
♦ ♦ ♦ |
Zipline 似乎不能用非美數據和本地數據工作,而 PyAlgoTrade 可以使用任何類型的數據 |
實盤交易 |
♦ ♦ |
♦ ♦ |
二者都不錯,但 Quantpian 的雲計算編程很好 |
靈活性 |
♦ ♦ |
♦ ♦ ♦ |
PyAlgoTrade 支持各種高級定單,並有更多的業務事件。 Zipline 提供了簡單的滑點模式 |
速度 |
♦ |
♦ ♦ ♦ |
Zipline 比 PyAlgoTrade 慢 |
易用性 |
♦ ♦ ♦ |
♦ ♦ |
PyAlgoTrade 不支持 pandas |