如何只显示一次买入/卖出信号,而不是在每个栏上显示

  • 本文关键字:显示 信号 一次 pine-script
  • 更新时间 :
  • 英文 :


我正在处理下面的代码-问题是我在每个栏上都收到了买入/卖出信号。如何将其从每个条形图中删除,并仅在触发后获得信号?代码低于


study(title="Humble LinReg Candles", shorttitle="LinReg Candles ", format=format.price, max_labels_count=100, precision=4, overlay=true)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 200, defval = 11)
sma_signal = input(title="Simple MA (Signal Line)", type=input.bool, defval=true)
lin_reg = input(title="Lin Reg", type=input.bool, defval=true)
linreg_length = input(title="Linear Regression Length", type=input.integer, minval = 1, maxval = 200, defval = 11)
bopen = lin_reg ? linreg(open, linreg_length, 0) : open
bhigh = lin_reg ? linreg(high, linreg_length, 0) : high
blow = lin_reg ? linreg(low, linreg_length, 0) : low
bclose = lin_reg ? linreg(close, linreg_length, 0) : close
r = bopen < bclose
signal = sma_signal ? sma(bclose, signal_length) : ema(bclose, signal_length)
plotcandle(r ? bopen : na, r ? bhigh : na, r ? blow: na, r ? bclose : na, title="UpCandle", color=#19968c, wickcolor=#19968c, bordercolor=#19968c, editable= true)
plotcandle(r ? na : bopen, r ? na : bhigh, r ? na : blow, r ? na : bclose, title="DownCandle", color=#b12a72, wickcolor=#b12a72, bordercolor=#b12a72, editable= true)
//////////////////////////////////////////////////////
//Buy Sell Signals
buySignal = (r ? bopen : na) and (r ? bhigh : na) and (r ? blow: na) and (r ? bclose : na)
sellSignal = (r ? na : bopen) and (r ? na : bhigh) and (r ? na : blow) and (r ? na : bclose)
plotshape(buySignal, title="Buy", text="B", location=location.belowbar, style=shape.labelup, size=size.normal, color=#24c491, textcolor=color.white)
plotshape(sellSignal, title="Sell", text="S", location=location.abovebar, style=shape.labeldown, size=size.normal, color=#DA1D81, textcolor=color.white)
alertcondition(buySignal, title="LG Buy", message="Buy")
alertcondition(sellSignal, title="LG Sell", message="Sell")

我试过改变条件,但无法解决这个

这是因为您的buySignalsellSignal条件是多个条形图上的true

你可以有两个var标志来查看你是否已经处于买入或卖出位置。

将这些作为附加条件添加到您的buySignalsellSignal中,这样,如果您还没有处于某个位置,它们将仅为true

var is_buy = false
var is_sell = false
buySignal = not is_buy and (r ? bopen : na) and (r ? bhigh : na) and (r ? blow: na) and (r ? bclose : na)
sellSignal = not is_sell and (r ? na : bopen) and (r ? na : bhigh) and (r ? na : blow) and (r ? na : bclose)
is_buy := sellSignal ? false : buySignal ? true : is_buy    // Update the flag
is_sell := buySignal ? false : sellSignal ? true : is_sell  // Update the flag

最新更新