Скрипт Pine стирает старую строку изнутри оператора 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, строки не будут нарисованы.

Любая помощь приветствуется.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
0
693
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Оператор 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])
  1. Объявлены переменные price1 и dS1, так как они отсутствовали (соответственно назначьте вашему коду)
  2. Предварительно объявленная строка l1 переменная.
  3. Оператор if перемещен в глобальную область.

Другие вопросы по теме