Логи терминала МТ4 — где их смотреть и зачем они нужны?

Добрый день, господа трейдеры!

Многие из вас уже попробовали себя в ручной торговле на форекс и, скорее всего, у большинства пока не получается. Ничего страшного, ведь любой навык, даже такой, как торговля на финансовых рынках, приходит с опытом. Но зарабатывать, конечно же, всем хочется уже сейчас. Именно этим и объясняется повышенный интерес к автоматизированным системам торговли или, по-простому, к ботам, или советникам.

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

Что скрывают Логи терминала MT4

Лаборатория ProfitFX

Как вы наверняка знаете, в этом разделе форума содержится довольно много тем, каждая из которых посвящена разработке того или иного советника. Кто их создает и зачем? Ответ прост – эти темы создают такие же пользователи, как и вы, которые изучили язык mql4 и научились программировать советники. И когда возникает интересная идея для нового форекс робота — форумчане делятся ей с общественностью.

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

Логи терминала

Все мы люди, и программисты в том числе. А люди, бывает, совершают ошибки. И советников это, конечно же, тоже касается. Бывают ошибки, которые не пропускает сам компилятор – программа, в которой пишутся советники. Такие баги легко устранимы — их очень легко найти. В конце концов, советник просто не скомпилируется, пока подобная ошибка не будет устранена. А бывают гораздо более коварные ошибки — на уровне логики. Их компилятор не считает за таковые и спокойно пропускает, поэтому они находятся в процессе эксплуатации советника.

При разработке программного обеспечения поиском ошибок занимаются тестировщики. У программистов форума, конечно же, таких людей нет, поэтому этой работой занимаются простые пользователи. И, как я уже говорил, у них есть стимул – в конце работы они получают качественного бота (или не получают, если идея себя не оправдала и заставить работать в прибыль конкретную систему так и не получилось).

Надо признать, ошибки в логике советников – не редкость и сообщений от пользователей об ошибках в работе советников немало. Но довольно часто эти сообщения носят примерно следующий характер: «Сегодня бот открыл по USDJPY продажу, хотя не должен был/должен был открыть покупку» или нечто подобное. Программисты хоть и не глупые люди, но даром телепатии не обладают (утверждать не берусь – просто догадки). Поэтому по таким сообщениям, даже снабженным скриншотами, что-либо понять трудно. Именно поэтому вы и видите после таких сообщений призывы к уважению чувств программистов и требования прикрепить логи терминала.

Типы лог файлов терминала

Так что же все-таки такое эти логи? Когда разбивается самолет, все сразу бросаются искать так называемый «черный ящик», который даст все ответы на причины произошедшей катастрофы. Это не значит, что в «черном ящике» имеется только эта информация – в него записывается абсолютно все данные, начиная со взлета и заканчивая посадкой. Логи – это что-то вроде «черного ящика» для терминала.

В самом терминале вы можете найти три источника для логирования. Первый из них – журнал тестера стратегий:

Сами файлы логов находятся в папке терминала /tester/logs. В них содержится вся информация по процессу тестирования советника и если ошибки возникают именно на этапе тестирования или оптимизации робота — смотреть нужно именно этот тип логов. Выглядит лог-файл так:

В этих логах вы найдете информацию о том, как протекало тестирование или оптимизация эксперта, какие данные были использованы и все ошибки, связанные с этим. Все сообщения об ошибках экспертов содержат специальный код, по которому можно определить причину ошибки. Например, те, у кого мало оперативной памяти на рабочей машине, могут увидеть следующее сообщение: «HistoryBase: not enough memory». Дело в том, что тестер все котировки, необходимые для проведения тестов загружает в оперативную память. И если вы тестируете за длительный срок, объем данных вполне легко переваливает за 8 Гб. Поэтому, когда работает одновременно 4-6 терминалов, такое сообщение будет периодически появляться.

Все, что нужно сделать — закрыть терминал, очистить оперативную память и попробовать снова. Сообщение «optimization stopped» говорит о том, что оптимизация завершена. Также обычно указывается время, которое она заняла и количество проходов. Еще одно сообщение: «TestGenerator: spread set to 30» указывает на величину спреда, которая была выставлена для теста. Поэтому, если у вас сильно красивые результаты, обратите внимание, не поставили ли вы неадекватно маленький спред для вашего теста. Также в начале теста в журнал записываются все параметры эксперта («inputs»). Ну и, конечно же, все операции с ордерами также будут отображены в этом логе. И последнее — в лог записываются и все ошибки, которые происходят при тестировании и оптимизации, по кодам которых можно определить причину их возникновения.

Когда ваши советники уже прикреплены к графикам и работают в режиме реального времени на вашем счете, всю информацию по их работе вы можете увидеть в окне «Терминал» на вкладке «Эксперты» (это второй источник логов):

Этим записям соответствуют логи, находящиеся в папке терминала /mql4/logs. Тут вы сможете найти всю информацию по работе экспертов, все ошибки и любые другие события и сообщения. Вот как выглядит этот лог:

Тут вы в основном увидите различные сообщения экспертов (отладочные и информационные), сообщения о запуске (initialized, loaded successfully) и остановке (removed, uninit) экспертов и сообщения об ошибках. Все сообщения об ошибках экспертов содержат специальный код, по которому можно определить причину ошибки. Основная часть сообщений появляется тут по вине самих экспертов — часто в коде советника авторы оставляют специальную функцию, которая выводит сообщения о различных событиях в лог-файл. В основном это необходимо для отладки, поэтому многие советники снабжены параметром, который отключает подробное логирование работы эксперта. Параметр этот, как правило, называется Debug или производные от этого слова и содержит только два значения: true/false.

И третий тип логов – общий для терминала:

На вкладке «Журнал» окна «Терминал» вы можете найти основные события, связанные с работой терминала и вообще все события, что были на этом счете. Это — открытия, закрытия, модификация ордеров (открытых как вручную, так и при помощи советников), а также различные ошибки вроде потери связи с сервером. Вот как выглядит этот лог:

Эти логи содержат также записи об обновлениях терминала («LiveUpdate»), о смене паролей («investor password changed»), смене счетов, обрывах связи, входе и выходе, установке («loaded successfully») и удалении с графика экспертов («removed») и прочую сервисную информацию.

Поэтому если вы пытаетесь понять, почему у всех, кто использует какой-либо советник ордер открылся, а у вас нет, в первую очередь причину нужно искать тут (возможно, был обрыв связи с сервером брокера). Найти эти логи проще простого. Они находятся в папке терминала /logs.

Заключение

Любой современный терминал, предназначенный для торговли на финансовом рынке – достаточно хорошо продуманный программный продукт. Это инструмент трейдера и от того, насколько хорошо вы знаете его функционал — зависит ваш успех в торговле. Знаний о том, что из себя представляют различные инструменты анализа рынка очень важны, но если вы не будете иметь представление о технической стороне работы на рынке — ваш взгляд на рынок будет не совсем полным.

Тема на форуме

С уважением, Дмитрий аkа Silentspec
TradeLikeaPro.ru

В помощь Трейдеру, Новичкам, Софт для трейдинга , , , ,