Что не так?

 

Знатоки програмирования подскажите почему выдается ошибка (end of program-ending bracket "}" expected).

Я так понимаю нехватает значка "}" в конце. Всталяю его, успешно компилруется, а при тестировании программа не закрывает открытие позиции, так и висит до конца одна открыая в начале позиция????

Файлы:
mfoqpwhyq.mq4  6 kb
 
Kostay писал (а) >>

Знатоки програмирования подскажите почему выдается ошибка (end of program-ending bracket "}" expected).

Я так понимаю нехватает значка "}" в конце. Всталяю его, успешно компилруется, а при тестировании программа не закрывает открытие позиции, так и висит до конца одна открыая в начале позиция????

  // Условие открытие позиции SELL
      if(T_g1<T_r1&&T_g1<0&&PFE2>PFE1&&PFE1<0&&PFE2>0)
        {
      if((total>0) || (!flag)) return(0);
      Lots=GetSizeLot();
      ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"",0,0,Red);
      if(ticket>0) {
         if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
            Alert("Покупка: ",OrderOpenPrice()); 
      }  else Alert("ошибка:по цене ",OrderOpenPrice()); 
      return(0);

В этом блоке нехватает закрывающей скобки }.

для определения места ошибки используйте знаки коментирования /* */

поочередно отключая блоки программы вы сможете найти в каком блоке ошибка.

 

Если текст между { и } не помещается в одной строке пишите код выделяя структуру:

  1. каждую { или } пишите на отдельной строке
  2. после каждой открывающей { начинайте новую строку и смещайте ее начало на пару символов вправо
  3. каждую закрывающую } смещайте на теже пару символов влево и будет вам счастье :)

Вот так можно написать ваш код и все сразу видно:

// Условие открытие позиции SELL
if(T_g1<T_r1&&T_g1<0&&PFE2>PFE1&&PFE1<0&&PFE2>0)
{
  if((total>0) || (!flag)) return(0);
  Lots=GetSizeLot();
  ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"",0,0,Red);
  if(ticket>0) 
  {
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
    Alert("Покупка: ",OrderOpenPrice()); 
  }
  else Alert("ошибка:по цене ",OrderOpenPrice()); 
  return(0);
} // <--- вот недостающая скобка
 
Kostay писал (а) >>

.... а при тестировании программа не закрывает открытие позиции, так и висит до конца одна открыая в начале позиция????

Значит условия закрытия не работают. И трейлинг тож не работает.

// условие закрытия короткой позиции
            if(P_up1<P_up0)
              {
               OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); 
               return(0); 
              }
Я не знаю, что там у вас за индюк "ценовый канал". Я бы вывел в Comment() или в Print и отследил бы это условие ...
Причина обращения: