помогите пожалуйста исправить ошибку not all control paths return a value - страница 2

 
            if(mode==2 || mode==3 && TimeDay(OrderOpenTime())!=TimeDay(Time[0]))break;
            if(mode==4 || mode==5 && TimeMonth(OrderOpenTime())!=TimeMonth(Time[0]))break;

скобки не потеряны?

Потому что дальше ещё раз 2 и 4, но до них проверка не дойдёт

 
Igor Zakharov:

скобки не потеряны?

Потому что дальше ещё раз 2 и 4, но до них проверка не дойдёт

как-то так выглядит..компиляция проходит..сделки не открывает..

int countglobal(){

   int cnt=0;

   if(OrdersTotal()>0){

      for(i=OrdersTotal()-1;i>=0;i--){

         OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

         cnt++;

      }

      

   }

   return(0);

}

//+-------------------------------------------------------------------------+ MAGIC COUNTER FUNCTION +---------------+

int count(int type){

   int cnt=0;

   if(OrdersTotal()>0){

      for(i=OrdersTotal()-1;i>=0;i--){

         OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

         if(OrderSymbol()==Symbol() && OrderType()==type && OrderMagicNumber()==magic)cnt++;

      }

     

   }

   return(0);

}

//+------------------------------------------------------------------------------------+ COUNTER ALL +---------------+

int countall(int mode){

   int cnt=0;

   if(mode==0)cnt=count(OP_BUY)+count(OP_SELL);

   if(mode==1)cnt=count(OP_BUY)+count(OP_SELL)+count(OP_BUYSTOP)+count(OP_SELLSTOP)+count(OP_BUYLIMIT)+count(OP_SELLLIMIT);

   return(cnt);

}
 
Pavel Malyshko:

спасибо)!с одной стороны компилировать удалось без ошибок...а с другой эксперт перестал открывать сделки в тестере....

За открытие ордеров отвечает функция "OrderSend", в вашем коде её я не увидел, вероятно в эту функцию передаётся не корректное или не корректные значения переменных. Прописывайте перед функцией "OrderSend" функцию Print("1"); и после запуска в тестере проверяйте переменные в журнале. Но сначала пропишите цифру "1"( Print("1");), дабы понять доходит ли вообще считывание строк до функции "OrderSend". Вероятно в вашем случае функция "counthistoprofit" передаёт значение, не приемлемое для открытие ордера, т.к ранее в эту функцию передавался "0", а сейчас уже всё рассчитывается и в этом случае нужно будет нормализовать или конвертировать значение для функции "OrderSend"

Причина обращения: