Главная > Блог > Логи советника: как воспроизвести инцидент постфактум

эксплуатация EAотладка

Логи советника: как воспроизвести инцидент постфактум

Опубликовано: 2026-11-12Время чтения: ~2 мин
⏱ Эта статья отражает информацию на дату публикации. Показатели EA (PF, DD, годовая доходность) меняются с реальной торговлей и повторной валидацией — актуальные данные смотрите на страницах EA. Смотреть актуальные результаты EA →
Содержание (6)
  1. Вывод: без логов инцидент в советнике не разобрать
  2. Зачем нужны три типа логов
  3. Значения решения: без чисел не отличить закономерность от случайности
  4. Причина пропуска: чаще всего её опускают, а она важнее всего
  5. Исполнение: фиксируем то, что происходит вне советника
  6. Что писать в одной строке: пример формата
  7. Порядок проверки для тех, кто запускает советник
  8. Ограничения и предостережения
  9. Итоги

Вывод: без логов инцидент в советнике не разобрать

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

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

Сравнение рекомендованных брокеров →

🎁 Скачать бесплатный EA

📧 Бесплатный email-курс (8 писем) + пакет из 13 индикаторов MT5 только для подписчиков

* Конфиденциальность строго защищена. Отписаться можно в любое время.

Зачем нужны три типа логов

Одно решение советника — это, грубо говоря, цепочка: «рассчитать значения → проверить условия → отправить ордер → получить исполнение». Чтобы потом понять, на каком этапе всё пошло не так, нужна запись по каждому этапу.

Тип логаЧто записывать (пример)На какой вопрос отвечает
Значения решениявремя закрытого бара, значение индикатора, порог, спред«Почему вошли именно там?»
Причина пропускапо какому условию отказались (вне времени, спред выше лимита, уже есть позиция и т. п.)«Почему не вошли?»
Исполнениезапрошенная цена, цена исполнения, проскальзывание, код возврата, номер тикета«Исполнилось ли всё так, как задумано?»

Значения решения: без чисел не отличить закономерность от случайности

Лог с одной лишь записью «сигнал на покупку» почти бесполезен. Если неизвестно, насколько значение индикатора отличалось от порога, нельзя понять, условие едва выполнилось или выполнилось с запасом. Кроме того, всегда записывайте, по какому именно бару (время закрытого бара) принималось решение.

Причина пропуска: чаще всего её опускают, а она важнее всего

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

У нашего MEGAMAX DONCHIAN на форвард-тесте на демо-счёте Exness по состоянию на 11 ноября 2026 года ноль сделок. Причину отказов мы пока сами не выяснили, поэтому гадать здесь не будем. Но именно в таких случаях наличие лога с причинами пропуска сильно меняет трудоёмкость проверки. Ноль сделок не означает плохой результат, но пока лог не прочитан, нельзя уверенно сказать и что это «нормальный пропуск».

Исполнение: фиксируем то, что происходит вне советника

Был ли ордер отклонён или исполнился, но с большим проскальзыванием, — это вопрос не логики EA. Если сохранены код возврата и цена исполнения, проблему советника можно отделить от проблемы брокера или канала связи.

Что писать в одной строке: пример формата

Мы сводим одно решение в одну строку и используем фиксированный формат, по которому удобно искать позже.

[EVAL] bar=2026.11.10 14:00 sig=BUY val=1.234 th=1.200 spread=18 -> ENTRY
[SKIP] bar=2026.11.10 15:00 reason=SPREAD spread=45 max=30
[FILL] ticket=123456 req=152.340 fill=152.346 slip=6 ret=10009

Что важно при оформлении:

  • в начале ставьте тег типа записи (EVAL / SKIP / FILL), чтобы строки находились через grep или поиск;
  • время бара — это время закрытого бара, по которому принято решение (подразумевается серверное время);
  • причину пишите не фразой, а фиксированным кодом (SPREAD, TIME, POSITION и т. д.);
  • не пишите на каждом тике, только в момент принятия решения.

Если выводить лог на каждом тике, он быстро разрастается, занимает диск, и нужные строки тонут в массе лишних. Базовое правило: «один раз при закрытии бара».

Порядок проверки для тех, кто запускает советник

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

  1. Во вкладке «Эксперты» в MT5 проверьте, что EA вообще пишет собственные логи.
  2. Найдите строку EVAL на момент неожиданной сделки и посмотрите значения и порог.
  3. За период без входов посмотрите строки SKIP и подсчитайте, какие причины встречаются чаще.
  4. По строкам FILL сверьте разницу между запрошенной ценой и ценой исполнения и код возврата.
  5. Сопоставьте время с вкладкой «История операций» (записи на стороне брокера).

Пересмотреть настройки поможет руководство по настройке EA, а о среде для круглосуточной работы читайте в разделе VPS.

Ограничения и предостережения

Логи не всесильны. Скажем об этом честно.

  • Чего нет в логе, того не узнать. Ситуации, которые разработчик не предусмотрел, просто не записываются.
  • Лог не обязательно верен. Если ошибка есть в самом коде, который пишет лог, будут записаны неверные значения.
  • Лог не оценивает качество рыночных решений. Он показывает лишь, работал ли советник по своей спецификации, а не то, прибыльна ли эта спецификация.
  • Избыток логов тоже создаёт проблемы. Огромные логи занимают место, и в них легче что-то пропустить.
  • В бэктесте, на демо- и на реальном счёте логи значат разное. В тестере проскальзывание и отказы воспроизводятся не так, как в реальности, поэтому при сравнении логов исполнения учитывайте разницу сред.

Итоги

  • В лог пишите три типа записей — «значения решения», «причина пропуска» и «исполнение» — по одной строке.
  • Чаще всего опускают причины отказа, хотя именно они полезнее всего, когда нужно выяснить, почему «не работает».
  • Если заранее определить теги и коды причин, по логу можно искать и подсчитывать события.
  • Выводите записи один раз на закрытый бар, а не на каждом тике.
  • Лог показывает лишь то, работал ли советник по спецификации. Вопрос о прибыльности требует отдельной проверки.

Другие советы по работе с MT5 собраны в разделе знания об EA и MT5.

📧 Бесплатный email-курс (8 писем) + пакет из 13 индикаторов MT5 только для подписчиков

* Конфиденциальность строго защищена. Отписаться можно в любое время.

Есть вопрос о советниках или Forex?

Задайте его на трейдерском форуме Nattzy (бесплатная регистрация). Можно спрашивать не только по этой статье — о настройке советников, выборе брокера и многом другом.

Спросить на Nattzy ↗

Комментарии и вопросы