← К каталогу
Исходный код · ID 4237

masterlog2.mqh

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный файл представляет собой библиотеку исходного кода на языке MQL для платформы MetaTrader. Библиотека предоставляет класс CLogger, предназначенный для систематического журналирования событий, связанных с ценовыми зонами (уровни поддержки и сопротивления). Логгер записывает данные в CSV-файлы, организованные по имени символа и таймфрейму, что позволяет вести отдельный журнал для каждой торговой пары и периода.

Состав библиотеки

Классов: 1 · методов: 2 · конструкторов: 1 · деструкторов: 1 · отдельных функций: 0

Классы
Класс class CLogger

Библиотечный класс для систематической записи событий зон в структурированные CSV-файлы.

Методы и конструкторы
Конструктор · CLogger CLogger()

Создаёт экземпляр логгера с закрытым файловым дескриптором.

Деструктор · CLogger ~CLogger()

Освобождает ресурсы, закрывая открытый файл при удалении объекта.

Метод · CLogger void Initialize()

Подготавливает среду логгирования: создаёт каталог, открывает или создаёт CSV-файл для текущего символа и таймфрейма, записывает заголовки при первом создании файла.

Метод · CLogger void LogZone(string src, ENUM_ZONE_EVENT event_type, string zone_name, string zone_type, double top, double bottom, string context_data, string compact_msg)

Добавляет строку с данными о событии зоны в журнал и выводит сводку в терминал.

Получить полный код

Поиск по коду файла

enum ENUM_ZONE_EVENT
  {
   ZE_CREATED,       // Level established in memory or drawn by user
   ZE_MODIFIED,      // Boundaries or internal attributes adjusted
   ZE_UPDATED,       // Real-time touch/rejection tracking event [MUST HAVE]
   ZE_DELETED,       // Level explicitly purged from chart
   ZE_GHOSTED,       // Level breached but monitored
   ZE_RESURRECTED    // Level reactivated after price return
  };

class CLogger
  {
private:
   int                m_file_handle;

   void              WriteCSV(string &cols[])
     {
      if(m_file_handle == INVALID_HANDLE)
         return;

      FileSeek(m_file_handle, 0, SEEK_END);

      string line = "";
      int size = ArraySize(cols);
      for(int i = 0; i < size; i++)
        {
         line += cols[i];
         if(i < size - 1)
            line += ";";
        }

      FileWrite(m_file_handle, line);
      FileFlush(m_file_handle);
     }

   string            Now()
     {
      return TimeToString(TimeCurrent(), TIME_DATE|TIME_SECONDS);
     }

public:
                     CLogger()
     {
      m_file_handle = INVALID_HANDLE;
     }

                    ~CLogger()
     {
      if(m_file_handle != INVALID_HANDLE)
        {
         FileClose(m_file_handle);
         m_file_handle = INVALID_HANDLE;
        }
     }

   void              Initialize()
     {

      if(!FolderCreate("DynamicSR3"))
         Print(">>> Storage folder verified or initialized.");

      string path = "DynamicSR3\\SR_Prototype_" + _Symbol + "_" + EnumToString((ENUM_TIMEFRAMES)_Period) + ".csv";

      m_file_handle = FileOpen(path, FILE_WRITE|FILE_READ|FILE_CSV|FILE_ANSI|FILE_SHARE_READ|FILE_COMMON, ';');

      if(m_file_handle == INVALID_HANDLE)
        {
         Print("!!! PROTOTYPE LOGGER ERROR: FileOpen failed. Code: ", GetLastError

Показано первые 50% кода (символов: 2471)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
247,10₽ ≈ $3.02