[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 256

 
sergkodan:

... а после выходных тестер выдаёт,что ощибка 131 неправильные объёмы...


Ну дык принтаните лот перед тем как подавать его на вход функции OrderSend() - пусть советник покажет, чему он так возмутился
 
здраствуйте всем)) я новичек и не люблю читать или смотреть в основном привык доверять людям есть те кто мне поможет в моих наченаниях???
 
lx-7:
здраствуйте всем)) я новичек и не люблю читать или смотреть в основном привык доверять людям есть те кто мне поможет в моих наченаниях???


Ну, для начала было бы не плохоозвучить, какие же именно у Вас начинания? В чём помощь то нужна?

 
  
bool up=true;
   for(i=limit-1; i>=0; i--)
     {
      current=ExtBuffer0[i];
      prev=ExtBuffer0[i+1];
      if(current>prev) up=true;
      if(current<prev) up=false;
      if(!up)
        {
         ExtBuffer2[i]=current;
         ExtBuffer1[i]=0.0;
        }
      else
        {
         ExtBuffer1[i]=current;
         ExtBuffer2[i]=0.0;
        }
     }
Объясните, пожалуйста, суть логической операции if(!up). ! - означает НЕ, но его суть в данном коде не могу понять.
 
silhouette:
Объясните, пожалуйста, суть логической операции if(!up). ! - означает НЕ, но его суть в данном коде не могу понять.


Так будет понятнее?

bool up=true;
   for(i=limit-1; i>=0; i--)
     {
      current=ExtBuffer0[i];
      prev=ExtBuffer0[i+1];
      if(current>prev) up=true;
      if(current<prev) up=false;
      if(up)
        {
         ExtBuffer2[i]=0.0;
         ExtBuffer1[i]=current;
        }
      else
        {
         ExtBuffer1[i]=0.0;
         ExtBuffer2[i]=current;
        }
     }
 

Хотя я бы сделал по другому

   for(i=limit-1; i>=0; i--)
     {
      current=ExtBuffer0[i];
      prev=ExtBuffer0[i+1];
      if(current>prev)
        {
         ExtBuffer2[i]=0.0;
         ExtBuffer1[i]=current;
        }
      else if(current<prev) 
        {
         ExtBuffer1[i]=0.0;
         ExtBuffer2[i]=current;
        }
     }
 
silhouette:
Объясните, пожалуйста, суть логической операции if(!up). ! - означает НЕ, но его суть в данном коде не могу понять.


if - это оператор условного перехода. Если в скобках этого оператора стоит истина, то выполняется команда/список команд, которые за ним следуют. В противном случае, код перепрыгивает...

иными словами:

if(up==false){// если высказывание (up==false) истинно, то
  ExtBuffer2[i]=current;
  ExtBuffer1[i]=0.0;
}
else{// иначе
  ExtBuffer1[i]=current;
  ExtBuffer2[i]=0.0;
}
 
Vinin:

Хотя я бы сделал по другому


Это не он сделал. Он сказал, что не понимает конструкцию. Значит он не мог его сделать. Это чужой код.
 

Vinin, drknn благодарю за ответы. Я так и предполагал, просто сам никогда такой конструкцией не пользовался и не был уверен в том, что понимаю ее правильно.

PS Код не мой, естественно. Это кусок из пользовательского индикатора Awesome, что стандартно поставляется с программой.

 
silhouette:

Vinin, drknn благодарю за ответы. Я так и предполагал, просто сам никогда такой конструкцией не пользовался и не был уверен в том, что понимаю ее правильно.

PS Код не мой, естественно. Это кусок из пользовательского индикатора Awesome, что стандартно поставляется с программой.

Причина обращения: