- BackTrader量化交易案例圖解
- 何海群
- 752字
- 2020-11-24 13:23:55
4.2 案例:設置Buy買入價格
下面看看具體的案例,案例文件名是:btr_e004buy.py。
程序主體部分的代碼和前面的案例是完全一樣的。第一組和第二組源碼都是設置數據及策略參數:

adddata類函數,作用是添加量化交易數據,設置數據源參數:

addstrategy類函數,作用是添加量化策略,設置策略參數:

第三組代碼運行量化程序;第四組代碼輸出回測數據,繪制相關圖表,如下:

運行案例程序,主要輸出信息如下:


在以前的案例程序中,因為是空策略,所以沒有買賣交易,程序的起始資金和資產總值都是10萬元。
但在本節案例中,從輸出信息來看,有稍許虧損:
資產總值 Final Portfolio Value:99923.51
本案例回測的時間周期是:2018年1月~2018年12月。
2018年,國內A股大盤形式不好,但本案例的虧損額很少,說明這個策略在2018年的行情中還是比較優秀的策略。
如圖4-2所示是程序生成的買入策略分析圖。

圖4-2 買入策略分析圖
圖4-2最上方的藍色曲線是資產總額,包括股票和持有現金的總額。資產總額曲線,可以反映用戶買賣的盈虧情況。
大家注意藍色資產總額曲線的走勢變化:起點是10萬元,這是開始時的現金持有量。隨著股票的買入增多,現金持有量越來越少。但當前案例不是正式交易,只是單邊買入股票,沒有賣出。
案例中出現的虧損數額很少,還有一個原因是量化軟件默認只買入一手股票。而每只股票價格才6元多,每次交易就只是買賣一手,即使虧損也不會虧損太多。
圖4-2中價格曲線附近的三角符號就是股票的實際交易買賣點。
我們在實際測試時發現,這些買賣點存在一些時間誤差,前后誤差大約是兩天時間。
筆者分析,造成誤差的原因有兩個:
(1)時差和時區。例如,zipline量化軟件要求要把導入數據轉換為UTC世界統一時間。
(2)交易日歷模塊庫。目前還沒有統一的交易時間標準,因為各國風俗不同,所以各國的節假日也有所不同。
這些誤差,對于量化程序的實際分析結果影響不大,圖中的買賣點圖標也只是提示參考圖標。