前言
交易系統的"止盈",作者認為是一個非常重要的模塊。我常說,好的開倉僅僅決定你的策略浮盈大小,而最終的交易結果卻只有止盈決定。
作者之前就曾寫過,比較經典的跟蹤止盈方法之一,那就是"AF加速算法跟蹤止盈"!已經有了Python和TB兩個版本。
"AF加速算法跟蹤止盈",最明顯的特征是能夠快速守住利潤。因為,它受價格和持倉時間的影響。
如下圖所示:
每一根k線無論上漲還是下跌,它都會按照一定的速度調整跟蹤止盈線。這是,它能夠快速保住利潤的原因之一。
而作者今天,就同樣給大家分享另外一個跟蹤止盈方法,"k線波幅加速算法跟蹤止盈"。
顧名思義,這個方法僅僅與價格的波動幅度有關系,并且以這個幅度來決定止盈線上調或下調的尺寸。
借助天勤量化交易平臺,以Python為開發語言編寫雙均線多頭策略,并加入"k線波幅加速算法跟蹤止盈"線作為退出機制!
"k線波幅加速"算法跟蹤止盈的邏輯
如果系統中采用跟蹤止盈方法,盡可能的采用具有"自適應"功能的止盈方法。因為它可以根據當前市場的波動,動態的去調整自己的出場位置。
有助于策略的出場更加合理!
算法邏輯: 多頭為例,并假設當前持有多單。
- 開倉bar的最低價-n*ATR,得到初始止損。
- 開倉后,如果收盤價創新高,則以初始止損為起點,增加今日與昨日收盤價價差的n倍(本文選取 n = 0.7)。
- 如果收盤價沒有新高,跟蹤止盈線就不調整。
如下圖所示:
小結。
其實,k線波幅加速算法跟蹤止盈基本思想就是,價格如果朝預期方向走,那么我就移動止盈線,如果未動則保持不變。
它與我們以前提到過的Af加速算法跟蹤止盈最大的區別就是,AF算法無論價格是否朝預期方向,跟蹤止盈線都會調整。
Python實現"k線波幅加速算法跟蹤止盈
作者借助天勤量化平臺,以雙均線交易系統多頭為例,實現k線波幅加速算法跟蹤止盈。
并且,作者已經將該方法封裝到DJ_Finance.py模塊中,直接調用Stop_Range方法就可以實現該止盈。
1. 首先導入對應的模塊及參數設置。
其中,vars字典的設置是跟蹤止盈的函數的參數以及變量,在跟蹤止盈代碼函數中需要傳入此字典方能正常調用。
跟蹤止盈所需的參數、變量。
2. 計算雙均線技術指標和平均真實波幅ATR。并且判斷出多空趨勢,并用trend進行標記多空信號。
3. 策略開平倉代碼,開倉條件非常的簡單,金叉開倉,跟蹤止盈平倉。
1)策略開倉部分。
Run:
2) 策略平倉部分。
其中最主要的是,當策略開倉后我們需要調用點及財經py模塊中的StopATR_range()方法。我們需要傳入k線數據以及含有跟蹤止盈所需的參數和變量。
如下圖所示:
Run:
3) 執行策略回測。直接調用main方法,就可以執行策略回測了。
Run:
資金曲線:
從圖片上看,比之前的AF加速算法跟蹤止盈更容易抓住大的波段,但是會大多數情況下會觸及初始止損。
小結。
跟蹤止盈函數內部代碼量并不多,但是它所發揮的作用是不可小覷的。在使用過程中傳入的字典參數名及數據類型一定要與函數內一致。
最后
“k線波幅加速算法”跟蹤止盈,是作者分享的第二個非常好的跟蹤止盈方法。當然了,它的內部算法是可以進行微調的。
例如:跟蹤止盈線上調的尺寸,按ATR波動率的百分比來決定等等,都值得我們去研究它!
文章及策略僅供學習交流,切勿直接實盤!