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

 

подскажите порядок действий пжлста :))

 

if (...)

   {

       if(...) 

             {

                  if (...)  false -> 

               } 

else  {...}

   }

============================================ 

куда перейдет выполнение после FALSE  -у else или вообще за скобки первого  if   ?  

 
lottamer:

подскажите порядок действий пжлста :))

 

if (...)

   {

       if(...) 

             {

                  if (...)  false -> 

               } 

else  {...}

   }

============================================ 

куда перейдет выполнение после FALSE  -у else или вообще за скобки первого  if   ?  

Если я верно понял ваши фигурные скобки, то:

if (1<2) {
   if(2<3) {
      if (3>4) { 
         false ->
         }
      } 
   else  { иначе, если два больше три}
   }   
 
День добрый! подскажите пожалуйста есть функция определения количества ордеров(с проверкой на символ,операцию,и магик), нужно сделать так что бы эксперт открывал один ордер не обращая внимание на уже открытые ордера 
 
dimarik0000:
День добрый! подскажите пожалуйста есть функция определения количества ордеров(с проверкой на символ,операцию,и магик), нужно сделать так что бы эксперт открывал один ордер не обращая внимание на уже открытые ордера 


Эта функция возвращает количество открытых в данный момент позиций

 
у вас стоит такая функция? если не сложно покажите пример её применения в коде эксперта
 

Написал функцию, которая должна на основе введенного мэджика и комментария определить существует ли такая позиция. Если нет, то вернуть разрешение на ее открытие. 

Когда я использую в эксперте один торговый сигнал, то все работает нормально: открывает позицию только тогда, когда нет другой с такими же условиями. А вот когда эксперт работает с несколькими видами сигналов, которые я обозначаю другим комментарием, то происходит множественное открытие. В чем проблема?

 

bool TwoOrders(int magic, string comment)
 {
  int to;
  for(to=0; to<=OrdersTotal(); to++)
   {
    if(OrderSelect(to,SELECT_BY_POS)==true)
     {
      if(OrderMagicNumber()==magic)
       {
        if(OrderComment()==comment)
         {
          return(false);
         }
        else return(true);
       }
      else return(true); 
     }
    else return(true);
   }
 } 

   Type1=TwoOrders(ExpertID,"type1");
   Type2=TwoOrders(ExpertID,"type2");
     if(Type1==true)
      {
       Ans=OrderSend(Symb,OP_BUYSTOP,Lts,OpnPrice,30,SL,TP,"type1",ExpertID,0);
       if(Ans==false)
        {
         Alert("Ошибка при открытии BUY-STOP ордера: ", GetLastError());
        }
      }
     if(Type2==true)
      {
       Ans=OrderSend(Symb,OP_BUYLIMIT,Lts,OpnPrice,30,SL,TP,"type2",ExpertID,0);
       if(Ans==false)
        {
         Alert("Ошибка при открытии BUY-STOP ордера: ", GetLastError());
        }
      }
 
silhouette:

Написал функцию, которая должна на основе введенного мэджика и комментария определить существует ли такая позиция. Если нет, то вернуть разрешение на ее открытие. 

Когда я использую в эксперте один торговый сигнал, то все работает нормально: открывает позицию только тогда, когда нет другой с такими же условиями. А вот когда эксперт работает с несколькими видами сигналов, которые я обозначаю другим комментарием, то происходит множественное открытие. В чем проблема?

 

 

А вы вообще уверены, что ДЦ в комментарий ордера не допишет что-нибудь своё? Вам нужно искать подстроку в комментарии ордера. А ещё лучше - отказаться от такого геморроя. Позицию можно найти и по другим, более надёжным критериям.

 
artmedia70:

А вы вообще уверены, что ДЦ в комментарий ордера не допишет что-нибудь своё? Вам нужно искать подстроку в комментарии ордера. А ещё лучше - отказаться от такого геморроя. Позицию можно найти и по другим, более надёжным критериям.



Разными мэджиками, например? 

Но, в любом случае, ошибка где-то в коде, по идее. Все-равно интересно где.   

 
dimarik0000:
у вас стоит такая функция? если не сложно покажите пример её применения в коде эксперта


//вызываем
NumberOfPositions(NULL,OP_BUY,1234); //текущий график, OP_BUY, 1234 магик 

NumberOfPositions(NULL,OP_SELL,1234); //текущий график, OP_SELL, 1234 магик 

NumberOfPositions();//общее кол.

саму функцию, за пределами функции start()
 
r772ra:



наконец то дошло до меня как и куда что поставит! спасибо вам огромное
Причина обращения: