Сразу 2 проблемы в 2-х терминалах - страница 2

 
cloud666:
Почему так???


Эта задачка на внимательность :-)

заметьте если код расположен так то выполняется первое условие

int slu = 2;  
  int PP  = 1;
  if(OrderType()==0){
  if((slu)>PP){
     Print("Тест 1 пройден!!!");
     PP=slu;
  }}
 
  if((OrderType()==0) && (slu)>PP){
     Print("Тест 2 пройден!!!");
     PP=slu;
  }

а если так то второе

int slu = 2;  
  int PP  = 1;
  
  if((OrderType()==0) && (slu)>PP){
     Print("Тест 2 пройден!!!");
     PP=slu;
  }
  if(OrderType()==0){
  if((slu)>PP){
     Print("Тест 1 пройден!!!");
     PP=slu;
  }}
:-) Теперь догадались почему? :-)
 
??? В обоих случаях 1 выдает!? Может оригинальный терминал поможет???

И все же почему: объясни плиз, если не трудно...
 
А почему все время в условии используется (slu)>PP. Разве нельзя без скобок?
 
Vinin:
А почему все время в условии используется (slu)>PP.
Разве нельзя без скобок?

Можно! В чем проблема, не поможете???
 
Так оба условия абсолютно одинаковы, и результат всегда будет один и тот же. Вопрос в другом - а что же мы хотим получить?
 
Vinin:
Так оба условия абсолютно одинаковы, и результат всегда будет один и тот же. Вопрос в другом - а что же мы хотим получить?

Вот и именно, что условия одни!!! Выаолняется код условия, если первое условие верно!!! Вот в чем проблема! Мож терминал на оригинал сменить???
 
Так и должно быть. В первом присваиваешь PP=slu, второе условие уже выполняться не будет, Если сделаешь slu>=PP, то будет выполняться в обоих случаях
 
Вот код, который выдает ERR_NO_RESULT, ПОЧЕМУ?
su=OrderOpenPrice()+Point*MinProfit;
sd=OrderOpenPrice()-Point*MinProfit;
if((OrderStopLoss()!=su) && (OrderStopLoss()!=sd))
{
   if((OrderType()==0)
    && (PP>=Point*ProfitPoints)
     && (OrderStopLoss()<OrderOpenPrice()))
     {
        OrderModify(OrderTicket(), 0, su, 0, 0, 0);
     }
   if((OrderType()==1)
    && (PP>=Point*ProfitPoints)
     && (OrderStopLoss()>OrderOpenPrice()))
     {
        OrderModify(OrderTicket(), 0, sd, 0, 0, 0);
     }
}
 
Посмотри внимательно описание функции OrderModify(), там про это написано.
 
Vinin:
Посмотри внимательно описание функции OrderModify(), там про это написано.

Как же задать условие? или в чем тут ошибка:
      if(ProfitPoints!=0)
      {
         slu=Bid-OrderOpenPrice();
         b=Bid;
         sld=OrderOpenPrice()-Ask;
         a=Ask;
         if((OrderType()==0) && (slu>PP))
         {
            PP=slu;
         }
         if((OrderType()==1) && (sld>PP))
         {
            PP=sld;
         }
         su=OrderOpenPrice()+Point*MinProfit;
         sd=OrderOpenPrice()-Point*MinProfit;
         if((OrderStopLoss()!=su) && (OrderStopLoss()!=sd))
         {
            if((OrderType()==0)
             && (PP>=Point*ProfitPoints)
              && (OrderStopLoss()<OrderOpenPrice()))
            {
               OrderModify(OrderTicket(), 0, su, 0, 0, 0);
            }
            if((OrderType()==1)
             && (PP>=Point*ProfitPoints)
              && (OrderStopLoss()>OrderOpenPrice()))
            {
               OrderModify(OrderTicket(), 0, sd, 0, 0, 0);
            }
         }