← К документации
LootX

Алерты из скриптов

Собрано: 2026-10-01 docs.lootx.trade
Основы

1Алерты из скриптов

Как скрипт на LootScript сообщает о сработке условия: alert() и alertcondition(), частота, взвод условий, куда приходит оповещение и чего у скриптовых алертов нет.

Скрипт может сообщить вам, что на живом рынке выполнилось условие: пробой уровня, всплеск дельты, пересечение линий. Для этого в LootScript есть две функции — alert(), который скрипт вызывает сам, и alertcondition(), условие, которое вы включаете вручную.

Сработка уходит в тот же конвейер, что и остальные оповещения терминала: запись в ленте Оповещения, звук, всплывающая плашка. Всё это считается внутри терминала на вашем компьютере: алерты работают, пока терминал запущен и скрипт стоит на графике.

Два способа

alert() alertcondition()
Кто решает, звенеть ли Код скрипта Вы: условие нужно взвести
Когда срабатывает По выбранной частоте, в том числе на незакрытом баре Только на закрытии бара, не чаще раза за бар
Текст Любая строка, можно собрать из чисел Фиксированный текст в коде
Где включается Всегда, пока скрипт на графике Галочкой в консоли редактора

Если алерт нужен всегда — пишите alert(). Если скрипт объявляет несколько сигналов, а звенеть должны только некоторые — объявите их через alertcondition() и взводите нужные.

alert(): алерт из кода

TEXT
alert(message, freq = alert.freq_once_per_bar_close)

message — строка. Числа в неё вставляют через str.tostring: "Цена " + str.tostring(close). Текст приходит в оповещение как есть, терминал его не переводит и не правит.

Частота задаётся константой:

Частота Когда звенит
alert.freq_once_per_bar_close По умолчанию. Один раз, когда бар закрылся: с первым обновлением следующего бара, по значениям закрытого
alert.freq_once_per_bar В первый момент, когда вызов выполнился на этом баре, — даже если бар ещё формируется. Дальше до следующего бара молчит
alert.freq_all На каждом пересчёте живого бара, где выполнился вызов

Частота считается для каждого вызова alert() отдельно: два вызова в одном скрипте не глушат друг друга. За один пересчёт скрипт отправляет не больше 16 алертов, остальные отбрасываются.

Пример: алерт на всплеск дельты, как только он появился на формирующемся баре.

Loot
indicator("Всплеск дельты", overlay = false)
mult = input.float(3.0, "Во сколько раз больше обычного", minval = 1.5, step = 0.5)
base = ta.sma(math.abs(delta.value), 50)
spike = delta.available and math.abs(delta.value) > base * mult
plot(delta.value, "Дельта", style = plot.style_columns, color = delta.value >= 0 ? color.teal : color.red)
if spike {
    alert("Всплеск дельты: " + str.tostring(delta.value, "#.##"), freq = alert.freq_once_per_bar)
}

Там, где дельты нет, delta.available ложно и алерт молчит — подробнее о правиле na в разделе Данные рынка.

alertcondition(): условие, которое взводите вы

TEXT
alertcondition(condition, title, message)

condition — логическое выражение, title — название условия, message — текст оповещения. title и message — строки прямо в коде, собрать их из чисел нельзя. Без message в оповещение уйдёт title.

Условие звенит только на закрытии бара, не чаще раза за бар и только если оно взведено. По умолчанию все условия выключены.

Добавьте скрипт на график

В редакторе скриптов нажмите Добавить на график.

Откройте вкладку «Вывод»

В консоли под кодом выберите вкладку Вывод. Там показаны значения рядов на последнем баре и список «Условия алертов (alertcondition) — взведите нужные».

Взведите условия

Отметьте галочками условия, по которым хотите получать оповещения. Если скрипт стоит на нескольких графиках, у каждого свой список.

История молчит

Алерты звенят только на живых обновлениях. Первый расчёт после загрузки графика, после смены инструмента и после подгрузки более старой истории считается историей: на прошлых барах ни alert(), ни alertcondition() не срабатывают. Поэтому, добавив скрипт на график, вы не получите пачку оповещений за прошлое.

Проверить условие на истории можно глазами: нарисуйте его меткой plotshape — она покажет каждый бар, где алерт бы сработал.

Куда приходит алерт

Каждая сработка:

  • Записывается в ленту «Оповещения» с источником «Скриптовый алерт». В записи — текст сообщения, имя скрипта и, для alertcondition(), название условия. Лента открывается отдельным окном или панелью рабочего пространства; фильтр Источники оставляет в ней только скриптовые алерты.
  • Проигрывает звук. Его выбирают в Настройки → Оповещения, блок «Звуки», строка «Скриптовый алерт»: список звуков и переключатель, который выключает звук.
  • Показывает плашку «Имя скрипта: текст».
  • Подсвечивает вкладку рабочего пространства, где стоит график со скриптом.

Остальные оповещения терминала описаны на странице Алерты и уровни.

Журнал: log.*

Для отладки условий есть журнал. log.info, log.warning и log.error пишут строку во вкладку Журнал консоли редактора — туда же, где Проблемы и Вывод.

  • Журнал, как и алерты, пишется только на живых обновлениях — на истории молчит.
  • На один бар — не больше 16 строк, остальные отбрасываются.
  • Консоль хранит последние 256 строк. Более старые вытесняются, их число показано как «вытеснено строк». Кнопка Очистить очищает журнал.
Loot
indicator("Проверка условия", overlay = true)
len = input.int(20, "Канал, баров", minval = 2, maxval = 500)
upper = ta.highest(high, len)[1]
plot(upper, "Верх канала", color = color.teal)
if barstate.islast {
    log.info("Закрытие " + str.tostring(close) + ", верх канала " + str.tostring(upper))
}

Пример: пробой канала

Скрипт рисует верхнюю границу канала, отмечает пробои треугольником и сообщает о них двумя способами: alert() звенит всегда, а условие «Пробой вверх» — только если вы его взвели.

Loot
indicator("Пробой канала с алертом", overlay = true)
len = input.int(20, "Канал, баров", minval = 2, maxval = 500)
upper = ta.highest(high, len)[1]
breakUp = ta.crossover(close, upper)
plot(upper, "Верх канала", color = color.teal)
plotshape(breakUp, "Пробой", style = shape.triangleup, location = location.belowbar, color = color.teal, size = size.small)
if breakUp {
    alert("Пробой вверх, цена " + str.tostring(close), alert.freq_once_per_bar_close)
}
alertcondition(breakUp, "Пробой вверх", "Цена закрылась выше канала")

Граница берётся со сдвигом [1] — по предыдущим барам, иначе текущий максимум всегда был бы внутри канала. Частота freq_once_per_bar_close значит, что алерт придёт после закрытия бара над каналом, а треугольник на графике останется ровно там, где алерт прозвенел. В реальном скрипте обычно оставляют один из двух способов — здесь оба для сравнения.

Дальше

https://docs.lootx.trade/ru/loot/alerts