Início Negociação Sistemática Postagem

Como Usar Contadores no MetaTrader 5: Passar e Esperar em Seu Código

Anexo
49213.zip (1.04 KB, Baixar 0 vezes)

01. Contar "X" vezes e depois passar.

  • Passo 01 - Crie uma variável para definir o limite de contagem. Você pode usá-la como um parâmetro de entrada e para otimização em seu código.
  • Passo 02 - Crie outra variável para armazenar o limite contado (quantas vezes já foi contado).
  • Passo 03 - Quando o Contador igualar seu limite de contagem, significa que é hora de passar o bloco de código que você especificou.
  • Passo 04 - Após passar o código, não se esqueça de resetar o contador. Caso contrário, ele contará infinitamente (nesse caso).

Você também pode definir condições de filtragem para o bloco do contador, como: >> "SE isso for verdade, então conte uma vez."

input int count = 50; // Defina o limite de contagem como uma entrada

int Counter; // variável do contador

// Inicializando o Expert --------------------
int OnInit()
{
 return(INIT_SUCCEEDED);
}

// Desinicializando o Expert -------------------
void OnDeinit(const int reason)
{

}

// OnTick do Expert --------------------------
void OnTick()
{
 Counter ++; // adicione 1 ao contador a cada tick.
 Comment("Contagem Atual -:", Counter);
 
 if(Counter == count) // Conte "X" vezes e passe | Este bloco é executado apenas uma vez por contagem.
 {
  
  // Seu código vai aqui......
 Alert(count," Vezes contadas");
 Counter = 0; // Reset o contador ao final do seu bloco de código. Isso é necessário.
 }

} // Fim do OnTick  <<----------------------


02. Passar "X" vezes e depois Esperar "X" vezes.

Esse método pode ser usado como esperar e passar, passar e esperar.

  • Passo 01 - Crie uma variável para definir o limite de contagem e o limite de espera. Você pode usá-las como parâmetros de entrada e para otimização em seu código.
  • Passo 02 - Crie outra variável para armazenar os limites contados e de espera (quantas vezes foi contado e quantas vezes esperou).
  • Passo 03 - Quando o Contador igualar seu limite de contagem, significa que é hora de passar o bloco de código que você especificou.
  • Passo 04 - Quando o esperador igualar seu limite de espera, significa que é hora de esperar um pouco.
  • Passo 05 - Quando o limite de espera for alcançado, não se esqueça de resetar o contador e o esperador também. Caso contrário, ele deixará de funcionar (nesse caso).

Você pode definir condições de filtragem para os blocos do contador e do esperador também, como: >> "SE isso for verdade, espere um pouco."


input int count = 50; // Defina o limite de contagem como uma entrada
input int wait = 50; // Defina o limite de espera como uma entrada

int Counter; // variável do contador, valor padrão é "0"
int Waiter; // variável do esperador, valor padrão é "0"

// Inicializando o Expert --------------------
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }

// Desinicializando o Expert -------------------
void OnDeinit(const int reason)
  {

  }

// OnTick do Expert --------------------------
void OnTick()
  {
   Comment("Ticks Contados -: ", Counter, "\n", "Ticks Esperados -: ", Waiter);

   if(Counter < count) // Passar "X" vezes
     {
      Counter++; // atualiza o contador

      // Seu código vai aqui.

     }
   else
      if(Waiter < wait) // Esperar por "X" vezes
        {
         Waiter++; // atualiza o esperador

         // Seu código vai aqui.

        }

   if(Waiter == wait) // Limite de espera alcançado
     {
      Counter = 0; // resetar contador
      Waiter = 0; // resetar esperador
     }



  } // Fim do OnTick  <<----------------------
//+------------------------------------------------------------------+

Especial -:

Você pode programar o "Passar X vezes e parar" modificando o código acima, removendo o bloco de espera. Assim, ele contará por um número específico e parará até que o contador seja resetado. Você pode resetá-lo em qualquer lugar no seu código se criar essas variáveis em uma escala global. (variáveis globais)


Publicações relacionadas

Comentário (0)