при знаке в свойстве эксперта long&short ордер открывается только в short

 
не  могу понять что не так, не открывает эксперт длинную позицию и все тут, пишет ошибка 4111, немного не в тему ведь позиция не открывается в long. в свойствах стоит long&short
Файлы:
proga1_1.mq4  7 kb
 
dimarik0000:
не  могу понять что не так, не открывает эксперт длинную позицию и все тут, пишет ошибка 4111, немного не в тему ведь позиция не открывается в long. в свойствах стоит long&short


Не большой разбор полетов

Забавная конструкция

   for(int i=1; i<=OrdersTotal(); i++) // цыкл перебора ордеров
    {
     if(OrderSelect(i-1,SELECT_BY_POS) && OrderType()>1 && OrderMagicNumber()==megic && OrderSymbol()==symb)
      {
       Alert("Обнаружен отложенный ордер, эксперт не работает ");
       return;
      }
     total++;
     if(total>1) // не более одного ордера
      {
       Alert("Несколько рыночных ордеров, эксперт не работает ");
       return;
      }
     return; 
    }

 

   if(signal==OP_BUY && Bid>MA*Point)
      if(signal==OP_SELL && Bid<MA*Point)
         total=OrdersTotal();
 

Продолжение

            if(ticket<=0) {
               int error=GetLastError();
               if(error==134) //недостаточно денег
                  if(error==4111)
                     Sleep(5000); //ждём пять скунд
               RefreshRates(); //обновим ценовые данные
            }

 

 Хот продолжать можно много. В общем логика работы хромает на все три ноги. Исправлять надо

 
dimarik0000:
не  могу понять что не так, не открывает эксперт длинную позицию и все тут, пишет ошибка 4111, немного не в тему ведь позиция не открывается в long. в свойствах стоит long&short

Хотите забавную подробность из "жизни терминала"? На реальном счёте, где происходит движение средств, их учёт ведётся посредством OrderType() = 6.

А ещё хочется спросить: "Где Вы такие конструкции кода откапываете???" Прежде, чем самому пытаться придумывать, поразбирайте "на косточки" чужие коды.

 
Все переделывается или уже все заброшено?
Причина обращения: