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.
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.