【4大回測框架評比】操盤室程序員實測分享,選擇你最上手的工具
(Zipline、Backtest、Backtrader、vnpy)
張峮瑋老師、黃仕勳老師 MasterTalks線上課程 - Nov 3 2022
#回測框架 #Python #程式交易 #期貨
那麼多種框架,該選擇哪個使用?
回測框架有百百種,知名的有zipline、backtest、backtrader、vnpy等等,而當初選上backtrader的原因,是因為其對pyfolio有良好的支援。我對於各個框架都曾經玩過,以下整理此表格進行比較說明。
(備註:以下內容純為個人使用感覺,非常主觀)
框架
使用手感
Zipline
歷史較悠久、Github上星星數非常多,聽說非常完整的一個框架,但個人使用上總覺得卡卡的,不太習慣,感覺入門需要多花一點時間學習
Backtest
我認為是框架中最簡單的,但感覺有一點太簡單了,官方文件的範例也寫得很簡單,讓人有一種不太放心的感覺。很多較複雜的情境想要切換要花許多時間自行研究測試。優點是他的回測結果報表是以html來呈現,滑鼠移過去會有買賣進入點,而不像許多框架是產生圖表,無法作互動。
Backtrader
框架中難度偏簡單。優點是官方文件撰寫完整,範例豐富,支援世界數一數二大的券商IB或是Oanda做實盤交易,且切換實盤程式碼簡潔容易(或許上述框架也有支援且也很簡潔,但我沒有研究過),且對一流的風險分析套件pyfolio支援良好。
vnpy
這幾年新興的著名回測框架,使用上也容易。我個人認為缺點是該框架設置不易,許多新手光設置的問題就會卡非常久,但好處是有別於上述框架,這個框架對亞洲市場的支援似乎更好,甚至有傳聞會支援台灣的券商進行實盤交易,是一個非常值得期待的框架。
Backtrader重要功能
1.回測
官網的範例多,且示範清楚,下圖就很簡潔的替我們示範撰寫判斷15ma大於於收盤價的簡單判斷,程式碼非常簡潔優雅。
(圖源自官方網站範例)
2.參數最佳化運算
透過optstrategy()我們可以對框架內的__init__參數進行最佳參數演算
通過一些設置我們就能夠獲得參數最佳化報告。
3.切換期貨、股票交易情境容易
根據官方文件說明,通過設置commission,框架會自動幫我們辨別是股票或是期貨的計算獲利方式,相當的方便。
4.支援pyfolio
通過簡單的設置,就能夠獲得超精美的pyfolio風險評估報表。
下表為簡單示意圖樣結果,非真實操作情境。
框架優缺點比較
框架
優點
缺點
Zipline
- 歷史較悠久,框架較為完整
- Github上星星數非常多
- 入門需要多花一點時間學習,我自己使用上不太習慣
Backtest
- 框架中最簡單的
- 回測結果報表是以html來呈現,滑鼠移過去會有買賣進入點
- 滑鼠移過去會有買賣進入點,互動性非常好
- 雖是框架中最簡單的,但有一點太簡單了,包含官方文件的範例也寫得很簡單,讓人有一種不太放心的感覺
- 較複雜的情境想要切換,要花許多時間自行研究測試
Backtrader
- 官方文件撰寫完整
- 範例豐富
- 支援世界數一數二大的券商IB或是Oanda做實盤交易
- 切換實盤程式碼簡潔容易
- 對一流的風險分析套件pyfolio支援良好
vnpy
- 框架對亞洲市場的支援更好,甚至有傳聞會支援台灣的券商進行實盤交易
- 非常值得期待的框架
- 框架設置不易
- 許多新手光設置的問題就會卡非常久
【4大回測框架評比】操盤室程序員實測分享,選擇你最上手的工具(Zipline、Backtest、Backtrader、vnpy)
【4大回測框架評比】操盤室程序員實測分享,選擇你最上手的工具
(Zipline、Backtest、Backtrader、vnpy)
張峮瑋老師、黃仕勳老師
MasterTalks線上課程
- Nov 3 2022
#回測框架 #Python #程式交易 #期貨
那麼多種框架,該選擇哪個使用?
回測框架有百百種,知名的有zipline、backtest、backtrader、vnpy等等,而當初選上backtrader的原因,是因為其對pyfolio有良好的支援。我對於各個框架都曾經玩過,以下整理此表格進行比較說明。
(備註:以下內容純為個人使用感覺,非常主觀)
框架使用手感
Zipline
歷史較悠久、Github上星星數非常多,聽說非常完整的一個框架,但個人使用上總覺得卡卡的,不太習慣,感覺入門需要多花一點時間學習
Backtest
我認為是框架中最簡單的,但感覺有一點太簡單了,官方文件的範例也寫得很簡單,讓人有一種不太放心的感覺。很多較複雜的情境想要切換要花許多時間自行研究測試。優點是他的回測結果報表是以html來呈現,滑鼠移過去會有買賣進入點,而不像許多框架是產生圖表,無法作互動。
Backtrader
框架中難度偏簡單。優點是官方文件撰寫完整,範例豐富,支援世界數一數二大的券商IB或是Oanda做實盤交易,且切換實盤程式碼簡潔容易(或許上述框架也有支援且也很簡潔,但我沒有研究過),且對一流的風險分析套件pyfolio支援良好。
vnpy
這幾年新興的著名回測框架,使用上也容易。我個人認為缺點是該框架設置不易,許多新手光設置的問題就會卡非常久,但好處是有別於上述框架,這個框架對亞洲市場的支援似乎更好,甚至有傳聞會支援台灣的券商進行實盤交易,是一個非常值得期待的框架。
Backtrader重要功能
1.回測
官網的範例多,且示範清楚,下圖就很簡潔的替我們示範撰寫判斷15ma大於於收盤價的簡單判斷,程式碼非常簡潔優雅。
(圖源自官方網站範例)
2.參數最佳化運算
透過optstrategy()我們可以對框架內的__init__參數進行最佳參數演算
通過一些設置我們就能夠獲得參數最佳化報告。
3.切換期貨、股票交易情境容易
根據官方文件說明,通過設置commission,框架會自動幫我們辨別是股票或是期貨的計算獲利方式,相當的方便。
4.支援pyfolio
通過簡單的設置,就能夠獲得超精美的pyfolio風險評估報表。
下表為簡單示意圖樣結果,非真實操作情境。
框架優缺點比較
Zipline
優點
- 歷史較悠久,框架較為完整
- Github上星星數非常多
缺點
- 入門需要多花一點時間學習,我自己使用上不太習慣
Backtest
優點
- 框架中最簡單的
- 回測結果報表是以html來呈現,滑鼠移過去會有買賣進入點
- 滑鼠移過去會有買賣進入點,互動性非常好
缺點
- 雖是框架中最簡單的,但有一點太簡單了,包含官方文件的範例也寫得很簡單,讓人有一種不太放心的感覺
- 較複雜的情境想要切換,要花許多時間自行研究測試
Backtrader
- 官方文件撰寫完整
- 範例豐富
- 支援世界數一數二大的券商IB或是Oanda做實盤交易
- 切換實盤程式碼簡潔容易
- 對一流的風險分析套件pyfolio支援良好
優點
vnpy
優點
- 框架對亞洲市場的支援更好,甚至有傳聞會支援台灣的券商進行實盤交易
- 非常值得期待的框架
缺點
- 框架設置不易
- 許多新手光設置的問題就會卡非常久