Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

Logify - Library for log management - библиотека для MetaTrader 5

Просмотров:
73
Рейтинг:
(3)
Опубликован:
\MQL5\Experts\Logify\ \MQL5\Include\Logify\ \MQL5\Include\Logify\Utils\ \MQL5\Include\Logify\Suppression\ \MQL5\Include\Logify\Handlers\ \MQL5\Include\Logify\Formatter\ \MQL5\Include\Logify\Error\Languages\ \MQL5\Include\Logify\Error\
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

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


📦 Особенности

  • Несколько уровней журнала: DEBUG, INFO, ALERT, ERROR, FATAL
  • Отображение логов непосредственно на графике, в терминале, в файлах или даже в базе данных
  • Настраиваемый формат и расположение логов
  • Модульная архитектура с несколькими обработчиками
  • Легкий и простой в интеграции и использовании


🚀 Установка

  1. Скопируйте папку /Logify по адресу:
    .
    MQL5/Include/
  2. Включите Logify в ваш советник, индикатор или скрипт:
    #include <Logify/Logify.mqh>
  3. Можно установить с помощью Git, просто зайдите в репозиторий и следуйте инструкциям.



🔧 Пример быстрого запуска

Простой пример с настройками по умолчанию:

//+------------------------------------------------------------------+
//| Импорт|
//+------------------------------------------------------------------+
#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}"

Доступные токены:

  • {levelname}: Имя уровня (DEBUG, INFO, ERROR и т. д.).
  • {msg}: Основное сообщение
  • {args}: Дополнительные аргументы или сведения
  • {timestamp}: Временная метка в секундах (Unix Time)
  • {date_time}: Форматированная дата и время (чч:мм:сс и т.д.)
  • {level}: Числовой код уровня (0 = DEBUG, 1 = INFO...)
  • {origin}: Происхождение или контекст, определенный в вызове журнала
  • {filename}: Имя исходного файла (если доступно)
  • {function}: Имя функции, из которой был вызван вызов
  • {line}: Номер строки в коде, в которой произошел лог


⚖️ Лицензия

Лицензия MIT - Свободно использовать для личных и коммерческих проектов.


👨‍💻 Автор

Разработан joaopedrodev с целью сделать разработку на MQL более профессиональной, организованной и эффективной.

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/59821

Rsi Ema Engulfing Bar V3 Rsi Ema Engulfing Bar V3

Бар Engulfing возникает ниже скользящей средней Ema, которая растет - Торговля на покупку -.

QuickTrend Scalper QuickTrend Scalper

Этот советник (EA) предназначен для высокочастотной торговли на 1-минутном графике (M1) на рынках форекс и криптовалют. Он использует RSI и свечные модели для определения сигналов на покупку и продажу, автоматически исполняя сделки с динамическими уровнями стоп-лосса, тейк-профита и трейлинг-стопа в зависимости от волатильности рынка.

Rsi Engulfing Bar V2 Rsi Engulfing Bar V2

Индикатор Rsi

Баланс сил Баланс сил

Баланс сил (BOP) - это индикатор, первоначально разработанный Игорем Лившиным в 2001 году для измерения баланса сил между покупателями и продавцами во время каждой свечи.