Répondre

Fermeture de tous les Longs/Courts pour un symbole

0 réponses

tomas262

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

il y a 6 ans #117105

Bonjour,

 

pour clôturer une position longue ou courte uniquement pour un symbole donné, vous pouvez procéder de la manière suivante :

 

1) ajouter le code personnalisé dans le fichier CustomFunction.mq4 placé dans le dossier Wizard

void closeAllOrders(string direction, string symbolStr) {
  int total = OrdersTotal() ;
  for(int i=total-1;i>=0;i--) {
    OrderSelect(i, SELECT_BY_POS) ;
    int type = OrderType() ;

    bool result = false ;

    if (direction == "LONG" && type == OP_BUY && OrderSymbol() == symbolStr) {
      result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ) ;
    }
    else if (direction == "SHORT" && type == OP_SELL && OrderSymbol() == symbolStr) {
      result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ) ;
    }
    if(result == false) {
      Alert("Order " , OrderTicket() , " failed to close. Error :" , GetLastError() ) ;
      Sleep(3000) ;
    }
  }
  return(0) ;
}

2) ajouter Action personnalisée comme ceci dans Wizard

closeAllOrders("LONG", "EURUSD") ;

Ceci, par exemple, clôturera toutes les positions longues sur l'EURUSD.

 

Si vous avez des questions, n'hésitez pas à m'en faire part.

0