значение прибыли ордера в пунктах - страница 2

 
так и думал, что больше одного не может возвращать. А как сделать "Если больше, то нужно делать или по ссылке, или через глобальные переменные (переменные, доступные в любом месте программы)"?
 
int buyOrders,sellOrders,buystopOrders,sellstopOrders,TicketbuyOrders,TicketsellOrders,TicketbuystopOrders,TicketsellstopOrders;
void chetchik()
{  int cnt;
   buyOrders=-1;
   sellOrders=-1
   buystopOrders=-1
   sellstopOrders=-1
   TicketbuyOrders=-1
   TicketsellOrders=-1;
   TicketbuystopOrders=-1;
   TicketsellstopOrders=-1'
   for(cnt=OrdersTotal()-1;cnt>=0;cnt--) 
      {
      if (OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)) 
         {
         if (OrderSymbol()!=Symbol()) continue; 
                                                
         if (OrderType()==OP_BUY) 
            {
            buyOrders++;                  
            TicketbuyOrders=OrderTicket();  
            }
         if (OrderType()==OP_SELL) 
            {
            sellOrders++;
            TicketsellOrders=OrderTicket();  
            }
         if (OrderType()==OP_BUYSTOP) 
            {
            buystopOrders++; 
            TicketbuystopOrders=OrderTicket();
            }
          if (OrderType()==OP_SELLSTOP) 
            {
            sellstopOrders++; 
            TicketsellstopOrders=OrderTicket();
            }
          }
      }
}

Я на всякий случай присвоил значения -1, думая что иакого значения они принимать не должны, хотя в каждом случае нужно принимать решение исходя из логики программы

Второй вариант

void chetchik(int &buyOrders, int &sellOrders, int &buystopOrders, int &sellstopOrders, int &TicketbuyOrders, int &TicketsellOrders, int &TicketbuystopOrders, int &TicketsellstopOrders)
{  int cnt;
 
   for(cnt=OrdersTotal()-1;cnt>=0;cnt--) 
      {
      if (OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)) 
         {
         if (OrderSymbol()!=Symbol()) continue; 
                                                
         if (OrderType()==OP_BUY) 
            {
            buyOrders++;                  
            TicketbuyOrders=OrderTicket();  
            }
         if (OrderType()==OP_SELL) 
            {
            sellOrders++;
            TicketsellOrders=OrderTicket();  
            }
         if (OrderType()==OP_BUYSTOP) 
            {
            buystopOrders++; 
            TicketbuystopOrders=OrderTicket();
            }
          if (OrderType()==OP_SELLSTOP) 
            {
            sellstopOrders++; 
            TicketsellstopOrders=OrderTicket();
            }
          }
      }
}
Есть конечно и другие варианты. Используются исходя из целесообразности, удобства и стиля программирования. Тебе нужен свой способ, который ты понимаешь и который будет правильным.
 

спасибо.

Только я не совсем понял. Ведь функция с void нечего не возвращает.

У меня функция int start() примерно так

int start()
{ 
  chetchik();
.........
.........
.........
return(0);
}

при каждом новым тике нужны новые данные от функции счетчика

 
&buyOrders

значок & наверно делает переменную глобальным. Тогда ясно.

Только теперь компиляция ругается на вызов из start.

int start()
{
chetchik(); ')' - wrong parameters count

внутрь скобки даже незнаю, что написать, попробовал нули поставить, не нравится

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