Pine 脚本从 if 语句中删除旧行?
Pine script erase old line from inside if statement?
我试图从一个条件画一条水平线,然后从前一个条件为真时擦除这条线,但是如果我把要删除的代码放在 if 语句中,我会得到一个错误,它赢了如果我将要删除的代码放在 if 语句之外,则不画任何线条。
r = close > close[1] and close[1] > close[2]
selleverything = if r
l1 := line.new(bar_index[1], price1, bar_index, price1, color=color.red, style=line.style_solid,
width=1, extend=dS1 ? extend.right : extend.both)
上面画线没问题,但是如果我加上
line.delete(l1[1])
在 if 语句中我得到一个“无效表达式不能分配给变量”
如果我将 line.delete(l1[1]) 放在 if 语句之外,则不会绘制任何线条。
感谢任何帮助。
本例中的 if 语句在变量声明范围内。
selleverything = if r
改为将其移至全局范围,如下例所示:
//@version=4
study("My Script")
r = close > close[1] and close[1] > close[2]
var line l1 = na
price1 = close
dS1 = true
if r
l1 := line.new(bar_index[1], price1, bar_index, price1, color=color.red, style=line.style_solid, width=1, extend=dS1 ? extend.right : extend.both)
line.delete(l1[1])
- 声明
price1
和 dS1
变量,因为它们丢失了(相应地分配给您的代码)
- 预声明行
l1
变量。
- 将 if 语句移至全局范围。
我试图从一个条件画一条水平线,然后从前一个条件为真时擦除这条线,但是如果我把要删除的代码放在 if 语句中,我会得到一个错误,它赢了如果我将要删除的代码放在 if 语句之外,则不画任何线条。
r = close > close[1] and close[1] > close[2]
selleverything = if r
l1 := line.new(bar_index[1], price1, bar_index, price1, color=color.red, style=line.style_solid,
width=1, extend=dS1 ? extend.right : extend.both)
上面画线没问题,但是如果我加上
line.delete(l1[1])
在 if 语句中我得到一个“无效表达式不能分配给变量”
如果我将 line.delete(l1[1]) 放在 if 语句之外,则不会绘制任何线条。
感谢任何帮助。
本例中的 if 语句在变量声明范围内。
selleverything = if r
改为将其移至全局范围,如下例所示:
//@version=4
study("My Script")
r = close > close[1] and close[1] > close[2]
var line l1 = na
price1 = close
dS1 = true
if r
l1 := line.new(bar_index[1], price1, bar_index, price1, color=color.red, style=line.style_solid, width=1, extend=dS1 ? extend.right : extend.both)
line.delete(l1[1])
- 声明
price1
和dS1
变量,因为它们丢失了(相应地分配给您的代码) - 预声明行
l1
变量。 - 将 if 语句移至全局范围。