前言
交易系統(tǒng)的"止盈",作者認(rèn)為是一個非常重要的模塊。我常說,好的開倉僅僅決定你的策略浮盈大小,而最終的交易結(jié)果卻只有止盈決定。
作者之前就曾寫過,比較經(jīng)典的跟蹤止盈方法之一,那就是"AF加速算法跟蹤止盈"!已經(jīng)有了Python和TB兩個版本。
"AF加速算法跟蹤止盈",最明顯的特征是能夠快速守住利潤。因?yàn)椋軆r格和持倉時間的影響。
如下圖所示:
每一根k線無論上漲還是下跌,它都會按照一定的速度調(diào)整跟蹤止盈線。這是,它能夠快速保住利潤的原因之一。
而作者今天,就同樣給大家分享另外一個跟蹤止盈方法,"k線波幅加速算法跟蹤止盈"。
顧名思義,這個方法僅僅與價格的波動幅度有關(guān)系,并且以這個幅度來決定止盈線上調(diào)或下調(diào)的尺寸。
借助天勤量化交易平臺,以Python為開發(fā)語言編寫雙均線多頭策略,并加入"k線波幅加速算法跟蹤止盈"線作為退出機(jī)制!
"k線波幅加速"算法跟蹤止盈的邏輯
如果系統(tǒng)中采用跟蹤止盈方法,盡可能的采用具有"自適應(yīng)"功能的止盈方法。因?yàn)樗梢愿鶕?jù)當(dāng)前市場的波動,動態(tài)的去調(diào)整自己的出場位置。
有助于策略的出場更加合理!
算法邏輯: 多頭為例,并假設(shè)當(dāng)前持有多單。
- 開倉bar的最低價-n*ATR,得到初始止損。
- 開倉后,如果收盤價創(chuàng)新高,則以初始止損為起點(diǎn),增加今日與昨日收盤價價差的n倍(本文選取 n = 0.7)。
- 如果收盤價沒有新高,跟蹤止盈線就不調(diào)整。
如下圖所示:
小結(jié)。
其實(shí),k線波幅加速算法跟蹤止盈基本思想就是,價格如果朝預(yù)期方向走,那么我就移動止盈線,如果未動則保持不變。
它與我們以前提到過的Af加速算法跟蹤止盈最大的區(qū)別就是,AF算法無論價格是否朝預(yù)期方向,跟蹤止盈線都會調(diào)整。
Python實(shí)現(xiàn)"k線波幅加速算法跟蹤止盈
作者借助天勤量化平臺,以雙均線交易系統(tǒng)多頭為例,實(shí)現(xiàn)k線波幅加速算法跟蹤止盈。
并且,作者已經(jīng)將該方法封裝到DJ_Finance.py模塊中,直接調(diào)用Stop_Range方法就可以實(shí)現(xiàn)該止盈。
1. 首先導(dǎo)入對應(yīng)的模塊及參數(shù)設(shè)置。
其中,vars字典的設(shè)置是跟蹤止盈的函數(shù)的參數(shù)以及變量,在跟蹤止盈代碼函數(shù)中需要傳入此字典方能正常調(diào)用。
跟蹤止盈所需的參數(shù)、變量。
2. 計(jì)算雙均線技術(shù)指標(biāo)和平均真實(shí)波幅ATR。并且判斷出多空趨勢,并用trend進(jìn)行標(biāo)記多空信號。
3. 策略開平倉代碼,開倉條件非常的簡單,金叉開倉,跟蹤止盈平倉。
1)策略開倉部分。
Run:
2) 策略平倉部分。
其中最主要的是,當(dāng)策略開倉后我們需要調(diào)用點(diǎn)及財(cái)經(jīng)py模塊中的StopATR_range()方法。我們需要傳入k線數(shù)據(jù)以及含有跟蹤止盈所需的參數(shù)和變量。
如下圖所示:
Run:
3) 執(zhí)行策略回測。直接調(diào)用main方法,就可以執(zhí)行策略回測了。
Run:

資金曲線:
從圖片上看,比之前的AF加速算法跟蹤止盈更容易抓住大的波段,但是會大多數(shù)情況下會觸及初始止損。
小結(jié)。
跟蹤止盈函數(shù)內(nèi)部代碼量并不多,但是它所發(fā)揮的作用是不可小覷的。在使用過程中傳入的字典參數(shù)名及數(shù)據(jù)類型一定要與函數(shù)內(nèi)一致。
最后
“k線波幅加速算法”跟蹤止盈,是作者分享的第二個非常好的跟蹤止盈方法。當(dāng)然了,它的內(nèi)部算法是可以進(jìn)行微調(diào)的。
例如:跟蹤止盈線上調(diào)的尺寸,按ATR波動率的百分比來決定等等,都值得我們?nèi)パ芯克?/p>
文章及策略僅供學(xué)習(xí)交流,切勿直接實(shí)盤!






