Ошибки, баги, вопросы - страница 2969

 
Andrey Sokolov:

баг редактора при лишнем пробеле

***

тут как этот баг изчезает

***

копия не компилируемого,  как в примере


в мт5 та-же проблема

Картинки вставляются при помощи кнопки  Image или прикрепляются при помощи кнопки  Attach file ru.

 

Несмотря на то, что написано в документации, GlobalVariableCheck () не изменяет время доступа.

Возвращаемое значение

Возвращает время последнего доступа к указанной глобальной переменной. Обращение к переменной за значением, например, с помощью функций GlobalVariableGet() и GlobalVariableCheck(), также изменяет время последнего доступа. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

Исправьте либо документацию, либо поведение функции.

Документация по MQL5: Глобальные переменные терминала / GlobalVariableGet
Документация по MQL5: Глобальные переменные терминала / GlobalVariableGet
  • www.mql5.com
GlobalVariableGet - Глобальные переменные терминала - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Ошибка с производной структурой, при которой не добавляются новые данные при сохранении / загрузке из файла.

struct Base
  {
   int               anInt;
   double            aDouble;
                     Base(void)
     {
      anInt   = WRONG_VALUE;
      aDouble = WRONG_VALUE;
     }
  };
struct DerivedNoNew : public Base
  {
   void              Set(int iValue,double dValue)
     {
      anInt   = iValue;
      aDouble = dValue;
     }
  };

const string filename = "TestStructToFile";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Base base[1];
   DerivedNoNew derived[1];
   int sizeof1   = sizeof(Base);
   int sizeof3   = sizeof(DerivedNoNew);

   int handle=FileOpen(filename,FILE_BIN|FILE_WRITE);
   if(handle!=INVALID_HANDLE)
     {
      derived[0].Set(5,12.0);

      uint written1 = FileWriteStruct(handle,base[0],sizeof1);
      uint written3 = FileWriteStruct(handle,derived[0],sizeof3);   // NOT saved
      int err       = _LastError;
      FileClose(handle);
     }

   handle=FileOpen(filename,FILE_BIN|FILE_READ);
   if(handle!=INVALID_HANDLE)
     {
      uint read3  = FileReadStruct(handle,derived[0],sizeof3);      // NOT loaded
      uint read1  = FileReadStruct(handle,base[0],sizeof1);
      FileClose(handle);
     }
  }
2021.02.22 12:52:11.188   FileAndStructIssue (EURUSD,D1)   Written 1: 12 2: 20 3: 0 (error 4003) Total: 32 FileSize: 32
2021.02.22 12:52:11.193   FileAndStructIssue (EURUSD,D1)    Read 1: 12 2: 20 3: 0 (error 4003) Total: 32

Файлы:
 
Alain Verleyen:

Ошибка с производной структурой, при которой не добавляются новые данные при сохранении / загрузке из файла.

Попробуйте удалить метод Set. И сделайте загрузку в той же последовательности, что и сохранение!

uint read1  = FileReadStruct(handle,base[0],sizeof1);
uint read3  = FileReadStruct(handle,derived[0],sizeof3);
[Удален]  
Mihail Matkovskij:

Попробуйте удалить метод Set. И сделайте загрузку в той же последовательности, что и сохранение!

Не нужно ничего пробовать.

Это ошибка компилятора, которая должна быть исправлена.

 
Koldun Zloy:

Не нужно ничего пробовать.

Ну интересно же, что дает сбой... Добавление методов или то что структура была унаследована...

[Удален]  
Mihail Matkovskij:

Ну интересно же, что дает сбой... Добавление методов или то что структура была унаследована...

Скорее всего оптимизатор перестарался.

 
Koldun Zloy:

Скорее всего оптимизатор перестарался.

Любой человек может обшиться. Тем не менее, функции не совсем нерабочие... Поэтому, баг можно обойти, пока его исправят.

 
Vladimir Karputov:

Картинки вставляются при помощи кнопки   или прикрепляются при помощи кнопки  .

Там были ссылки на видео доступные по ссылке. 

Зачем удалили? Ненужная информация?

 

Здравствуйте. Ошибка в МетаТестере. Если в советнике использовать DLL то тестирование проходит только один раз, после чего Агент тестирования зависает и повторное тестирование становится невозможным, пока не завершишь принудительно процесс metatester64.exe в диспетчере задач. Причем при оптимизации зависает только первый процесс metatester64.exe, остальные работают нормально. В логах появляется ошибка:

DS 0 11:28:23.118 Tester expert file added: Experts\BollingerBands\BollingerMT4MT5 v0.13.ex5. 160148 bytes loaded
JS 2 11:28:23.120 Tester file Libraries\ParserIni.dll write error [32]
OK 2 11:28:23.120 Tester requested data synchronization error
PO 0 11:28:23.121 127.0.0.1 prepare for shutdown

Причём, ошибка возникает при импорте ДЛЛ, даже если в эксперте не вызывать функции ДЛЛ.

Изредка эта ошибка не возникает и агент не зависает.

Использованная длл: https://www.mql5.com/ru/code/11120 (В архиве есть для МТ5 64 бит). 

1

2

ParserIni.dll v4.2.11.0
ParserIni.dll v4.2.11.0
  • www.mql5.com
Библиотека предназначена для работы с INI-файлами.