OrdersTotal() - если открыто несколько графиков, то получается , что эта функция дает общее количество открытых ордеров на всех графиках ???

 
Да, её значение совершенно не зависит от количества графиков.
 
Вернее - дает количество открытых ордеров для всего акаунта.
 

Да, вероятно в MQL документацию стоило бы дописать:

int OrdersTotal( )
Возвращает общее количество открытых и отложенных ордеров для текущего активного счёта.

 
Sart:
ответьте кто может....

с уважением- Сергей Сартаков


Я так понял Вам надо подсчитать конкретно на какойто данной валютной паре количество открытых и отложенных ордеров, код в низу это делает.
int TotalOrders=0;
 
  for(int pos=OrdersTotal()-1;pos>=0;pos--)
    {
    if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true)
      {
      if(OrderSymbol()==Symbol())
        {
        TotalOrders++;     
        }
      }
    }
Comment("Общее колличество ордеров по инструменту: ",Symbol());
 
Itso:
Вернее - дает количество открытых ордеров для всего акаунта.
спасибо-очень исчерпывающе...

С уважением С.С
 
conys:
Sart:
ответьте кто может....

с уважением- Сергей Сартаков


Я так понял Вам надо подсчитать конкретно на какойто данной валютной паре количество открытых и отложенных ордеров, код в низу это делает.
int TotalOrders=0;
 
  for(int pos=OrdersTotal()-1;pos>=0;pos--)
    {
    if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true)
      {
      if(OrderSymbol()==Symbol())
        {
        TotalOrders++;     
        }
      }
    }
Comment("Общее колличество ордеров по инструменту: ",Symbol());


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

      ctm = OrderCloseTime();
      if (ctm > 0)
         continue; //Print("Время закрытия");
 
      if ( OrderSymbol() == Symbol() )
 
chv:

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

      ctm = OrderCloseTime();
      if (ctm > 0)
         continue; //Print("Время закрытия");
 
      if ( OrderSymbol() == Symbol() )

Это излишне, т.к. проверяются только открытые и отложенные ордера.

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