Октябрь 31, 2019

Добавляйте переменные значения в оповещениях

Теперь в оповещениях доступны сообщения с переменными значениями! В качестве переменных можно использовать: цены, значения индикаторов, время бара и другие. Когда оповещение сработает, вы получите актуальное значение переменной в сообщении о срабатывании.

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

Например, вы можете создать оповещение на символ 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}} — соответствующие серии индикатора, на который установлено оповещение. Серии индикатора — это те значения, которые вы видите на графике. Например, у встроенного индикатора Объём есть две серии — Объём и Средняя по объёму. Вы можете создать оповещение на такой индикатор и написать в сообщении следующее:

Volume: {{plot_0}}, Volume average: {{plot_1}}

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

Обратите внимание, что плоты нумеруются, начиная с нуля.

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

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

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

Однако такой способ обращения к плотам не всегда удобен. Чтобы облегчить эту задачу, мы добавили поддержку обращения к плотам по их названиям. Для этого нужно использовать плейсхолдер:

 {{plot("Name")}}

Где Name — название серии.

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

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

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

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

//@version=4
study("My Script")
plot(close, title="Series")

Укажите в сообщении оповещения:

{{plot("Series")}}

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

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

можно обратиться только к значениям MA. Чтобы обратиться к значениям скрипта “My Script”, его нужно выбрать в первом выпадающем списке. 

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

Например:

//@version=4
study("My Script")
alertcondition(close>open, message="Price {{ticker}} = {{close}}")

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

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

Значения из срабатываний можно использовать вместе с вебхуками, отправляя переменные значения из сообщения на нужные адреса. Это открывает ещё больше возможностей для тех, кто использует оповещения.