Как выбрать ордер из списка всех открытых ордеров?

 

Вообщем требуется следующее..............

В мультивалютном советнике требуется выполнить условие так чтоб при открытии ордера по одной паре больше не открывались ордера по этой паре

а по другим можно открывать только по одному ордеру.

Другими словами можно открывать ордера по любой паре только по одному ордеру. Вот.

Я просто еще не сталкивался с мультивалютниками.

всем спасибо.

 
int CountOrder[6];
//===============================================================================
// Функция возвращаюшая количество ордеров определенного типа исхода из заданных ограничений
//===============================================================================

int CalculateCountOrder(string lSymbol="", int lMagic=-1, int OP=-1){
   ArrayInitialize(CountOrder,0);
   for (int i=0;i<OrdersTotal();i++){
      if (!OrderSelect(i,SELECT_BY_POS))                 continue;
      if (!(OrderSymbol()==lSymbol || lSymbol==""))      continue;
      if (!(OrderMagicNumber()==lMagic ||  lMagic==-1))  continue;
      CountOrder[OrderType()]++;
   }
   if (OP>=0) return(CountOrder[OP]);
   return(-1);
}
 
mozg >>:

Вообщем требуется следующее..............

В мультивалютном советнике требуется выполнить условие так чтоб при открытии ордера по одной паре больше не открывались ордера по этой паре

а по другим можно открывать только по одному ордеру.

Другими словами можно открывать ордера по любой паре только по одному ордеру. Вот.

Я просто еще не сталкивался с мультивалютниками.

всем спасибо.

Сделай массив валют на которых работает эксперт и по циклу перебирай массив и проверяй существует ли открытый ордер по паре. Если нет переходи к открытию, если есть контролируй позицию.

 

Хорошо, буду пробовать.

И тогда еще вопросик.......как в Гепарде составленна функция торговли по всем парам если советник прикреплен только к окну одной пары?

Возможно такое?

 
mozg >>:

Возможно такое?

Возможно, очень просто, почитай справку по открытию ордера.

 
Спс..........
Причина обращения: