Socorro!

 
Como prescrever que na abertura de uma vela uma ordem foi aberta, e na abertura da próxima uma ordem foi fechada e uma nova foi aberta!
 
Anton Tarasov:
Como especificar que na abertura de uma vela uma ordem é aberta, e na abertura da próxima é fechada e uma nova é aberta!
A primeira coisa a fazer é especificar a plataforma.
 
Alexey Kozitsyn:
Primeiro você precisa especificar a plataforma.
Mt4
 
Anton Tarasov:
Mt4

Aqui está a função para determinar o início de um novo bar

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

Aqui está uma função para determinar o início de um novo bar

Obrigado!

 
Alexey Volchanskiy:

Aqui está uma função para determinar o início de um novo bar

esta não é a função certa!!!

Ele dará um sinal falso na primeira execução da EA

Esta é a forma correta e confiável :

// =========================================================================================================// 
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 não é a função certa!!!

Ele dará um sinal falso no primeiro início da EA

Esta é a forma correta e confiável de fazê-lo:

Um desnecessário se para a EA for como uma pedra no pescoço.
 
Anton Tarasov:
Como prescrever que com a abertura de uma vela uma ordem foi aberta, e com a abertura da vela seguinte foi fechada e uma nova foi aberta!
Se o tempo de abertura de uma barra da ordem for inferior ao Tempo[0], então a fechamos. Se não houver pedidos depois disso, abrimos um novo.
 
Dmitry Fedoseev:
Um desnecessário se for como uma pedra no pescoço da EA.
Coloque então um segundo
 
bool NEW_BAR() еще короче
 {
  static int nBars=0;
  if(nBars!=Bars)
   {
    nBars=Bars;
    return(true);
   }
  return(false);
 }
 
Alexey Busygin:
Em seguida, coloque o segundo.
E isso é o mesmo que a pila.