以下是一個使用前一波低點作為移動停利的策略範例
//@version=4
study("Moving Stop Loss Based on Previous Swing Low", overlay=true)
// 定義策略參數
risk = input(title="Risk Percentage", type=input.float, defval=1.0, minval=0.1, maxval=5.0, step=0.1) / 100
trail = input(title="Trail Percentage", type=input.float, defval=0.5, minval=0.1, maxval=2.0, step=0.1) / 100
// 計算停利價格和損失比例
stopPrice = 0.0
stopLoss = 0.0
if low[1] < low[2] and low[1] < low[0]
stopPrice := low[1]
stopLoss := stopPrice * (1 - risk)
// 移動停利
isLong = strategy.position_size > 0
isShort = strategy.position_size < 0
if isLong
strategy.exit("Long Exit", stop=stopLoss, trail_percent=trail)
else
strategy.exit("Short Exit", stop=stopLoss, trail_percent=trail)
// 繪製停利價格和損失比例
plot(stopPrice, title="Stop Price", style=plot.style_linebr, color=color.yellow, linewidth=2)
plot(stopLoss, title="Stop Loss", style=plot.style_linebr, color=color.red, linewidth=2)
這個策略使用了兩個輸入參數 risk
和 trail
。risk
是指損失比例,即當市場價格跌至設定的停損價格時,損失占交易本金的比例。trail
是指停利比例,即在交易獲利時,停利價格相對於當前市場價格的偏差比例,用於移動停利。
在計算停利價格和損失比例時,如果前三個 K 線中的前一波低點低於前兩個和當前的低點,則設定停利價格為前一波低點,損失比例為停利價格乘以 risk
。如果沒有符合條件的波低點,則不進行任何操作。
最後,使用 strategy.exit()
函數進行移動停利。如果當前持有多頭頭寸,則使用 strategy.exit("Long Exit", stop=stopLoss, trail_percent=trail)
進行移動停利,其中 stop
參數為停損價格,trail_percent
參數為移動停利比例。如果當前持有空頭頭寸,則使用 `strategy.exit(“Short Exit”, stop=stopLoss, trail)
另外有比例停例法,請參考下篇文章
One thought on “移動停利的策略(2)前波低點”