Вопрос знатокам MQL - страница 6

 

Примерно так? - Вместо

int getNextOrderNum(int RRRR) {
   switch (RRRR) {
   case 101:
      return (102);
                  }
   return (0);
}

Пож. подскажите - что нужно задать здесь:

(для Magic_101, Magic_102)

int getNextOrderNum(int RRRR) {
  ..... ?... ... ?
   return (0);
}

 

Андрей, ясно что не скомпилится. Может, просто задачу по др. поставить? Причем, как мне кажется, в этом случае все довольно прозрачно.

Использовать (подправить в коде) метки в интах, и все дела... Не понимаю, из-за чего сыр-бор и хрипы о помощи...)))

 

Может, без кода не могу сказать. Скорее всего конечно можно сделать проще.

Rita:

Пож. подскажите - что нужно задать здесь:

{
   if (RRRR == 101)
   {
      return (102);
   }
   else if (RRRR == 102)
   {
      return (103);
   }
   //...
}

Тут еще вот какая проблема может быть -- с каждым новым условием повышается вложенность, а ее уровень ограничен, т.е. при уровне вложенности в районе 20 (точно не помню) код опять перестанет компилиться.

Есть альтернативное предложение -- повторите вопрос здесь с более подробным кодом, скорее всего есть возможность сделать его намного прозрачнее и проще.

 

Без else, не ограничено

   if (RRRR == 101){
      return (102);
   }
   if (RRRR == 102){
      return (103);
   }
   //...
 
return(RRRR+1)
 
Может просто функцию, увеличивающий магик на единицу. В примере вроде это нужно. Хотя последний пример Integer как раз из этой оперы
 
Integer:

Без else, не ограничено

100%. На этом решении и нужно остановиться. Никаких хвостов и соплей, вся модификация строго ограничена бывшим switch'ем.
 

Добрый вечер всем.

Так я так и не совсем поняла. Мне нужно заменить в коде советника магики (их там около 20), заданные числами. Меня попросили вынести магик в глобальные переменные. Вынесла.

Magic_101=Magic+1;
Magic_102=Magic+2;
Magic_103=Magic+3; .......

Я правильно поняла предложение от Integer-а?

Вместо кода функции, в котором магики заданы числами:

int getNextOrderNum(int Магик) {
   switch (Магик) {
   case 101:
      return (102);
   case 102:
      return (103);
   
      }
   return (0);
}

Будет правильно задать вот так ? -

int getNextOrderNum(int Магик) {
   if (Магик == Magic_101)    {  return (Magic_102);}
   if (Магик == Magic_102)    {  return (Magic_103); }
    
                return (0);
                              }
 
Rita:

Добрый вечер всем.

Так я так и не совсем поняла. Мне нужно заменить в коде советника магики (их там около 20), заданные числами. Меня попросили вынести магик в глобальные переменные. Вынесла.

Magic_101=Magic*1;
Magic_102=Magic*2;
Magic_103=Magic*3; .......

Я правильно поняла предложение от Integer-а?

Вместо кода функции, в котором магики заданы числами:

Будет правильно задать вот так ? -


int getNextOrderNum(int Магик) {
   int Res=Магик+1;
   if (Res>MagicMax) Res=MagicMin;

   return (Res);
}
 
Благодарю, Виктор. Сейчас попробую.
Причина обращения: