松脚本。动态止损

Pine Script. Dynamic Stop Loss

思路:开仓后,我们记住最大蜡烛读数,并在每根新蜡烛后寻找最高价。根据最高价格,我们设置止损。例如,比当前蜡烛的收盘价低 25 点,但不高。请帮我。 enter image description here

有关 Pine's execution model 的详细信息,请参阅此处。

请注意此处如何使用 var 仅在第一个柱上初始化变量,这具有将它们的值从柱传播到柱的次要效果。

我们在这里使用两次 ATR(7) 作为从入场时的 low 和之后的最高 in-trade 高位减去的值。

//@version=4
study("", "", true)
entry = rising(close, 5)
myAtr = 2 * atr(7)

var inTrade = false
var float stop = na
var float inTradeHi = na
if entry and not inTrade
    // Enter.
    inTradeHi := high
    inTrade := true
    stop := low - myAtr
if inTrade
    if close < stop[1]
        // Exit.
        inTrade := false
    else
        // In a trade; update stop.
        inTradeHi := max(inTradeHi, high)
        stop := inTradeHi - myAtr

tradeEntry = not inTrade[1] and inTrade
tradeExit = inTrade[1] and not inTrade
plotchar(tradeEntry, "tradeEntry", "▲", location.belowbar, color.lime, size = size.tiny)
plotchar(tradeExit,  "tradeExit",  "▼", location.abovebar, color.fuchsia, size = size.tiny)
plot(inTrade ? stop : na, "Stop", color.fuchsia, 1, plot.style_circles)