官术网_书友最值得收藏!

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組代碼中的設置數據參數。

主站蜘蛛池模板: 沛县| 吴旗县| 深泽县| 阿坝县| 龙里县| 上思县| 无为县| 喀喇沁旗| 舟山市| 拜泉县| 朝阳县| 武义县| 社会| 阳春市| 明光市| 丹寨县| 遂溪县| 都兰县| 上林县| 天津市| 凌云县| 甘谷县| 阿坝| 大余县| 岚皋县| 遵化市| 吉林省| 台山市| 陇西县| 万全县| 新沂市| 盐源县| 兴安县| 沾益县| 城固县| 江川县| 荥经县| 陇西县| 雅江县| 溆浦县| 桂平市|