Советнк останавливаеться

 
Никак не могу понять почему происходит следующее, Прикакихто непонятных обстоятельствах, советник просто останавливаеться и не хочет ни закрывать, ни открывать позиции. вот стандартный код работы советника по позициям.
      if (iCustom(NULL, 0, "111111",z,k,2,1)!=0){
      TotalOrders=OrdersTotal(); 
           for (i=0; i<=TotalOrders; i++){
                 if (OrderSelect(0,SELECT_BY_POS)==true){
                    if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,5,Red);
                 if (OrderSelect(0,SELECT_BY_POS)==true){   
                    if (OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket(),Green);                    
                 }
                 }            
           }  
                       
     if (OrdersTotal()==0) OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Bid-StopLoss*Point,Bid+TakeProfit*Point);
      //OrderSend(Symbol(),OP_SELLSTOP,Lot,Bid-StopLoss*Point,3,Bid-StopLoss*Point+OPStopLoss*Point,Bid-StopLoss*Point-OPTakeProfit*Point);
       }
      if (iCustom(NULL, 0, "111111",z,k,3,1)!=0){
      TotalOrders=OrdersTotal();
        for (i=0; i<=TotalOrders; i++){
                 if (OrderSelect(0,SELECT_BY_POS)==true){
                    if (OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,5,Red);
                 if (OrderSelect(0,SELECT_BY_POS)==true){   
                    if (OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket(),Green);
                 }   
                 }
        }              
     if (OrdersTotal()==0) OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Ask+StopLoss*Point,Ask-TakeProfit*Point);
     // OrderSend(Symbol(),OP_BUYSTOP,Lot,Ask+StopLoss*Point,3,Ask+StopLoss*Point-OPStopLoss*Point,Ask+StopLoss*Point+OPTakeProfit*Point);
         }
  }
Ребята, помогите сделать так чтобы советник пытался закрыть и открыть позицию до победного конца, как грицца, И как добавить запись ошибок в лог??? Буду очень признателен....
 
nikelodeon писал(а) >>
Никак не могу понять почему происходит следующее, Прикакихто непонятных обстоятельствах, советник просто останавливаеться и не хочет ни закрывать, ни открывать позиции. вот стандартный код работы советника по позициям.Ребята, помогите сделать так чтобы советник пытался закрыть и открыть позицию до победного конца, как грицца, И как добавить запись ошибок в лог??? Буду очень признателен....

Надо бы в начале код индикатора посмотреть. А ошибки и так в лог пишутся.

 
Индикатор работает как часы, его я уже отшлифовал, думаю не до конца но вполне рабочий вариант. Бывает даже так индикатор выдает сигнал, на текущем баре, а советник молчит. Перегружаю МТ4 и он закрывает старую позу и открывает новую, при этом до перегрузки МТ котировки тикают......
 
nikelodeon писал(а) >>
Индикатор работает как часы, его я уже отшлифовал, думаю не до конца но вполне рабочий вариант. Бывает даже так индикатор выдает сигнал, на текущем баре, а советник молчит. Перегружаю МТ4 и он закрывает старую позу и открывает новую, при этом до перегрузки МТ котировки тикают......

Надо смотреть индикатор. Какие у него значения по умолчанию стоят? Нет ли критичных делений. Да мало ли. В том коде, что выложен особых ошибко нет. Лучше было бы сделать переменные, несущие значения индикатора и вывести их через Print();, а так никто и ничего не скажет.

Да и логи неплохо было бы посмотреть.

 
Вот только что посмотрел лог там написанно Publisher : error opening file, что то в этом роде, а что за файл умане приложу.....А как закрывать ордер пока он не будет закрыт????
 
nikelodeon писал(а) >>
Вот только что посмотрел лог там написанно Publisher : error opening file, что то в этом роде, а что за файл умане приложу.....А как закрывать ордер пока он не будет закрыт????

Надо смотреть полный код индикатора и советника. Дело конечно хозяйское. Можно через личку

 
nikelodeon >>:
Вот только что посмотрел лог там написанно Publisher : error opening file, что то в этом роде, а что за файл умане приложу.....А как закрывать ордер пока он не будет закрыт????

Publisher - отправка отчёта по ftp. (Сервис->Настройки->Публикация).

 
nikelodeon >>:
Никак не могу понять почему происходит следующее, Прикакихто непонятных обстоятельствах, советник просто останавливаеться и не хочет ни закрывать, ни открывать позиции. вот стандартный код работы советника по позициям. Ребята, помогите сделать так чтобы советник пытался закрыть и открыть позицию до победного конца, как грицца, И как добавить запись ошибок в лог??? Буду очень признателен....

до победного, можно как то так:

      if (iCustom(NULL, 0, "111111",z,k,2,1)!=0)
         {
         TotalOrders=OrdersTotal(); 
         for (i=0; i<TotalOrders; i++)
            {
            if (OrderSelect(i,SELECT_BY_POS)==true)
               {
               bool rez=true;
               if (OrderType()==OP_SELL) rez=OrderClose(OrderTicket(),OrderLots(),Ask,5,Red);
               if (OrderType()==OP_BUYSTOP) rez=OrderDelete(OrderTicket(),Green);
               //проверку на ошибку желательно добавить. еси чо критическое, то return :)
               if(rez==false) i--;
               }          
            }
         }
причина остановки не раскрыта)
 
Стесняюсь спросить а функция ретурн, просто выходит из советника и при следующем тике он опять считает его с начала? так веть?
 
nikelodeon писал(а) >>
Стесняюсь спросить а функция ретурн, просто выходит из советника и при следующем тике он опять считает его с начала? так веть?

Так. Но это в старте только

 
nikelodeon >>:
Стесняюсь спросить а функция ретурн, просто выходит из советника и при следующем тике он опять считает его с начала? так веть?

ретурн выход из функции. Если в функции start(), то да, ждет до следующего тика.