Как использовать переменные значения в оповещениях?

Вы можете использовать специальные плейсхолдеры, чтобы ввести переменные значения в текст оповещения. Например, можно создать оповещение для NASDAQ:AAPL и вписать такой текст:

{{exchange}}:{{ticker}}, price = {{close}}, volume = {{volume}} 

После срабатывания оповещения вы получите соответствующие значения в тексте оповещения:


Список возможных плейсхолдеров:

  1. {{ticker}} — символ выбранного инструмента, используемого при создании оповещения (AAPL, BTCUSD и т.д.).
  2. {{exchange}} — биржа, на которой торгуется инструмент, для которого создается оповещение (NASDAQ, NYSE, MOEX и т.д.). Обратите внимание, что для инструментов, данные которых предоставляются с задержкой, к названию биржи прибавляются "_DL" или "_DLY". Например: "NYMEX_DL".
  3. {{close}}, {{open}}, {{high}}, {{low}}, {{time}}, {{volume}} — отвечают значениям бара, на которые установлено оповещение. Обратите внимание, что оповещения на индикаторы, нестандартные графики и объекты рисования зависят от интервала, в то время как простые оповещения для цены (например, если цена пересекает какое-либо значение) всегда считаются на минутных барах. {{time}} — UTC в формате yyyy-MM-ddTHH:mm:ssZ, например 2019-08-27T09:56:00Z. Остальные значения переменных являются числами с фиксированной запятой — десятичным разделителем, отделяющим целую и дробную части. Например: 1245.25.
  4. {{timenow}} — время срабатывания оповещения, в формате обычного {{time}}. Возвращает время к ближайшей секунде вне зависимости от интервала.
  5. {{plot_0}}, {{plot_1}}, ... {{plot_19}} — соответствует выводимой серии индикатора, для которого используется оповещение. Обратите внимание, что объекты (plots) — отсчитываются от нуля. Самое высокое значение объекта (plot) равно 19 (доступно только 20 первых выводимых серий). Выводимые серии — это значения индикатора, который размещен на графике. Например, у встроенного индикатора объема две выводимые серии: объем и средняя по объему. Вы можете создать для них оповещение и написать в нем что-то подобное: Volume: {{plot_0}}, Volume average: {{plot_1}}.
  6. {{interval}} — возвращает временной интервал графика, на котором создано оповещение. Обратите внимание, что по техническим причинам в некоторых случаях этот плейсхолдер будет возвращать значение "1" вместо временного интервала графика. Все обычные, основанные на цене, оповещения (с условиями вроде "AAPL Crossing 120" или "AMZN Greater Than 3600") ориентируются на последнюю цену инструмента, поэтому временной интервал не важен в таких оповещениях. Поэтому все оповещения, основанные на цене, считаются на временном интервале — 1М, а плейсхолдер возвращает значение "1". Кроме того, на графиках с Range барами, для которых данные рассчитываются на интервале "1М", плейсхолдер {{interval}} также будет отображать значение "1" для любых созданных оповещений. С оповещениями для объектов рисования плейсхолдер будет работать, как и ожидается.

Плейсхолдеры с префиксом "strategy" используются только для оповещений на стратегии:

  • {{strategy.position_size}} — возвращает значение такого же ключевого слова в Pine, т.е. размер текущей позиции.
  • {{strategy.order.action}} — возвращает строку "купить" или "продать" исполняемой заявки.
  • {{strategy.order.contracts}} — возвращает количество контрактов исполняемой заявки.
  • {{strategy.order.price}} — возвращает цену, при которой была исполнена заявка.
  • {{strategy.order.id}} — возвращает ID исполняемой заявки (строка используется как параметр в одной из функций, создающей вызовы: strategy.entry, strategy.exit, strategy.order).
  • {{strategy.order.comment}} — возвращает комментарий исполняемой заявки (строка используется как параметр в одной из функций, создающей вызовы: strategy.entry, strategy.order или strategy.exit). Если комментарий отсутствует, будет использовано значение strategy.order.id.
  • {{strategy.order.alert_message}} — возвращает значение параметра alert_message, который может быть использован как создающий вызовы параметр в Pine для размещения заявок: strategy.entry, strategy.exit или strategy.order. Эта функция поддерживается только в четвертой версии (Pine v4).
  • {{strategy.market_position}} — возвращает текущую позицию стратегии в форме строки: "long", "flat" или "short".
  • {{strategy.market_position_size}} — возвращает размер текущей позиции как абсолютную величину (неотрицательное число).
  • {{strategy.prev_market_position}} — возвращает предыдущую позицию стратегии в форме строки: "long", "flat" или "short".
  • {{strategy.prev_market_position_size}} — возвращает размер предыдущей позиции как абсолютную величину (неотрицательное число).

После срабатывания оповещения перед вами появятся соответствующие значения:

Те же правила применяются к скриптам, написанным на языке Pine. Серии рассчитываются на основе вызова заявки в коде. Список функций представлен ниже. Их серии могут быть использованы для создания оповещений:

  • plot;
  • plotshape;
  • plotchar;
  • plotarrow;
  • plotbar;
  • plotcandle.

Если аргумент серии в такой функции содержит логический тип данных, 0 или 1, то будет заменен в тексте уведомления. Имейте в виду, что некоторые функции (plotcandle и plotbar) отображают по четыре серии каждая, и каждая из них будет принята в расчет в логике нумерования.

Так как этот метод оценки объектов (plots) не всегда удобен, мы добавили возможность распознавать их по названию. Для этого используйте плейсхолдер {{plot("Name")}}, где Name — это название серии.

Для встроенных индикаторов единственными поддерживаемыми названиями являются их названия на английском языке. На примере показан индикатор объема и доступ к сессии через его название: 

Volume: {{plot("Volume")}}, Volume average: {{plot("Volume MA")}} 

Похожим образом вы можете получить доступ к сериям в Pine, для этого необходимо указать имя из названия аргумента соответствующей функции (поддерживается для всех объектов функций за исключением plotcandle и plotbar), в этом случае язык уже не имеет значения. Если у вас нет доступа к коду, имя все равно можно увидеть в настройках стиля.

Например, чтобы получить доступ к значениям этого скрипта:

//@version=4
study("My script")
plot(close, title="series")
Generic

Нужно добавить {{plot("series")}} в текст оповещения.

Имя также отображается в настройках скрипта:

При использовании нескольких индикаторов в одном оповещении, вы можете использовать значения первого — того, который показан первым в выпадающем списке. Например:

Если в оповещении прописаны эти настройки, вы сможете отобразить только значения МА. Чтобы отобразить значения индикатора "My script", необходимо выбрать значение в первом выпадающем меню. 

Вы можете уточнить в новом плейсхолдере аргумент функции alertcondition. Например:

//@version=4
study("My script")
alertcondition(close>open, message="price {{ticker}} = {{close}}")
Generic

Сообщение из аргумента автоматически подтягивается в окошко ввода текста оповещения.

Пожалуйста, обратите внимание, что при создании оповещения с условием из функции alertcondition, замена значения будет работать в скриптах, написанных на четвертой версии (Pnie v4) или выше.

Значения в сработавшем оповещении могут одновременно использоваться с веб-хуками, которые отправят переменные значения из сообщения на нужные адреса. Также вы можете использовать сторонние приложения, такие как TradingView Alerts для MT4/MTS, которые уже настроены для работы с переменными значениями. Примеры синтаксиса для их использования можно найти в этом скрипте. Это откроет вам еще больше возможностей в использовании оповещений.