Questions des débutants MQL5 MT5 MetaTrader 5 - page 522

 
toni_stark:
Pouvez-vous me dire le code : EA ouvre un ordre par jour, comment fermer ces ordres à la fin de la journée, par exemple à 23:50 ?
si(TimeCurrent()>=D'23:50') close_all() ;
 
Vasyl Nosal:
si(TimeCurrent()>=D'23:50') close_all() ;
Dans ce cas, tous les ordres seront-ils fermés ou seulement ceux ouverts par l'EA ?
 
toni_stark:
Cette option fermera-t-elle tous les ordres ou seulement ceux qui ont été ouverts par l'EA ?
Cela dépend de la fonction de fermeture.
 
toni_stark:
Dans ce cas, tous les ordres seront-ils fermés ou seulement ceux ouverts par le conseiller expert ?

:)))

Ce que vous écrivez dans la fonction close_all()

 
quel paramètre ou fonction permet de décaler l'indicateur vers le haut ou vers le bas de n points ?
Dossiers :
 
Vasyl Nosal:

:)))

Ce que vous écrivez dans close_all()

Ce n'est pas tout à fait clair avec la fonction close_all(), ce n'est pas dans le metaiditor. Peut-être la fonction OrderClose() est-elle visée ?
 
toni_stark:
La fonction close_all() n'est pas tout à fait claire, elle n'est pas dans le metadvisor. Peut-être la fonction OrderClose() est-elle visée ?

il veut dire quelque chose comme ça

//+------------------------------------------------------------------+
void сlose_all()
  {
   double price=0;
   bool error;
   int total=OrdersTotal();

   for(int i=total-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS))
        {
         //Print(__FUNCTION__);

         if(OrderType()==OP_BUY)
           {
            RefreshRates();
            price=NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),(int)MarketInfo(OrderSymbol(),MODE_DIGITS));
            error=OrderClose(OrderTicket(),OrderLots(),price,10000,clrBlue);
            if(!error) PrintFormat("Error № %d closing the order. Ticket: %d",GetLastError(),OrderTicket());
           }
         if(OrderType()==OP_SELL)
           {
            RefreshRates();
            price=NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),(int)MarketInfo(OrderSymbol(),MODE_DIGITS));
            error=OrderClose(OrderTicket(),OrderLots(),price,10000,clrBlue);
            if(!error) PrintFormat("Error № %d closing the order. Ticket: %d",GetLastError(),OrderTicket());

           }
         if(OrderType()>1)
           {
            error=OrderDelete(OrderTicket());
            if(!error) PrintFormat("Error № %d delete the order. Ticket: %d",GetLastError(),OrderTicket());
           }

        }

     }
  }
//+------------------------------------------------------------------+
 
Sergey Gritsay:

il veut dire quelque chose comme ça

Je l'ai, une fonction personnalisée.
 
Chers programmeurs. Pouvez-vous nous aider ? Je dois "resserrer" un EA (je suis en train de le mettre en page) pour définir le nombre d'ordres ouverts. Je ne sais pas si ça va aider. J'ai mis ces chouettes sur plusieurs couples et une seule commande est ouverte. Si j'ouvre un ordre sur l'une des paires, les signaux sur l'autre paire ne sont pas ignorés. Je ne sais pas quoi en faire.
Dossiers :
 
Désolé...mon erreur(Et quand un ordre est ouvert sur une paire, les signaux sur l'autre paire sont INVOYÉS)
Raison: