Предупреждающие сигналы (алерты)

В данном разделе под сигналом будет пониматься функция Alert для выдачи предупреждений пользователю терминала.

Термин "алерт", к сожалению, имеет множественные значения в MetaTrader 5. Существует 2 контекста, в которых он используется:

  • настраиваемые пользователем вручную алерты во вкладке Алерты в панели Инструменты; с помощью них можно отслеживать срабатывание простых условий по превышению ценой, объемами или временем заданных значений, и выдавать уведомления различными способами;
  • программные "алерты", генерируемые из MQL-кода функцией Alert; они никак не связаны с предыдущими;

Кроме того, слово "алерт", являющееся транслитерацией иностранного слова, часто заменяется в русском на "сигнал". И в этом случае возможно ошибочное толкование из-за совпадения с торговыми сигналами — сервисом mql5.com, доступном также и в MQL5 через специальный набор API (выходит за рамки данной книги, смотрите документацию на сайте).

void Alert(argument, ...)

Функция выводит сообщение в диалоговое немодальное окно, сопровождая это стандартным звуковым сигналом (в соответствии с выбором в диалоге Настройки, на закладке События, в терминале). Если окно скрыто, оно будет показано поверх главного окна терминала (его можно затем закрыть, свернуть или отодвинуть, продолжая работу с главным окном). Сообщение также добавляется и в журнал экспертов, с пометкой "Alert".

В интерфейсе MetaTrader 5 нет команды, чтобы вручную открыть окно с алертами, если оно было перед этим закрыто. Чтобы вновь увидеть список предупреждений (в чистом виде, без необходимости фильтровать журнал), потребуется каким-либо образом сгенерировать новый сигнал.

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

Демонстрация работы функции Alert с изображением экрана была показана во вводном примере с приветствиями, в первой главе, в разделе Вывод данных.

Используйте Alert вместо Print в тех случаях, когда следует обратить внимание пользователя на выводимую информацию. Однако не следует злоупотреблять ею, поскольку частое появление окна может затруднить работу пользователя, вынудит его игнорировать сообщения или остановить MQL-программу. Предусмотрите в своей программе алгоритм по ограничению частоты возможной генерации сообщений.