在Pine Script中,我们注意到CloseSig会随着时间Cross的变化而变化.我想保持值CloseSig,即使



在Pine Script中,我们注意到CloseSig随着timeCross的变化而变化。我希望保持值CloseSig,即使它更改了timeCross

我的代码如下:

//@version=5
indicator("Signal", overlay=true)
var float timeCross = na
var float TimeSig = na
var float CloseSig = na
var float Signal = na
em20 = ta.ema(close, 20)
em50 = ta.ema(close, 50)
CrSignal = ta.crossover(em20, em50)
Signal := CrSignal
if Signal
timeCross +=1
if timeCross == 1
TimeSig := ta.valuewhen(Signal, time, 0)
CloseSig := ta.valuewhen(Signal, close, 0)

在此处输入图像描述#首先了解错误

var float timeCross=na

这里您正在尝试递增,但无法递增na,因此使用0 初始化

var float Signal=na

在这里,您将布尔值重新分配给不可能的浮点值,因此将类型更改为bool`var bool Signal=naa

以下是我的解决方案:

//@version=5
indicator("Signal", overlay=true, max_labels_count=1)
var float timeCross = 0
var float TimeSig = na
var float CloseSig = 0
var bool Signal = na
em20 = ta.ema(close, 20)
em50 = ta.ema(close, 50)
CrSignal = ta.crossover(em20, em50)
Signal := CrSignal
if Signal
timeCross +=1
if timeCross == 1
TimeSig := ta.valuewhen(Signal, time, 0)
CloseSig := ta.valuewhen(Signal, close, 0)
txt = str.format("Date: {0, date}", TimeSig)
label.new(bar_index, low, str.tostring(CloseSig), style = label.style_label_up)
label.new(bar_index, high, txt, style = label.style_label_down)
plot(em20, color=color.lime)
plot(em50, color=color.red)
plotshape(CrSignal, "", shape.arrowup, location.belowbar, color.red, size=size.huge)

最新更新