Пт. Апр 19th, 2024

Функция закрытия всех открытых ордеров

Функция закрытия всех открытых бай-ордеров

Для закрытия открытых бай-ордеров я использую функцию:

void CloseAllOrdersBuy()
  {
   int tot_util=1;
   int TimeStart=GetTickCount();
   while(tot_util>0)
     {
      if(GetTickCount()-TimeStart>600000)
        {
         Alert("Что-то пошло не так, процедура закрытия ордеров завершилась аварийно!");
         Print("Что-то пошло не так, процедура закрытия ордеров завершилась аварийно!");
         break;
        }
      tot_util=0;
      for(int i=OrdersTotal()-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS) && (OrderMagicNumber()==Magic) && OrderSymbol()==Symbol())
           {
            RefreshRates();
            tot_util++;
            if(OrderType()==OP_BUY)
              {
               if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slippage))
                 {
                  continue;
                 }
              }
           }
        }
     }
   return;
  }

Функция закрытия всех открытых селл-ордеров

void CloseAllOrdersSell()
  {
   int tot_util=1;
   int TimeStart=GetTickCount();
   while(tot_util>0)
     {
      if(GetTickCount()-TimeStart>600000)
        {
         Alert("Что-то пошло не так, процедура закрытия ордеров завершилась аварийно!");
         Print("Что-то пошло не так, процедура закрытия ордеров завершилась аварийно!");
         break;
        }
      tot_util=0;
      for(int i=OrdersTotal()-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS) && (OrderMagicNumber()==Magic2) && OrderSymbol()==Symbol())
           {
            RefreshRates();
            tot_util++;

            if(OrderType()==OP_SELL)
              {
               if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slippage))
                 {
                  continue;
                 }
              }
           }
        }
     }
   return;
  }

 


Поделись с друзьями:

от drivermql

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

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

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