Plot, label и цвет в Pine Script: что выбрать

Обложка статьи «Plot, label и цвет в Pine Script: что выбрать»: Три учебных бара с закрытиями 100, 102 и 101 и порогом 101: цвет выделяет только второй бар, а число на третьем показывает метка.

Чем различаются plot, label и цвет

plot. Это самая частая функция вывода в Pine Script. У скрипта есть общий счёт выводов: в него идут все plot-функции и alertcondition, предел - 64. Деталь, на которой спотыкаются: если цвет у plot меняется по условию, например color = close > open ? color.green : color.red, такой вызов считается за два. 10 раскрашенных линий съедят уже 20 единиц из 64.

label. Метка ставится на бар и несёт текст. Текст бывает динамическим, то есть собранным из значений этого бара. Число напрямую в текст не попадёт: его сначала переводят в строку, обычно через str.tostring(). По умолчанию на графике остаётся около 50 последних меток, параметр max_labels_count поднимает предел до 500. Старые метки сверх лимита исчезают.

Рядом с label стоят plotchar и plotshape. Они тоже ставят подпись на барах, но только неизменную: plotchar - один символ, plotshape - строку, одну и ту же на всех барах, где сработало условие. А plotarrow текст не выводит вовсе, только стрелки вверх или вниз.

Цвет. Задаётся константой вроде color.red, через color.rgb() или через color.new(), который удобен, когда от одного базового цвета нужна разная прозрачность. Прозрачность идёт от 0 до 100: 0 - цвет полностью плотный, 100 - его не видно. И два ограничения из документации TradingView. Первое: в строке статуса, на шкале цен и в окне данных цвет показан без прозрачности, даже если на графике линия бледная. Второе: скрипт красит только то, что сам нарисовал; исключение - индикатор в отдельной панели может перекрасить бары или свечи основного графика.

Как выбрать вывод по задаче

ЗадачаИнструментОграничение
Показать ряд значений на всей историиplotобщий счёт до 64, раскрашенный по условию plot считается за два
Прочитать точное число на одном бареlabel с str.tostring()около 50 меток по умолчанию, до 500 через max_labels_count
Отметить срабатывание одинаковой подписьюplotchar или plotshapeтекст только неизменный
Показать направление без текстаplotarrowтолько стрелки, текста нет
Отличить "условие да" от "условие нет"цвет plot или свечейсам числа не добавляет, прозрачность не видна в строке статуса

Обычно связка такая: plot несёт значения, цвет показывает состояние, а label появляется там, где число нужно прочитать глазами, например на последнем баре. Как вынести порог в настройки индикатора, разобрано в материале про input в Pine Script, а общая картина языка - в обзоре Pine Script.

Учебная таблица из трёх баров и ограничения

Возьмём условные закрытия трёх баров: 100, 102 и 101. Порог 101, правило окраски: если close больше 101, бар зелёный, иначе серый.

Барcloseplotclose > 101Цвет
1100100нетсерый
2102102дазелёный
3101101нет, 101 не больше 101серый

Три учебных бара и порог 101

учебная схема · не котировка и не сигнал

close и порог 101

close и порог 101порог 101110021023101
  1. Бар 1 ниже порога, бар 2 выше, бар 3 ровно на пороге: по правилу close больше 101 он не проходит.
  2. Цвет различает только да и нет. Само число на баре 3 видно из plot-ряда или текста label.
  3. Цвет свечей в схеме - направление бара, а не правило окраски из таблицы.
Закрытия 100, 102 и 101 при пороге 101. Цвет меняется только на втором баре, третий бар равен порогу и остаётся серым.

Что отсюда видно. plot-ряд хранит все три числа: 100, 102, 101. Цвет хранит одно бинарное состояние, и первый и третий бары для него одинаковы, хотя закрылись по-разному. Будь третье закрытие 90, цвет остался бы тем же серым. Метка с str.tostring(close) на третьем баре покажет "101", и это единственный из трёх способов, где число написано прямо на баре. Значение plot тоже можно узнать, но в строке статуса и в окне данных, наведя курсор на бар.

Вторая ловушка - граница. Строгое "больше" оставляет бар, закрывшийся ровно на пороге, серым. Если по замыслу пороговое значение тоже должно считаться, нужно "больше или равно", и тогда третий бар станет зелёным. Таблицу из трёх строк стоит выписать до кода: так видно, какой бар на какой цвет должен лечь.

Для тех, кто подбирает цвет кодом: запись #F23645 и color.rgb(242, 54, 69) дают один и тот же цвет, это значение color.red в Pine Script. Пары шестнадцатеричных цифр идут по порядку: красный, зелёный, синий; ff соответствует 255, максимуму. F2 - это 15 x 16 + 2 = 242, 36 - это 54, 45 - это 69.

Эта таблица бумажная: здесь нет скомпилированного скрипта и нет проверки на истории. Её задача - выбрать способ вывода. Решение о сделке и риск считают по значениям, а не по цвету линии.

Материал образовательный и не является индивидуальной инвестиционной рекомендацией.

Источники

График TradingView с сигналами Buy и Sell индикатора Midas
Midas multi-индикатор for TradingViewОдин из самых продвинутых индикаторов для трейдинга
  • Сигналы без перерисовки
  • Интерактивный теханализ
  • 7 стратегий на выбор
Midas multi-индикатор for TradingViewСигнал, стоп и 3 цели - прямо на графике
  • Сигнал фиксируется по закрытию свечи
  • Стоп и 3 цели строятся автоматически
  • План сделки виден до входа