Logify - это библиотека логов для MQL, предназначенная для упрощения отладки, отслеживания и мониторинга советников и индикаторов. Она предоставляет структурированные, настраиваемые и организованные журналы непосредственно на графике или в терминале, с поддержкой уровней журнала, гибких форматов и нескольких обработчиков. Легкое, элегантное решение, которое легко интегрировать в ваши MQL-проекты.
📦 Особенности
🚀 Установка
MQL5/Include/
#include <Logify/Logify.mqh>🔧 Пример быстрого запуска
Простой пример с настройками по умолчанию:
//+------------------------------------------------------------------+ //| Импорт| //+------------------------------------------------------------------+ #include <Logify/Logify.mqh> CLogify Logify; //+------------------------------------------------------------------+ //| Функция инициализации эксперта| //+------------------------------------------------------------------+ int OnInit() { //--- Пример журналов Logify.Debug("Initialization started"); Logify.Info("Account balance is OK"); Logify.Alert("Take profit reached"); Logify.Error("Failed to send order", "Order", "Reason: No money"); Logify.Fatal("Critical error: Invalid input parameters"); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+
Расширенный пример с пользовательскими настройками обработчика. В этом примере мы сохраняем запись журнала в файлы и в комментарии к графику. Кастомизируем настройки для каждого из них.
//+------------------------------------------------------------------+ //| Импорт| //+------------------------------------------------------------------+ #include <Logify/Logify.mqh> CLogify Logify; //+------------------------------------------------------------------+ //| Функция инициализации эксперта| //+------------------------------------------------------------------+ int OnInit() { //--- Настройте обработчик комментариев MqlLogifyHandleCommentConfig config_comment; config_comment.size = 10; config_comment.frame_style = LOG_FRAME_STYLE_SINGLE; config_comment.direction = LOG_DIRECTION_UP; config_comment.title = "My Expert"; //--- Создайте и настройте обработчик комментариев CLogifyHandlerComment *handler_comment = new CLogifyHandlerComment(); handler_comment.SetConfig(config_comment); handler_comment.SetLevel(LOG_LEVEL_DEBUG); handler_comment.SetFormatter(new CLogifyFormatter("{date_time} [{levelname}]: {msg}","hh:mm:ss")); //--- Настройте обработчик файлов MqlLogifyHandleFileConfig file_config; file_config.CreateDateRotationConfig("my_expert","logs",LOG_FILE_EXTENSION_LOG,10,100,CP_UTF8); //--- Создайте и настройте обработчик файлов CLogifyHandlerFile *handler_file = new CLogifyHandlerFile(); handler_file.SetConfig(file_config); handler_file.SetLevel(LOG_LEVEL_DEBUG); handler_file.SetFormatter(new CLogifyFormatter("{date_time} [{levelname}]: {msg} ({filename} | {origin} | {function})","hh:mm:ss")); //--- Прикрепите обработчик Logify.AddHandler(handler_comment); Logify.AddHandler(handler_file); //--- Пример журналов Logify.Debug("Initialization started"); Logify.Info("Account balance is OK"); Logify.Alert("Take profit reached"); Logify.Error("Failed to send order", "Order", "Reason: No money"); Logify.Fatal("Critical error: Invalid input parameters"); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+
Чтобы разобраться в настройках, рекомендую прочитать статьи ниже, где я рассказываю о каждом шаге развития библиотеки:
✔️ Уровни журналов
| Уровень | Описание |
|---|---|
| DEBUG | Развернутая информация для отладки |
| INFO | Общая информация |
| ALERT | Предупреждения или важные события |
| ERROR | Ошибки, требующие внимания |
| FATAL | Критические ошибки, остановка выполнения |
🖥️ Включенные обработчики
Каждый обработчик определяет, где будут отображаться или храниться журналы.
| Обработчик | Описание |
|---|---|
| Комментарий | Отображение журналов непосредственно на графике (Комментарий) |
| Консоль | Отображение логов в терминале MetaTrader |
| Файл | Сохранение логов в файлы .txt или .log |
| База данных | Хранит логи в локальной базе данных SQLite |
Вы можете использовать один или сочетать несколько обработчиков одновременно, например, графический + файловый + консольный.
🛠️ Формат журнала
Пример шаблона форматирования:
"{date_time} [{levelname}]: {msg}" Доступные токены:
⚖️ Лицензия
Лицензия MIT - Свободно использовать для личных и коммерческих проектов.
👨💻 Автор
Разработан joaopedrodev с целью сделать разработку на MQL более профессиональной, организованной и эффективной.
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/59821
Rsi Ema Engulfing Bar V3
Бар Engulfing возникает ниже скользящей средней Ema, которая растет - Торговля на покупку -.
QuickTrend Scalper
Этот советник (EA) предназначен для высокочастотной торговли на 1-минутном графике (M1) на рынках форекс и криптовалют. Он использует RSI и свечные модели для определения сигналов на покупку и продажу, автоматически исполняя сделки с динамическими уровнями стоп-лосса, тейк-профита и трейлинг-стопа в зависимости от волатильности рынка.
Rsi Engulfing Bar V2
Индикатор Rsi
Баланс сил
Баланс сил (BOP) - это индикатор, первоначально разработанный Игорем Лившиным в 2001 году для измерения баланса сил между покупателями и продавцами во время каждой свечи.