今天介紹個不那麼出名的量化交易開源包——
QTPyLib (Quantitative Trading Python Library)
github: https://github.com/ranaroussi/qtpylib
doc: https://qtpylib.io/docs/latest/
這個包沒有vnpy、Pyalgotrade等項目那麼熱門,star數不到700,各功能都比較簡單;不過因為開發動機就是簡單、自用、對接IB的實盤交易框架,所以框架設計清晰、實用功能點只多不少。
輕量(2萬行左右代碼)
事件驅動
支持回測、模擬交易、實盤(盈透)
作者Ran Aroussi是個量化交易者和全棧開發者,主頁有很多其他量化相關項目也值得使用和學習,個人用得略多的multitasking見另一篇推送。
以下就是翻譯了
實時行情轉錄
歷史數據(Tick、Bar、Trade)的Mysql存儲
利用ZMQ訂閱推送建立數據中心、交易策略之間的通信
支持訂單簿、報價、時間、tick等驅動的交易策略
行情驅動採用異步、非阻塞框架
訂單簡訊通知
在策略開發中便利地使用TALib、sklearn等三方庫
核心組件解耦比較合理、成功——
要誇一下Reports這個組件,可以很方便地開發訂單、持倉的監控頁面。
不過項目是完全針對IB API開發的,國內暫時用不了,借鑑學習和改造還是值得的!
即便我個人覺得這個項目已經很成功了,但作者並不滿意,主要是回測和策略範圍支持度不夠。所以新開了一個項目pytrade(https://github.com/ranaroussi/pytrade),打算重構整個框架,做進一步解耦、保留核心功能,其他組件獨立成包。
目前還只是個空文件結構,其他量化相關包也可以試試:
整個項目設計合理、編碼規範、代碼質量也很高,看著賞心悅目