在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)