點及財經,股票期貨專業投機者。
前言
“布林強盜”,作者不是很理解為啥會用“強盜”來形容這個策略,難道這個策略是偷偷摸摸的搞了見不得人的事?O(∩_∩)O哈哈~,後面會給大家分享作者對這個“強盜”一詞的理解。
布林強盜系統藉助布林線,與過濾器和跟蹤止盈組合而成,其中我個人認為該策略的核心是過濾器和止盈模塊。
說到止盈,我還再強調一遍,止盈是一個非常重要的模塊,好的開倉決定你浮盈大小,好的止盈決定你最終平倉收益的大小,並會跟你的交易次數、勝率和盈虧比直接掛鉤。
“布林強盜”量化交易系統交易邏輯。
上面說到,布林強盜系統中含有布林線、過濾器、及跟蹤止盈(動態移動平均線)。並且,過濾器和跟蹤止盈是整個策略的核心。
策略交易邏輯:(空頭)。
1.開倉邏輯。
- 收盤價
- 最低價
2.平倉邏輯。
- 最高價>動態移動平均線(跟蹤止盈).
策略信號:(空頭)。
解析:
1.過濾器,收盤價
其實就是,用當前價格與過去的價格做對比,看當前價格在過去n-1日價格的哪個位置,如果真小於了,那麼說明是一個空頭趨勢。反之則多頭趨勢。
2.動態移動平均線(跟蹤止盈)。
常規均線的週期參數都是固定的,但是在此策略中,這個週期參數是動態變化的,並且當持倉越久週期參數就越小。
小結。
布林強盜策略中的“強盜”,我想就是說的這個動態移動平均線。因為,移動平均線如果在未開倉時,週期參數會恢復到布林線中軌,一旦開了倉,週期參數立刻開始隨k線更新而減小。這是我的理解!
“布林強盜”交易系統Python代碼實現。
作者藉助天勤量化平臺實現該策略,
在策略實現過程中需要著重注意的是“動態移動平均線”的週期參數變化過程,其他的我覺得都比較容易理解。1.設置參數和變量。其中,flag變量用於識別k線更新狀態,並控制動態移動平均線的週期參數計算機跟蹤止盈線的計算。後面會詳細講解!
2.計算布林線上下軌與中軌,以及過濾器rocCalc。
其中:
self.rocCalc = self.kline.close.iloc[-2] - self.kline.close.iloc[self.vars['rocCalcLength'] - 1]
就是過濾器的計算,與過去第N-1根k線相比,是否下跌或上漲,以判斷當前趨勢。
3.策略開平倉,以及平倉時將動態移動平均線的參數設置為初始值(布林線中軌)。
其中:
self.vars['liqDays'] = self.vars['liqLength'] ,平倉後將動態移動平均線參數設置成中軌參數。
self.flag = False,設置為false意味著平倉後,如果新開倉了就必須要等動態參數和止盈線計算出後變為true,才可以開啟平倉功能。
動態參數及動態移動平均線的計算:
4.啟動交易策略。
如下圖所示:
策略信號:
小結。
以上就是關於python如何實現“布林強盜”策略。閱讀時一定要著重看動態參數及動態移動平均線的計算部分,因為這一部分是整篇文章的重點。
最後
整篇文章,唯一有價值的是策略的止盈部分。
動態參數和動態止盈線的計算,當然這個止盈方法放在之前作者介紹的2種對比的話,我覺得沒有可比性。不過這種方法還是值得讀者們收藏,趕快應用到你的策略中去試試吧!
文章及策略代碼僅供學習,切勿直接實盤。
內容系原創,未經授權,禁止轉載!後果自負!