问题描述
想法:开仓后,我们会记住最大蜡烛读数,并在每支新蜡烛后寻找最高价格。根据最高价格,我们设定止损。例如,低25点,但不高于当前蜡烛的收盘价。请帮我。 enter image description here
解决方法
有关Pine's execution model的详细信息,请参见此处。
请注意,此处如何使用var
仅在第一个小节上初始化变量,这具有将其值从小节传播到小节的次要作用。
在此,我们使用两次ATR(7)作为入场时从low
减去之后的最高交易高点中减去的值。
//@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",1,plot.style_circles)