Прошу помощи, Не могу разобраться со счетчиком

 
int TotalOrderType(int Type)
   {
   int OrderCNT=0;
      for(int i=OrdersTotal()-1;i>=0;i--)
                     {
                        if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                           if (OrderType()==Type)
                              {
                                 OrderCNT++;
                              }
                     }
        
         return(OrderCNT);
   }
....................
if (TotalOrderType(1)>=10)
	{
	 MaxOrder = "True";
	}


Друзья прошу помощи, не могу сообразить куда смотреть.

Вообщем смысл написал процедурку по подсчету ордеров одного типа (0-Buy 1-Sell)

И вроде все ничего, считает показывает правильное количество ордеров.

Но есть одно но, повешал условие на результат счетчика, и получил неприятную картину, по факту кол-во ордеров на счетчике меньше, а условие выполняет.

Не могу понять в чем причина.

 
Ivan Elsukov:


Друзья прошу помощи, не могу сообразить куда смотреть.

Вообщем смысл написал процедурку по подсчету ордеров одного типа (0-Buy 1-Sell)

И вроде все ничего, считает показывает правильное количество ордеров.

Но есть одно но, повешал условие на результат счетчика, и получил неприятную картину, по факту кол-во ордеров на счетчике меньше, а условие выполняет.

Не могу понять в чем причина.

Не правильно проверяете результат - код верный

 
Ivan Elsukov:


Друзья прошу помощи, не могу сообразить куда смотреть.

Вообщем смысл написал процедурку по подсчету ордеров одного типа (0-Buy 1-Sell)

И вроде все ничего, считает показывает правильное количество ордеров.

Но есть одно но, повешал условие на результат счетчика, и получил неприятную картину, по факту кол-во ордеров на счетчике меньше, а условие выполняет.

Не могу понять в чем причина.

Проверьте результат так:

int TotalOrderType(int Type)
   {
   int OrderCNT=0;
      for(int i=OrdersTotal()-1;i>=0;i--)
                     {
                        if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                           if (OrderType()==Type)
                              {
                                 OrderCNT++;
                              }
                     }
        
         return(OrderCNT);
   }
bool MaxOrder=false; 
if (TotalOrderType(1)>=10)
        {
         MaxOrder = true;
        }
Print(string(MaxOrder));
Причина обращения: