MQL4: красивое логирование событий для ваших ботов

Приветствую вас, господа MQL программисты!

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

Сегодня мы напишем небольшую библиотеку в ООП стиле на языке mql4, которая позволит нам вести свои собственные логи чего угодно. В прошлом уроке мы учились обрабатывать html страницы в сети, а сегодня мы будем сами создавать html страничку, которая и будет служить нам логом. Мы создадим небольшой класс, который можно легко подключить к любому советнику, скрипту, индикатору.

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

Типы файлов логов

С файлами формата html мы уже немного знакомы, но я бы хотел рассказать об общей структуре файла. Начинается файл всегда с тега <html>, что дает понять, что перед нами именно html файл разметки, а не, например, xml файл. Тег <html> парный, поэтому в самом конце документа его нужно закрыть тегом </html>.

Далее идет тег <head> … </head>. Внутри него, как правило, находятся ссылки на все подключаемые к документу файлы, а также различные метаданные. В нашем случае «голова» документа будет выглядеть так:

<head>
<title> Тестируем логи Setka: 2018.04.18 23:23 </title>
<link rel=stylesheet href= styles/default.css type=text/css>
</head>

Как видите, мы подключаем файл стилей default.css. Файл может называться по-разному, мы будем его генерировать внутри класса.

Далее будет уже тело документа, ограниченное тегами <body> … </body>, в которое мы и будем писать наши сообщения и скриншоты.

Теперь давайте разберемся с файлом стиля css. CSS это язык стилей, определяющий отображение HTML-документов. Например, CSS работает со шрифтами, цветом, полями, строками, высотой, шириной, фоновыми изображениями, позиционированием элементов и многим другим. То есть, по сути, html разметка отвечает на вопрос о том, что должно быть в документе и где это должно быть расположено, тогда как css файл содержит информацию, как это все должно выглядеть. Наш css файл будет иметь следующий вид:

#body { 
background-color: #F5F5F5; 
}
#title { 
font-size:200%; color: #00C853; 
}
#text { 
font-size: 150%; color: #00C853; 
}
#error { 
font-size: 180%; color: #D32F2F; 
}
#warning { 
font-size: 120%; color: #FFB74D; 
}

Последние три тега #text, #error и #warning (стандартное сообщение, ошибка и предупреждение) отвечают за цвет сообщения и величину шрифта. Вы, безусловно, можете добавить сколько угодно своих стилей. Тег body отвечает за цвет фона, его тоже можно поменять по вкусу. Если вы хотите сделать ваш лог очень красочным и не уступающим современному дизайну интернет ресурсов, это тоже можно сделать. Достаточно получить базовые знания в html и css. В современном мире подобные навыки вам наверняка еще много раз пригодятся, а изучение займет всего пару недель.

Заключение

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

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

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

Уроки по MQL , , ,