【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

    優點

    • 框架對亞洲市場的支援更好,甚至有傳聞會支援台灣的券商進行實盤交易
    • 非常值得期待的框架

    缺點

    • 框架設置不易
    • 許多新手光設置的問題就會卡非常久
    Python全方位期貨課程 - 從基礎、爬蟲、回測、LINE提醒到AI應用
    Python全方位期貨課程 - 從基礎、爬蟲、回測、LINE提醒到AI應用
    Python全方位期貨課程 - 從基礎、爬蟲、回測、LINE提醒到AI應用
    Python全方位期貨課程 - 從基礎、爬蟲、回測、LINE提醒到AI應用
    Python全方位期貨課程 - 從基礎、爬蟲、回測、LINE提醒到AI應用
    Python全方位期貨課程 - 從基礎、爬蟲、回測、LINE提醒到AI應用
    Python全方位期貨課程 - 從基礎、爬蟲、回測、LINE提醒到AI應用
    Python全方位期貨課程 - 從基礎、爬蟲、回測、LINE提醒到AI應用

    Python全方位期貨課程 - 從基礎、爬蟲、回測、LINE提醒到AI應用

    Python全方位期貨課程 - 從基礎、爬蟲、回測、LINE提醒到AI應用

    $4,500

    綁定LINE好友再享3000點知識點數

    綁定LINE好友再享3000點知識點數