移動停利的策略(2)前波低點

以下是一個使用前一波低點作為移動停利的策略範例

//@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)

這個策略使用了兩個輸入參數 risktrailrisk 是指損失比例,即當市場價格跌至設定的停損價格時,損失占交易本金的比例。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)前波低點

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *