Затваряне на всички активни позиции

Функцията затваря всички активни позиции по зададен MagicNumber

int CloseAll()
{
  int total = OrdersTotal();
  for(int i = total - 1; i >= 0; i--)
  {
    OrderSelect(i, SELECT_BY_POS);
    int type   = OrderType();

    bool result = false;
    if(OrderMagicNumber()==MagicNumber)
    {
    switch(type)
    {
      //Close opened long positions
      case OP_BUY     : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );
                          break;
      
      //Close opened short positions
      case OP_SELL    : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red );
                          
    }
    
    if(result == false)
    {
      Alert("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() );
      Sleep(3000);
    }
    }  
  }
  
  return(0);
}

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *