MQL5 e MetaTrader (núcleo)

A estrutura do programa MQL5

5 min

Todo EA é construído em torno de algumas funções manipuladoras de evento que a MetaTrader chama automaticamente nos momentos certos. Você não as chama você mesmo — o terminal o faz.

Os três eventos centrais

  • OnInit() — chamada uma vez quando o EA é anexado ou seus inputs mudam. Valide entradas, crie handles de indicadores, prepare o estado. Retorne INIT_SUCCEEDED ou falhe cedo.
  • OnTick() — chamada a cada tick de preço que chega. É o coração do EA: ler preços, avaliar a estratégia, decidir se opera. Pode disparar muitas vezes por segundo ou raramente, dependendo do mercado.
  • OnDeinit() — chamada uma vez quando o EA é removido ou o terminal fecha. Libere handles e faça a limpeza.

Um esqueleto mínimo de EA

// input parameters are tunable from the terminal and the tester
input int    FastPeriod = 20;
input int    SlowPeriod = 50;
input double Lots       = 0.10;

int OnInit()
{
    if(FastPeriod >= SlowPeriod)
        return(INIT_PARAMETERS_INCORRECT);
    return(INIT_SUCCEEDED);
}

void OnTick()
{
    // strategy logic runs here on every tick
}

void OnDeinit(const int reason)
{
    // cleanup runs here
}

Um hábito crucial de desempenho

OnTick pode rodar com altíssima frequência. Fazer trabalho pesado a cada tick — recalcular indicadores longos, reler o histórico — é desperdício e pode travar o EA. O padrão comum é agir só quando uma nova barra abre (detectar uma mudança no horário de abertura da barra) em vez de a cada tick, a menos que sua estratégia realmente precise reagir no nível do tick.

Outros manipuladores que você vai encontrar

OnTimer() para trabalho periódico, OnTrade() quando ocorre um evento de negociação, e OnChartEvent() para interação do usuário. Domine os três centrais primeiro; eles cobrem a maioria das estratégias.

Terminou de ler?
Aviso de risco

Este conteúdo tem finalidade exclusivamente educacional e informativa e não constitui recomendação de investimento, consultoria financeira, tributária ou jurídica. Operar e investir envolvem risco, incluindo a possível perda de capital. Qualquer desempenho exibido por ferramentas de terceiros é hipotético e não promessa de resultado futuro. Faça sua própria análise e considere orientação profissional antes de qualquer decisão.