Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 522

 
toni_stark:
¿Puede decirme el código: EA abre una orden por día, cómo cerrar estas órdenes al final del día, por ejemplo, a las 23:50?
if(TimeCurrent()>=D'23:50') close_all();
 
Vasyl Nosal:
if(TimeCurrent()>=D'23:50') close_all();
En este caso, ¿se cerrarán todas las órdenes o sólo las abiertas por el Asesor Experto?
 
toni_stark:
¿Esta opción cerrará todas las órdenes o sólo las que han sido abiertas por el EA?
Depende de la función de cierre.
 
toni_stark:
En este caso, ¿se cerrarán todas las órdenes o sólo las abiertas por el Asesor Experto?

:)))

Lo que se escribe en la función close_all()

 
¿qué parámetro o función ayudará a desplazar el indicador hacia arriba o hacia abajo en n puntos?
Archivos adjuntos:
 
Vasyl Nosal:

:)))

Lo que se escribe en close_all()

No está del todo claro con la función close_all(), no está en el metaiditor. ¿Tal vez se trate de la función OrderClose()?
 
toni_stark:
No está del todo claro lo de la función close_all(), no está en el metadirector. ¿Tal vez se trate de la función OrderClose()?

se refiere a algo así

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

se refiere a algo así

Lo tengo, una función personalizada.
 
Estimados programadores. ¿Puede ayudar? Tengo que "apretar" un EA (lo estoy poniendo) para fijar el número de órdenes abiertas. No sé si servirá de algo. Puse estos búhos en varias parejas y sólo se abre un pedido. Si abro una orden en uno de los pares, las señales del otro par no se ignoran. No sé qué hacer con él.
Archivos adjuntos:
 
Lo siento... mi error(Y cuando una orden está abierta en un par, las señales en el otro par son INVOCADAS)