Ошибка в журнале?

 
Пример: записи записываются в журнал и текстовый файл одновременно. Журнал не содержит всех данных.
string gFileName = "output.txt";
int hFile;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
   FileDelete(
        gFileName,      
        FILE_COMMON   
   );

        ResetLastError();

        hFile = FileOpen(
          gFileName,                                       
          FILE_TXT | FILE_READ | FILE_WRITE | FILE_COMMON, 
          '\t');
        
        int myResult = GetLastError();
        if (myResult != 0)
        {
          Print(__FUNCTION__, "Error: ", myResult);
          
          return INIT_FAILED;
        }
    
        return ( INIT_SUCCEEDED );
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit( const int reason )
{
    if (hFile != INVALID_HANDLE)
    {
        FileClose(hFile);
    }
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
    static long counter = 1;
    datetime myDateTime = TimeTradeServer();
    MqlTick myTick;
    SymbolInfoTick(_Symbol, myTick);
    
    MqlDateTime mqlDT;
    counter = counter + 1;
    
    TimeToStruct(myTick.time, mqlDT);
    if(mqlDT.hour < 12 || mqlDT.hour > 20)
    {
        return;
    }
  
    ResetLastError();
    
    string myOutput = StringFormat( "%s: Counter=(%d) / TimeTradeServer=(%s) / myTick.time=(%s)", __FUNCTION__, counter, TimeToString(myDateTime), TimeToString(myTick.time) );
    
    Print(myOutput);

    uint myBytes = FileWriteString(
        hFile,    
        myOutput + "\n", 
        -1        
    );

    FileFlush(hFile);

    int myResult = GetLastError();
    if (myResult != 0)
    {
        Print(__FUNCTION__, "Error: ", myResult);
    }
}


 

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

Сам журнал содержит все данные и вы можете посмотреть журнал локального тестерного агента с помощью просмотрщика логов во вкладке журналов окна тестера клиентского терминала

 
Slava:

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

Сам журнал содержит все данные и вы можете посмотреть журнал локального тестерного агента с помощью просмотрщика логов во вкладке журналов окна тестера клиентского терминала

Спасибо за информацию!