Я пытаюсь нарисовать горизонтальную линию из условия, а затем стереть линию, когда предыдущее условие было истинным, но я получаю сообщение об ошибке, если помещаю код для удаления в оператор 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
переменная.