- Вывод сообщений в журнал
- Предупреждающие сигналы (алерты)
- Вывод сообщений в окно графика
- Диалоговое окно сообщений
- Звуковые оповещения
Предупреждающие сигналы (алерты)
В данном разделе под сигналом будет пониматься функция Alert для выдачи предупреждений пользователю терминала.
Термин "алерт", к сожалению, имеет множественные значения в MetaTrader 5. Существует 2 контекста, в которых он используется:
- настраиваемые пользователем вручную алерты во вкладке Алерты в панели Инструменты; с помощью них можно отслеживать срабатывание простых условий по превышению ценой, объемами или временем заданных значений, и выдавать уведомления различными способами;
- программные "алерты", генерируемые из MQL-кода функцией Alert; они никак не связаны с предыдущими;
Кроме того, слово "алерт", являющееся транслитерацией иностранного слова, часто заменяется в русском на "сигнал". И в этом случае возможно ошибочное толкование из-за совпадения с торговыми сигналами — сервисом mql5.com, доступном также и в MQL5 через специальный набор API (выходит за рамки данной книги, смотрите документацию на сайте).
void Alert(argument, ...)
Функция выводит сообщение в диалоговое немодальное окно, сопровождая это стандартным звуковым сигналом (в соответствии с выбором в диалоге Настройки, на закладке События, в терминале). Если окно скрыто, оно будет показано поверх главного окна терминала (его можно затем закрыть, свернуть или отодвинуть, продолжая работу с главным окном). Сообщение также добавляется и в журнал экспертов, с пометкой "Alert".
В интерфейсе MetaTrader 5 нет команды, чтобы вручную открыть окно с алертами, если оно было перед этим закрыто. Чтобы вновь увидеть список предупреждений (в чистом виде, без необходимости фильтровать журнал), потребуется каким-либо образом сгенерировать новый сигнал.
Передача аргументов, вывод информации и общие принципы работы функции полностью совпадают с тем, что было изложено для функции Print.
Демонстрация работы функции Alert с изображением экрана была показана во вводном примере с приветствиями, в первой главе, в разделе Вывод данных.
Используйте Alert вместо Print в тех случаях, когда следует обратить внимание пользователя на выводимую информацию. Однако не следует злоупотреблять ею, поскольку частое появление окна может затруднить работу пользователя, вынудит его игнорировать сообщения или остановить MQL-программу. Предусмотрите в своей программе алгоритм по ограничению частоты возможной генерации сообщений.