Логи советника: как воспроизвести инцидент постфактум
Содержание (6)
- Вывод: без логов инцидент в советнике не разобрать
- Зачем нужны три типа логов
- Значения решения: без чисел не отличить закономерность от случайности
- Причина пропуска: чаще всего её опускают, а она важнее всего
- Исполнение: фиксируем то, что происходит вне советника
- Что писать в одной строке: пример формата
- Порядок проверки для тех, кто запускает советник
- Ограничения и предостережения
- Итоги
Содержание
- Вывод: без логов инцидент в советнике не разобрать
- Зачем нужны три типа логов
- Значения решения: без чисел не отличить закономерность от случайности
- Причина пропуска: чаще всего её опускают, а она важнее всего
- Исполнение: фиксируем то, что происходит вне советника
- Что писать в одной строке: пример формата
- Порядок проверки для тех, кто запускает советник
- Ограничения и предостережения
- Итоги
Вывод: без логов инцидент в советнике не разобрать
Сначала вывод. В лог советника нужно писать минимум три вещи, по одной строке на каждую: «значения, на которых основано решение», «причина, по которой вход не состоялся» и «результат исполнения». Имея их, можно постфактум восстановить как неожиданную сделку, так и ситуацию, когда «ничего не произошло». Без них при убытке или при нуле сделок не отделить, в чём причина: в логике 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 и т. д.);
- не пишите на каждом тике, только в момент принятия решения.
Если выводить лог на каждом тике, он быстро разрастается, занимает диск, и нужные строки тонут в массе лишних. Базовое правило: «один раз при закрытии бара».
Порядок проверки для тех, кто запускает советник
Если вы используете советник, двигайтесь по шагам, и причина найдётся быстрее.
- Во вкладке «Эксперты» в MT5 проверьте, что EA вообще пишет собственные логи.
- Найдите строку EVAL на момент неожиданной сделки и посмотрите значения и порог.
- За период без входов посмотрите строки SKIP и подсчитайте, какие причины встречаются чаще.
- По строкам FILL сверьте разницу между запрошенной ценой и ценой исполнения и код возврата.
- Сопоставьте время с вкладкой «История операций» (записи на стороне брокера).
Пересмотреть настройки поможет руководство по настройке EA, а о среде для круглосуточной работы читайте в разделе VPS.
Ограничения и предостережения
Логи не всесильны. Скажем об этом честно.
- Чего нет в логе, того не узнать. Ситуации, которые разработчик не предусмотрел, просто не записываются.
- Лог не обязательно верен. Если ошибка есть в самом коде, который пишет лог, будут записаны неверные значения.
- Лог не оценивает качество рыночных решений. Он показывает лишь, работал ли советник по своей спецификации, а не то, прибыльна ли эта спецификация.
- Избыток логов тоже создаёт проблемы. Огромные логи занимают место, и в них легче что-то пропустить.
- В бэктесте, на демо- и на реальном счёте логи значат разное. В тестере проскальзывание и отказы воспроизводятся не так, как в реальности, поэтому при сравнении логов исполнения учитывайте разницу сред.
Итоги
- В лог пишите три типа записей — «значения решения», «причина пропуска» и «исполнение» — по одной строке.
- Чаще всего опускают причины отказа, хотя именно они полезнее всего, когда нужно выяснить, почему «не работает».
- Если заранее определить теги и коды причин, по логу можно искать и подсчитывать события.
- Выводите записи один раз на закрытый бар, а не на каждом тике.
- Лог показывает лишь то, работал ли советник по спецификации. Вопрос о прибыльности требует отдельной проверки.
Другие советы по работе с MT5 собраны в разделе знания об EA и MT5.
По теме
2026-11-04
MagicNumber: как запускать несколько EA на одном счёте
2026-11-14
Push-уведомления MT5 из советника: настройка и дизайн
2026-11-07
Стоп-уровень и уровень заморозки: почему не ставится SL
2026-11-06
Коды отказа ордеров MT5: в каком порядке искать причину
📧 Бесплатный email-курс (8 писем) + пакет из 13 индикаторов MT5 только для подписчиков
* Конфиденциальность строго защищена. Отписаться можно в любое время.
Есть вопрос о советниках или Forex?
Задайте его на трейдерском форуме Nattzy (бесплатная регистрация). Можно спрашивать не только по этой статье — о настройке советников, выборе брокера и многом другом.
Спросить на Nattzy ↗