Пожелания для МТ5 - страница 100

 
Вот такая еще есть идея - отказаться от трех типов программ: "советник", "индикатор", "скрипт", а вместо этого в настройках ставить галочки: "разрешить программе торговать", "разрешить программе рисовать", "разрешить одноразовый запуск". И таким образом эта универсальная программа будет превращаться в советник, или индикатор, или скрипт.
 
Такая вот засада. IndicatorCreate(), у идикатора может параметр типа enum, понятно, что надо указывать тип int и числовое значение, но у некоторых ENUM такие значения фантастические... Вот бы в MqlParam иметь тип - "EnumName", значение у него строка с именем варианта, или просто, если переменная enum, указывать тип TYPE_STRING, а значением указывать имя варианта.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Идентификаторы типов данных
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Идентификаторы типов данных
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Идентификаторы типов данных - Документация по MQL5
 
Между прочим, индикатор может быть покупным, без исходников, с пользовательским enum, числовые значени никак не узнать.
 
Integer:
Такая вот засада. IndicatorCreate(), у идикатора может параметр типа enum, понятно, что надо указывать тип int и числовое значение, но у некоторых ENUM такие значения фантастические... Вот бы в MqlParam иметь тип - "EnumName", значение у него строка с именем варианта, или просто, если переменная enum, указывать тип TYPE_STRING, а значением указывать имя варианта.

Дима, это невозможно.  Имя ENUM-варианта существует только до компиляции. Примерно как имя переменной. Только имени переменной в рантайм соответствует адрес, а имени енум-варианта - значение инт.

Другими словами:  если ты сам не сопоставишь строке значение ENUM (или инт, без разницы), компилятор автоматически за тебя этого делать не будет.

// Даже если б мог - это шибко расово неправильно. ;) 

 
Integer:
Между прочим, индикатор может быть покупным, без исходников, с пользовательским enum, числовые значени никак не узнать.
Требуй документацию от разработчика индикатора.  И не скупай краденое.
 
Понял суть идеологии :)
 
Integer:
Между прочим, индикатор может быть покупным, без исходников, с пользовательским enum, числовые значени никак не узнать.
Узнать значения enum можно через IndicatorParametrs().
 
Yurich:
Узнать значения enum можно через IndicatorParametrs().

Эээ..  Боюсь что описание типа вместе со списком всех возможных  ENUM-значений (имён)  данная функция таки не вернёт.

:)

 
MetaDriver:

Эээ..  Боюсь что описание типа вместе со списком всех возможных  ENUM-значений (имён)  данная функция таки не вернёт.

:)

Имена не вернет, но они известны, а значения запросто -  перебором .... ручками :)
 
Integer:
Понял суть идеологии :)

Дима.  Я тут покурил... Напиши-ка ты заявочку в сервисдеск.  Основания в принципе есть.  Проблема сугубо практичная, реальная, а главное - разрешимая на стороне разработчика.

Идеологическое обоснование:  Индикатор имеющий в инпутах енум-тип очевидно хранит строковые имена значений перечисления (для вывода в окно настроек).  Это даёт некоторую надежду, что стринго отступит от правил "строгого  письма" и таки сделает-то что ты просишь, поскольку необходимая метаинформация (те самые возможные значения перечисления) в линкуемом индикаторе уже имеются и ничего опасного добавлять в код ты не просишь. 

Вобчем пробуй. 

// Об результатах не забудь должиться. :)

Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Перечисления - Документация по MQL5
Причина обращения: