¡Ayuda!

 
¡Cómo prescribir que al abrirse una vela se abriera una orden, y al abrirse la siguiente se cerrara y se abriera una nueva!
 
Anton Tarasov:
¡Cómo especificar que con la apertura de una vela se abrió una orden, y con la apertura de la siguiente se cerró y se abrió una nueva!
Lo primero que hay que hacer es especificar la plataforma.
 
Alexey Kozitsyn:
Primero hay que especificar la plataforma.
Mt4
 
Anton Tarasov:
Mt4

Esta es la función para determinar el inicio de una nueva barra

/// Определяет начало нового бара
bool NewBar()
{
    static datetime lastbar = 0;
    datetime curbar = iTime(Symbol(), PERIOD_M1, 0);
    if(lastbar!=curbar)
    {
        lastbar=curbar;
        return (true);
    }
    return(false);
}
 
Alexey Volchanskiy:

Esta es una función para determinar el inicio de una nueva barra

Gracias.

 
Alexey Volchanskiy:

Esta es una función para determinar el inicio de una nueva barra

¡¡¡esta no es la función correcta!!!

Dará una señal falsa en la primera ejecución del EA

Esta es la forma correcta y fiable :

// =========================================================================================================// 
bool NewBar()
  {
   static datetime time=0;
   datetime cur_time = iTime(Symbol(), PERIOD_CURRENT, 0);
   if(time==0)
     {
      time=cur_time;
      return false;
     }
   if(time!=cur_time)
     {
      time=cur_time;
      return true;
     }
   return false;
  }
// =========================================================================================================//
 
Vladimir Pastushak:

¡¡¡esta no es la función correcta!!!

Dará una señal falsa en el primer inicio del EA

Esta es la forma correcta y fiable de hacerlo :

Un "si" extra para el EA es como una piedra en el cuello.
 
Anton Tarasov:
¡Cómo prescribir que con la apertura de una vela se abrió una orden, y con la apertura de la siguiente vela se cerró y se abrió una nueva!
Si la hora de apertura de una barra de la orden es menor que Time[0], entonces la cerramos. Si no hay pedidos después, abrimos uno nuevo.
 
Dmitry Fedoseev:
Un si innecesario es como una piedra en el cuello del EA.
Poner un segundo más entonces
 
bool NEW_BAR() еще короче
 {
  static int nBars=0;
  if(nBars!=Bars)
   {
    nBars=Bars;
    return(true);
   }
  return(false);
 }
 
Alexey Busygin:
Entonces pon el segundo.
Y eso te quita un peso de encima
Razón de la queja: