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

 

Странно работает OnInit в индикаторе. Если терминал запускается после долгого бездействия(несколько часов), EventSetTimer возвращает false, ошибка 4102. Если перезапустить терминал или просто сменить таймфрейм, начинает работать. Как с этим бороться?

 
AlexeyFX:

Странно работает OnInit в индикаторе. Если терминал запускается после долгого бездействия(несколько часов), EventSetTimer возвращает false, ошибка 4102. Если перезапустить терминал или просто сменить таймфрейм, начинает работать. Как с этим бороться?

Организовать несколько попыток установки таймера (например в цикле) т.к. ERR_CHART_NO_REPLY(4102) возможен, особенно на подъёме терминала.
Документация по MQL5: Работа с событиями / EventSetTimer
Документация по MQL5: Работа с событиями / EventSetTimer
  • www.mql5.com
Работа с событиями / EventSetTimer - Документация по MQL5
 

Вопрос разработчикам. Раньше в свойствах индикатора в меню "Применить к" кроме всего, что перечислено, можно было выбрать "данные первого индикатора". Сейчас это сделать нельзя:

 

Это убрано по каким-то соображениям? 

 
Подскажите пожалуйста, как функция FileReadString() перемещает файловый указатель при чтении из .csv файла ? У меня при чтении одного символа указатель смещается на 142 символа вправо - дальше конца файла. Если нужно могу код выложить.
Документация по MQL5: Файловые операции / FileReadString
Документация по MQL5: Файловые операции / FileReadString
  • www.mql5.com
Файловые операции / FileReadString - Документация по MQL5
 
molotkovsm:
Подскажите пожалуйста, как функция FileReadString() перемещает файловый указатель при чтении из .csv файла

при чтении любого файла любой функцией указатель перемещается на прочитанное число байт.

 
sergeev:

при чтении любого файла любой функцией указатель перемещается на прочитанное число байт.


Тогда подскажите, что я не так делаю, указатель смещается не так, вот код

void OnStart()
  {
int file_handle;
int value1;
int value2;
   file_handle=FileOpen("file01.csv", FILE_READ|FILE_CSV);
   value1=StringToInteger(FileReadString(file_handle));
   Print(value1,"     ",FileTell(file_handle));
   value2=StringToInteger(FileReadString(file_handle));
   Print(value2,"     ",FileTell(file_handle));
   FileClose(file_handle);
  }

в журнале появляются вот такие строки

2011.05.24 21:44:06 read_test (EURUSD,M1) 1 142

2011.05.24 21:44:06 read_test (EURUSD,M1) 0 286

содержание файла file01.csv:

1;2;3;5;1.41299999;1.41250002;1.41199994;1.41149998;2011.05.24 17:23;5


 

 
добавте FILE_ANSI
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов - Документация по MQL5
 
sergeev:

добавте FILE_ANSI

добавил:

file_handle=FileOpen("file01.csv", FILE_READ|FILE_CSV|FILE_ANSI);

результат изменился, но все равно не тот, что ожижается - вторая строка только поменялась

 

2011.05.24 22:01:32 read_test (EURUSD,M1) 1 142
2011.05.24 22:01:32 read_test (EURUSD,M1) 0 288


 

 
molotkovsm:

добавил:

результат изменился, но все равно не тот, что ожижается - вторая строка только поменялась


вы не задали delimiter. он по умолчанию '\t'

а у вас вижу нужен  ';'

 
sergeev:

вы не задали delimiter. он по умолчанию '\t'

а у вас вижу нужен  ';'

добавил delimiter, без FILE_ANSI вроде заработало, спасибо за помощь.



 

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов - Документация по MQL5
Причина обращения: