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

 

Следующая проблема.

После переустановки ОС и новой инсталляции MT5 перестали загружаться пользовательские индикаторы, которые ранее работали.

Перепроверил параметры - все верно.

Далее попробовал загрузить через iCustom один из стандартных Examples индикаторов, вынеся его в корневую папку Indicators,

но приведенный ниже код в случае наличия "#include" приводит к ошибке загрузки, хотя:

- ошибки по включаемым классам отсутствуют,

- код с участием данных классов для упрощения понимания причин ошибки отключен, а ранее работал нормально,

- без включения  #include ошибка загрузки пользовательского индикатора не возникает.

#include <..\Experts\_My\Classes\ClassExpert\ClassExpert.mqh>

void OnInit(){
   int HandleIndicator = iCustom(_Symbol,_Period,"RSI",14);                      
   Print("HandleIndicator = ", HandleIndicator);
   if(HandleIndicator==INVALID_HANDLE){
      Print("Handle of RSI is INVALID_HANDLE");
      return;
   };
}

2011.02.23 09:52:41     Core 1  expert removed self when OnInit called
2011.02.23 09:52:41     Core 1  2011.01.14 00:00:00   Handle of RSI is INVALID_HANDLE
2011.02.23 09:52:41     Core 1  2011.01.14 00:00:00   HandleIndicator = -1
2011.02.23 09:52:41     Core 1  2011.01.14 00:00:00   expert removed because custom indicator 'RSI' cannot load [4802]
2011.02.23 09:52:41     Core 1  loading of RSI EURUSD,H1 failed

Совершенно не могу понять, в чем дело.

То же самое происходит и в обычном варианте, с использованием классов:

#include <..\Experts\_My\Classes\ClassExpert\ClassExpert.mqh>
ClassExpert Expert1;
void OnInit(){
   Expert1.Init();
   //---
   int HandleIndicator = iCustom(_Symbol,_Period,"RSI",14);                      
   Print("HandleIndicator = ", HandleIndicator);
   if(HandleIndicator==INVALID_HANDLE){
      Print("Handle of RSI is INVALID_HANDLE");
      return;
   };
}

И это при том, что версия MT5 build 401, которая используется сейчас, работала без ошибок с этим кодом как на домашнем, так и на офисном ПК (на котором работает до сих пор).

 
DV2010:

Следующая проблема.

После переустановки ОС и новой инсталляции MT5 перестали загружаться пользовательские индикаторы, которые ранее работали.

Перепроверил параметры - все верно.

Далее попробовал загрузить через iCustom один из стандартных Examples индикаторов, вынеся его в корневую папку Indicators,

но приведенный ниже код в случае наличия "#include" приводит к ошибке загрузки, хотя ошибки по включаемым классам отсутствуют,

код с их участием для упрощения понимания причин ошибки теперь уже не используется, а ранее работал нормально:

 

 - приводит к ошибке загрузки:

Совершенно не могу понять, в чем дело.
Пожалуйста, напишите в Сервисдеск и приложите все исходники. Я пытался воспроизвести у себя, но не получилось - у меня нет ваших включаемых файлов.
 
Rosh: Пожалуйста, напишите в Сервисдеск и приложите все исходники. Я пытался воспроизвести у себя, но не получилось - у меня нет ваших включаемых файлов. 

Rosh, спасибо, но методом движения от самой простой модели с минимумом кода к полной путем последовательного включения отдельных частей кода рабочую версию удалось вернуть(иначе мне бы пришлось прикреплять больше полусотни своих файлов, так как от приема архива rar система отказалась). Правда, в чем именно состояла ошибка, если честно, так и не понял.

 
DV2010:

 

(иначе мне бы пришлось прикреплять больше полусотни своих файлов, так как от приема архива rar система отказалась).


Максимальный объем закачивания: 16 Мб, не более 10 вложений (.gif .png .jpg .jpeg .zip .txt .log .mqh .ex5 .mq5 .mq4 .ex4 .flv .mt5)
 

Здравствуйте, сегодня при записи числа в формате double в глобальных переменных терминала (вручную) 88,71 после нажатия Enter вижу значение 88,709999999, приэтом в другую глобальную переменную вносил запись 87,80 и после нажатия Enter значение приняла, как и положено, 87,8. А при записи значений с 4 знаками после запятой - получаю значение с 4 знаками. Билд 401.

P.S. в принципе данное представление числа для чтения экспертом скорее всего будет воспринято как и положенно, но для чтения человеком как-то не красиво.

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 
kirill190982:

Здравствуйте, сегодня при записи числа в формате double в глобальных переменных терминала (вручную) 88,71 после нажатия Enter вижу значение 88,709999999, приэтом в другую глобальную переменную вносил запись 87,80 и после нажатия Enter значение приняла, как и положено, 87,8. А при записи значений с 4 знаками после запятой - получаю значение с 4 знаками. Билд 401.

P.S. в принципе данное представление числа для чтения экспертом скорее всего будет воспринято как и положенно, но для чтения человеком как-то не красиво.

https://www.mql5.com/ru/docs/basis/types/double

https://www.mql5.com/ru/articles/1561

Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
  • www.mql5.com
Основы языка / Типы данных / Вещественные типы (double, float) - Документация по MQL5
 

Спасибо, но хотелось бы видеть числа в привычном виде, а машина пусть считает числа как ей положенно

 
kirill190982:

Спасибо, но хотелось бы видеть числа в привычном виде, а машина пусть считает числа как ей положенно

https://www.mql5.com/ru/docs/convert/doubletostring

нет в мире совершенства....

Документация по MQL5: Преобразование данных / DoubleToString
Документация по MQL5: Преобразование данных / DoubleToString
  • www.mql5.com
Преобразование данных / DoubleToString - Документация по MQL5
 
AlexSTAL:

https://www.mql5.com/ru/docs/convert/doubletostring

нет в мире совершенства....

Есть :) В VB.NET с этим вопросом все в порядке. Хотя, я помню ваши слова про размер штата сотрудников Microsoft :)
 
-Alexey-:
Есть :) В VB.NET с этим вопросом все в порядке.

Весь вопрос какой ценой ))))

Зачастую мы видим лишь верхушку айсберга....

http://msdn.microsoft.com/ru-ru/library/system.decimal.aspx

P.S. Невозможно штатным способом реализовать это! Для этого Вы должны понимать как хранится число с плавающей точкой! Можно пойти лишь на искусственные ухищрения....

Decimal - структура (System)
Decimal - структура (System)
  • msdn.microsoft.com
Пространство имен: System Сборка: (в mscorlib.dll) Тип предоставляет следующие члены. ИмяОписание В начало страницы ИмяОписание (Переопределяет ValueTypeEquals(Object).) Преобразует заданное 64-разрядное целое число со знаком, соответствующее значению денежного типа OLE-автоматизации, в эквивалентное значение типа...
Причина обращения: