XAUXXИсследовательский журнал
← Вернуться к журналу

У советника MT4 по золоту нет логов в выходные — он завис? Сначала различите котировки и таймерные события

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

Thomas · Обновлено 2026-11-14

Автор: Томас|Практика MT4|14 ноября 2026 г.

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

Без новых котировок событие котировки может не возникнуть

Официальная документация MetaQuotes по MQL4 поясняет, что событие NewTick возникает и вызывается корректно объявленная функция-обработчик OnTick только тогда, когда символ графика, к которому прикреплён EA, получает новую котировку. Если программа помещает проверку и логирование в эту точку входа, то в периоды без новых котировок новых записей выполнения может не быть.

Это не означает, что все EA обязаны ждать котировок. Программа может использовать и такие точки входа, как таймер или события графика. Поэтому нельзя при виде «выходных» объяснять всё молчание одним и тем же образом и тем более нельзя считать, что обновление другого символа доказывает получение котировок текущим графиком золота.

Сначала определите, какое событие ожидает программа

![Оригинальная схема точек входа событий EA](/media/141800ab-1111-4444-8888-123456789abc.png)

На рисунке — оригинальная учебная схема процесса, а не реальные котировки; реальный торговый счёт также не показан. Первый путь зависит от новых котировок по символу графика; второй — от успешной подписки программы на таймер. Таймерное событие может запускать логику проверки, но это не означает, что текущий рынок позволяет совершить сделку; программа всё равно должна проверять торговые условия и достоверность данных.

Официально рекомендуется подписываться на таймер при инициализации и отменять подписку при выгрузке. Если написать только функцию OnTimer, но не подписаться, это не доказывает, что она будет периодически выполняться. Имя функции, параметры и тип возвращаемого значения также должны соответствовать требованиям обработчика событий; любая опечатка может привести к тому, что ожидаемая точка входа не будет вызвана.

Как обычному пользователю проверять шаг за шагом

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

Затем просмотрите соответствующие логи, например Experts и Journal, сохраните последние записи об инициализации, выгрузке или ошибках. Обратите внимание на фильтрацию логов, дату и на то, не смотрите ли вы другой терминал. Если сам EA печатает лог только при возникновении торговых условий, отсутствие новых записей может означать лишь то, что условия печати не выполнены, и это не доказывает, что программа никогда не запускалась.

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

Что проверять в первую очередь при наличии исходного кода

В тестовой среде проверьте объявления точек входа OnInit, OnTick, OnTimer и необходимые подписки, а с помощью диагностических логов с умеренной частотой подтвердите фактический путь выполнения. В логах можно фиксировать тип события, символ и время данных, чтобы не писать только «нормально» без контекста для проверки. Не записывайте пароли счёта или другие учётные данные в диагностический вывод.

Работа терминала, загрузка графика, срабатывание событий и исполнение сделок — это разные уровни. То, что таймер продолжает выводить данные, не доказывает свежесть котировок и не доказывает, что ордер обязательно удастся отправить. Если событие котировки не срабатывает, тем более не следует проверять «живость» программы расширением торговых прав или повторной отправкой ордеров.

Почему частое переключение периода может мешать проверке

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

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

Как понять, что проверка завершена

Если подтверждено, что по текущему символу нет новых котировок, логика находится только в точке входа котировок и других свидетельств ошибок нет, можно зафиксировать состояние как ожидание котировок, а не заявлять, что программа исправлена. Если таймерная точка входа должна работать, но вывода постоянно нет, продолжайте проверять подписку, результат инициализации и ошибки программы; нельзя объяснять всё закрытием рынка.

После возобновления котировок также следует сначала сверить метки времени и состояние, а затем убедиться, что программа обрабатывает новые события как ожидалось. Возобновление событий не доказывает, что торговая стратегия имеет преимущество в доходности; ордера по-прежнему подвержены рискам спреда, проскальзывания и исполнения. Цель проверки — выяснить, на каком уровне фактически остановилась программа, а не получить ответ ценой риска на реальном счёте.

原创流程教学示意,非真实行情,不代表任何EA已通过测试。
原创流程教学示意,非真实行情,不代表任何EA已通过测试。
Предупреждение: торговля с кредитным плечом может привести к значительным убыткам. Материалы предназначены для исследований и обучения, без гарантий доходности. Прошлые результаты не предсказывают будущие.
WECHAT

Connect with Thomas

Gold research · Trading reviews · MT4 discussions

WeChat ID:xauxx666
Open QR image

Scan with WeChat to add. On mobile, open and save the image, then select it from your album in WeChat Scan.

Thomas’s WeChat QR code, ID xauxx666