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

 
paladin800:

Во внешних параметрах советника я использую параметр R только = 1 или 2 или 12 или 13 (общий простой пример). Для правильности заполнения можно в OnInit() проверять этот параметр ну и если гражданин ошибочно ввёл другое число то сообщать об ошибке. Однако для ввода есть типы ENUM_... (напр. ENUM_MA_METHOD), когда просто из развёрнутого окошка можно выбрать значение.

Вопрос. Есть ли такая опция где самому можна сделать подобную конструкцию, так чтобы во внеш. параметрах по аналогии с ENUM_... появлялись только то что программист задумал, без необходимости проверки в OnInit(). Я не нашёл такое в документации. Если нету, то пожелание сделать такую вещь.

Дык  ENUM  и делай.

enum MyLimitedType
  {  
   Адын = 1,
   Дыва = 2,
   Трынацать = 13,
   Читырныцыть = 14,
  };
Я даже изгалялся делал на ENUM double-массивы с лимитированными шагами (пример тут), но тут уж без конвертирования в OnInit() не обойтись, само собой.
 
MetaDriver:

Дык  ENUM  и делай.

Я даже изгалялся делал на ENUM double-массивы с лимитированными шагами (пример тут), но тут уж без конвертирования в OnInit() не обойтись, само собой.
Во во типа этого! Спс за ссылку, дальше сам докопаюсь.
 
paladin800:
Во во типа этого! Спс за ссылку, дальше сам докопаюсь.

Для input ещё вот это работает:

enum MyLimitedType
  {  
   Адын = 1,// почти Адын 
   Дыва = 2,// совсем Дыва
   Трынацать = 13,// ++ Трынацать
   Читырныцыть = 14,// Читырныцыть.--
  };

забей в код и вызови окно, посмотри как выглядят варианты enum.

В коде будут использоваться варианты enum, а в окне input комменты.

 

У меня есть вот такой enum:

enum ENUM_FIBO_LEVEL
  {
   O_0,  //0.0
   O_236,//0.236
   O_382,//0.382
   O_5,  //0.5
   O_618 //0.618
  };

ЗЫ если вариантам энумератора не присвоены значения как и MetaDriver то по умолчанию будут присвоены последовательные значения от 0.

Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
  • www.mql5.com
Основы языка / Операции и выражения / Операции присваивания - Документация по MQL5
 
Urain:

Для input ещё вот это работает:

забей в код и вызови окно, посмотри как выглядят варианты enum.

В коде будут использоваться варианты enum, а в окне input комменты.

Ага, подтверждаю, всё это работает. :)

paladin800:
Во во типа этого! Спс за ссылку, дальше сам докопаюсь.
Успехов.  Большие enum'ы (если нужны) я стараюсь автоматически генерить.  Поскольку во первых ленив, а во вторых меньше ошибок/опечаток.  В частности те енумы которые по ссылке, генерировались вот этими скриптами (см. прицеп).
Файлы:
 
Как в OnTesterPass узнать, по каким параметрам проводилась оптимизация? Вижу только, что эти параметры возвращаются в начале массива parameters функции FrameInputs, но на каком по счету кончаются оптимизировавшиеся и начинаются константные параметры?
 
marketeer:
Как в OnTesterPass узнать, по каким параметрам проводилась оптимизация? Вижу только, что эти параметры возвращаются в начале массива parameters функции FrameInputs, но на каком по счету кончаются оптимизировавшиеся и начинаются константные параметры?
Не совсем понял вопроса, но могу подсказать полезную функцию - ParameterGetRange
 
Rosh:
Не совсем понял вопроса, но могу подсказать полезную функцию - ParameterGetRange
Да, это подойдет. В локальной справке пока нету.
 
Как удалось выяснить, в OnTesterPass передаются такие же урезанные результаты оптимизации, как и на закладку результатов оптимизации. Я надеялся, что хоть так можно будет получить полный набор данных. Значит заявка  #459431, которая валяется в СД - единственный выход, если оно когда-нибудь будет сделано (и если да, то скорее всего уже после Чемпионата, увы).
 

Подскажите, почему при получении хэндла индикатора выходит ошибка, если имя вызываемого индикатора содержится в переменной?

То есть, вот так ошибки нет:

handle=iCustom(_Symbol,tf_ind,"Name_Indicator",param_ind);

А вот так получаем ошибку 4802 (Индикатор не может быть создан):

string lnm_ind="Name_Indicator";
//---
handle=iCustom(_Symbol,tf_ind,lnm_ind,param_ind);
Причина обращения: