- BackTrader量化交易案例圖解
- 何海群
- 616字
- 2020-11-24 13:23:51
2.6 案例:數據預處理
大家都知道,Python的原生運算速度相對比較慢。BackTrader量化軟件,以及常用的金融軟件,交易數據的預處理主要都是通過Pandas模塊庫當中的矢量化運算完成的,它可以大幅度提高數據運算速度。
下面通過具體案例來介紹數據預處理。
案例文件名是btr_e002dat.py。本案例在量化版“Hello”案例的基礎上增加了一組簡單的測試數據和部分簡單參數。
案例主要代碼如下:



通過以上代碼大家可以看到,基本上每一組代碼都有中文注解,非常適合初學者學習。
下面運行程序。回測時間從2018年11月1日開始,到2018年12月31日結束,如圖2-8所示。


圖2-8 數據預處理
上面的案例代碼共分為四個步驟,其中新增了plot繪圖步驟:

下面將以上案例代碼分組,對主體代碼進行講解。
第一組代碼設置量化程序的入口:

cerebro在西班牙語中是“大腦”的意思,表示量化計算引擎。
第二組代碼分為兩個小組進行講解。
第2-1組代碼,設置起始資金、Broker代理參數:

第2-2組代碼,設置數據參數:

調用數據讀取函數pools_get4fn,對數據進行預處理。然后調用adddata添加數據函數,為量化引擎cerebro設置數據源data:

數據源變量data在調用數據讀取函數pools_get4fn后,已經轉化為BackTrader內部格式。
圖2-9所示,是adddata數據添加函數的示意圖。

圖2-9 adddata數據添加函數示意圖
由圖2-9可以看出,adddada函數位于cerebro類,其中以下畫線“_”開頭的函數是類內部函數,可以無須考慮,其他主要關聯函數和屬性有:feeds、resampledata、replaydata、datasbynam、chaindatae、rolloverdata。
第三組代碼運行量化回測:

第四組代碼獲取量化回測分析結果:

最后,繪制量化分析圖表:

本節案例的重點,其實就是第2-2組代碼中的設置數據參數。