Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 2

 
Vladimir Karputov:

Tal y como has sugerido, el compilador lo jura.

{
   Ticket=OrderSend(NULL,OP_BUY,Lot,Ask,slippage,0,0,NULL,magic,0,Blue);
   if(!Ticket>0)Print(GetLastError());
   else
   {
    if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true)
    if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol()))
    {
     TP=NormalizeDouble(Bid+TakeProfit*Point,Digits);
     bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),TP,0,0);
      return;
    }
   }

No funciona.

 
Nickolay72:

Tal y como has sugerido, el compilador lo jura.

{
   Ticket=OrderSend(NULL,OP_BUY,Lot,Ask,slippage,0,0,NULL,magic,0,Blue);
   if(!Ticket>0)Print(GetLastError());
   else
   {
    if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true)
    if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol()))
    {
     TP=NormalizeDouble(Bid+TakeProfit*Point,Digits);
     bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),TP,0,0);
      return;
    }
   }

No funciona.

Aquí está su código:

if(! Ticket>0)Print(GetLastError()) --- El billete es un número entero, es decir, "2354865". Ahora una pregunta: ¿puede un entero no ser ( !2354865) Un entero puede ser mayor que "> 0" o menor que "< 0" . Este valor bool puede ser falso/verdadero ( ! )

Además, esta construcción:if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true) --- enumera los parámetros por ticket, y si ves un ticket concreto, no tiene sentido comprobar su número o símbolo mágico, es decir, es obviamente innecesario:if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol())

Y por último, es mejor poner entre corchetes estas construcciones para especificar explícitamente el orden de las tareas matemáticas:NormalizarDoble(Oferta+( Beneficio*Punto),Dígitos);
 
Vitaly Muzichenko:


Y por último, es mejor poner entre corchetes estas construcciones para especificar explícitamente el orden de las tareas de la matriz:NormalizarDoble(Oferta+( Beneficio*Punto),Dígitos);

No, puedes hacerlo sin soportes. Pero cuando la suma tiene que ser multiplicada, entonces se requieren paréntesis.

 
poman:

puede tomar el valor del tiempo de apertura de la barra 0 con el periodo D1, + añadir el número de segundos,

en la condición para comparar la hora actual con la obtenida en la primera línea

en una orden pendiente es posible poner un número de segundos, tiempo de vida de la orden.

Data_1=iTime(Symbol(),PERIOD_D1,0)+86400;  //время жизни ордера


Gracias por el consejo) Me ayudó)
 

Ayuda con el código, el asesor pasa por todas las barras, ¡cómo hacer que pase por las últimas 200 barras! Gracias

int  i, k=iBars(Symbol(), 0);
for (i=1; i<k; i++)
 

Señal_del_proveedor

Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio

Preguntas de los principiantes

Proveedor_señal, 2016.11.09 18:38

¿Cómo cerrar todas las órdenes en el EA el viernes por la noche? Para no dejarlo para el fin de semana.

Encontrada la función DayOfWeek().

Puedo hacer un cheque

if (DayOfWeek() == 5)
{
//
}

Pero, ¿qué tipo de cheque debemos extender por el tiempo? Por ejemplo, ¿qué pasaría si fueran las 22:00?


 
Vladimir Karputov:

Señal_del_proveedor

Pero qué tipo de cheque para el tiempo. Por ejemplo, ¿qué sería a las 22:00?
extern int St_Hour   = 22;

if (Hour()==St_Hour)
 
Aibek Mugiynov:

Ayuda con el código, el asesor pasa por todas las barras, ¡cómo hacer que pase por las últimas 200 barras! Gracias

int  i, k=iBars(Symbol(), 0);
for (i=1; i<k; i++)
for (i=1; i<200; i++)
 

Hola, ayuda.

Si no se llena el buffer en tres barras, lleno el buffer.


     int BarCount=3;
    BER=true;
   for(int il=1;il<=BarCount;il++)
     {
      if(BufferPointUp[il]!= EMPTY_VALUE){BER=false;break;}
     }
     if(BER) BufferPointUp[i]=high[i];

Rellena en todas las barras, indistintamente.

Pero todo es correcto si hago esto.

if(BufferPointUp[i+1]== EMPTY_VALUE&&BufferPointUp[i+2]== EMPTY_VALUE&&BufferPointUp[i+3]== EMPTY_VALUE)BufferPointUp[i]=high[i];

¿Cómo haceresta comprobación en un bucle?

 
mila.com:
extern int St_Hour   = 22;

if (Hour()==St_Hour)
Gracias
Razón de la queja: