Вс. Ноя 24th, 2024

Функция считает, сколько было открыто ордеров в текущем часе всего (текущих ордеров и ордеров закрытых).

Можно применять, например, если надо ограничить количество открываемых советником ордеров, например, не больше 2 в час и пр.

Ставьте лайки на этот сайт)

Функция:

int CountOrdersInHour()
  {
   int count_tr=0;
   int count_hy=0;
   int count_all=0;
   int H=TimeHour(TimeCurrent());
   
   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
        {
         int OOP=TimeHour(OrderOpenTime());
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(H==OOP) count_tr++;
           }
        }
     }
   for(int trade=OrdersHistoryTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_HISTORY))
        {
         int OOP=TimeHour(OrderOpenTime());
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(H==OOP) count_hy++;
           }
        }
     }

   count_all=count_hy+count_tr;

   return(count_all);
}

от drivermql

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.