Как ограничить советник по открытию ордеров.

 

Не могу сообразить как написать:

 Если нет открытых ордеров SELL проверяем выполнение условий открытия ордера SELL / Если есть открытый ордер SELL переходим к следующему оператору

 Если нет открытых ордеров BUY проверяем выполнение условий открытия ордера BUY / Если есть открытый ордер BUY переходим к следующему оператору

 Заранее благодарю....

int total = OrdersTotal();
for(int i=total; i>=1; i--)
 {
  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
 {  ... что дальше ?
 
Rafting:

Не могу сообразить как написать:

 Если нет открытых ордеров SELL проверяем выполнение условий открытия ордера SELL / Если есть открытый ордер SELL переходим к следующему оператору

 Если нет открытых ордеров BUY проверяем выполнение условий открытия ордера BUY / Если есть открытый ордер BUY переходим к следующему оператору

 Заранее благодарю....

Используйте готовые функции для работы с позициями из библиотеки KimIV.
 
int CountTradesBuy(int mn = 0)
{
    int count = 0;
    for (int i=OrdersTotal()-1; i>=0; i--)
    {
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
           if (OrderSymbol() == Symbol() && OrderMagicNumber() == mn && OrderType() == OP_BUY)
           count++;
        }
    }
   return(count);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int CountTradesSell(int mn = 0)
{
    int count = 0;
    for (int i=OrdersTotal()-1; i>=0; i--)
    {
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
           if (OrderSymbol() == Symbol() && OrderMagicNumber() == mn && OrderType() == OP_SELL)
           count++;
        }
    }
   return(count);
}
if (CountTradesBuy(Magic) == 0)

{
   "Условие открытия"

}
if (CountTradesSell(Magic) == 0)

{
"Условие открытия"

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