Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 522

 
toni_stark:
Potete dirmi il codice: l'EA apre un ordine al giorno, come chiudere questi ordini alla fine della giornata, per esempio alle 23:50?
if(TimeCurrent()>=D'23:50') close_all();
 
Vasyl Nosal:
if(TimeCurrent()>=D'23:50') close_all();
In questo caso, verranno chiusi tutti gli ordini o solo quelli aperti dall'EA?
 
toni_stark:
Questa opzione chiuderà tutti gli ordini o solo quelli che sono stati aperti dall'EA?
Dipende dalla funzione di chiusura.
 
toni_stark:
In questo caso, verranno chiusi tutti gli ordini o solo quelli aperti dall'Expert Advisor?

:)))

Cosa si scrive nella funzione close_all()

 
quale parametro o funzione aiuterà a spostare l'indicatore in alto o in basso di n punti?
File:
 
Vasyl Nosal:

:)))

Cosa si scrive in close_all()

Non è completamente chiaro con la funzione close_all(), non è nel metaiditore. Forse si intende la funzione OrderClose()?
 
toni_stark:
Non è del tutto chiaro sulla funzione close_all(), non è nel metadvisor. Forse si intende la funzione OrderClose()?

intende qualcosa del genere

//+------------------------------------------------------------------+
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:

intende qualcosa del genere

Capito, una funzione personalizzata.
 
Cari programmatori. Puoi aiutare? Devo "stringere" un EA (lo sto stendendo) per impostare il numero di ordini aperti. Non so se servirà a qualcosa. Ho messo questi gufi su diverse coppie e solo un ordine è stato aperto. Se apro un ordine su una delle coppie, i segnali sull'altra coppia non vengono ignorati. Non so cosa farne.
File:
 
Scusa... il mio errore(E quando un ordine è aperto su una coppia, i segnali sull'altra coppia sono INVOIDATI)