class CLogger
Библиотечный класс для систематической записи событий зон в структурированные CSV-файлы.
Сообщите нам, если считаете, что материал размещён без разрешения.
Обращение по товару «masterlog2.mqh» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
Данный файл представляет собой библиотеку исходного кода на языке MQL для платформы MetaTrader. Библиотека предоставляет класс CLogger, предназначенный для систематического журналирования событий, связанных с ценовыми зонами (уровни поддержки и сопротивления). Логгер записывает данные в CSV-файлы, организованные по имени символа и таймфрейму, что позволяет вести отдельный журнал для каждой торговой пары и периода.
Классов: 1 · методов: 2 · конструкторов: 1 · деструкторов: 1 · отдельных функций: 0
class CLogger
Библиотечный класс для систематической записи событий зон в структурированные CSV-файлы.
CLogger()
Создаёт экземпляр логгера с закрытым файловым дескриптором.
~CLogger()
Освобождает ресурсы, закрывая открытый файл при удалении объекта.
void Initialize()
Подготавливает среду логгирования: создаёт каталог, открывает или создаёт CSV-файл для текущего символа и таймфрейма, записывает заголовки при первом создании файла.
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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.