Cursos Para Traders Estratégias Trader Guia Definitivo: Calcule Drawdown Automático em MQL5

Guia Definitivo: Calcule Drawdown Automático em MQL5

Se você já tentou medir a saúde de um robô de trading no MQL5, sabe que o drawdown costuma aparecer como um número solto, sem contexto. Na prática, quem precisa de um cálculo automático quer saber: “quanto do meu capital estou realmente arriscando a cada operação?” e, sobretudo, como transformar esse número em regra de gestão que impeça perdas catastróficas.

Implementando o cálculo automático

  • Passo 1 – Captura de equity. Use AccountInfoEquity() a cada tick. Armazene o valor em um array circular (tamanho configurável, ex.: 500 ticks) para evitar consumo de memória.
  • Passo 2 – Identificação do pico. A cada atualização, compare o equity atual com o máximo histórico mantido no mesmo array. Se o equity supera o pico, substitua o valor.
  • Passo 3 – Cálculo do drawdown. A fórmula clássica (Peak - Equity) / Peak * 100 entrega o percentual. O truque está em atualizar o Peak somente quando o equity bate recorde, evitando “flutuações falsas”.
  • Passo 4 – Persistência. Salve o pico e o drawdown corrente em um arquivo .csv ou em GlobalVariableSet() para que o EA recupere o estado após reinício.

Gestão baseada no drawdown

Com o percentual em mãos, o próximo passo é definir limites operacionais. Uma abordagem prática:

  • Se drawdown > 2% do capital, reduza o lote em 25%.
  • Se drawdown > 5%, interrompa novas entradas por 30 minutos.
  • Se drawdown > 10%, feche todas as posições e reavalie a estratégia.

Essas regras são simples, mas funcionam porque o cálculo é feito em tempo real, permitindo reação imediata.

Exemplo real

Imagine um EA que opera EUR/USD com lote 0.1. O capital inicial é $10.000. Em 45 minutos, o equity cai de $10.200 para $9.800 – um drawdown de 3,92%. O script detecta o cruzamento do 2% e reduz o lote para 0.075. Três ticks depois, o equity recupera para $10.050, mantendo o risco reduzido até que o drawdown volte abaixo de 2%.

Limitações e armadilhas

  • Latência de tick. Em mercados com poucos ticks, o cálculo pode ficar “estagnado”, gerando drawdown atrasado.
  • Spread inesperado. Picos de spread podem inflar o drawdown momentaneamente, acionando regras de corte prematuras.
  • Over‑fitting. Ajustar limites muito apertados com base em um histórico curto pode eliminar oportunidades legítimas.

FAQ rápido

  • Posso usar o mesmo código em MQL4? Sim, mas substitua AccountInfoEquity() por AccountEquity().
  • Como evitar que o array cresça indefinidamente? Defina um tamanho fixo e sobrescreva índices ciclicamente.
  • É possível visualizar o drawdown no gráfico? Use ObjectCreate() para plotar uma linha de pico e outra de equity.

O ponto contra‑intuitivo aqui é que, ao limitar o lote somente quando o drawdown ultrapassa um patamar, você permite que o EA “respire” em períodos de volatilidade, ao invés de cortar o trading a cada pequena oscilação. Essa flexibilidade costuma melhorar a taxa de acerto em cenários de alta frequência.

Pronto para testar? Baixe o script exemplo e ajuste os limites conforme sua tolerância ao risco. Acesse o código completo e comece a monitorar o drawdown em tempo real.

1. Configuração inicial do ambiente MQL5

Abra o MetaEditor e crie um novo Expert Advisor (EA). No cabeçalho inclua as variáveis que armazenarão o capital inicial e o pico de equidade:

VariávelTipoDescrição
double InitialCapital;doubleValor depositado antes do primeiro trade.
double PeakEquity = 0.0;doubleMaior valor de equidade atingido até o momento.
double CurrentDrawdown = 0.0;doubleDrawdown percentual calculado em tempo real.

2. Captura automática do pico de equidade

Insira o trecho abaixo no OnTick(). Ele garante que PeakEquity nunca diminua:

 if(AccountInfoDouble(ACCOUNT_EQUITY) > PeakEquity) PeakEquity = AccountInfoDouble(ACCOUNT_EQUITY); 

Assim, o código acompanha o ponto máximo mesmo que o EA opere 24 h.

3. Cálculo do drawdown em cada tick

Logo após atualizar o pico, compute o drawdown percentual:

 double equity = AccountInfoDouble(ACCOUNT_EQUITY); if(PeakEquity > 0) CurrentDrawdown = (PeakEquity - equity) / PeakEquity * 100.0; 

O valor de CurrentDrawdown pode ser exibido no gráfico ou enviado a um arquivo CSV para análises posteriores.

4. Rotina recomendada – checklist operacional

  • ✔️ Definir InitialCapital no OnInit() usando AccountInfoDouble(ACCOUNT_BALANCE).
  • ✔️ Atualizar PeakEquity antes de qualquer cálculo de drawdown.
  • ✔️ Salvar CurrentDrawdown em um array drawdownHistory[] a cada minuto (usar EventSetTimer(60)).
  • ✔️ Definir um limite máximo (ex.: 20 %). Quando CurrentDrawdown ultrapassar, acione TradeCloseAll().
  • ✔️ Logar data/hora, equity, pico e drawdown em FileWrite() para auditoria.

5. Ferramentas complementares para monitoramento

Integre o EA com o MQL5 API de WebRequest e envie o drawdown para um Google Sheet. O fluxo fica:

  1. EA gera JSON {"equity":1234.56,"drawdown":8.7}.
  2. WebRequest POST → endpoint do Apps Script.
  3. Planilha atualiza linha “Live”.

6. Erros comuns e como evitá‑los

  • Peak não reinicia após fechamento total – reinicie PeakEquity quando ACCOUNT_BALANCE voltar ao valor inicial.
  • Divisão por zero – sempre verificar PeakEquity > 0 antes do cálculo.
  • Lag de escrita em arquivo – use FILE_WRITE|FILE_CSV e feche o handle imediatamente.

7. Mini‑dashboard textual (exemplo de saída no log)

 === DRAWNDOWN MONITOR === Time: 2026.06.28 14:35:12 Equity: 1 245,30 Peak: 1 500,00 Drawdown: 16.97% ========================= 

Copie o bloco acima para o Print() ao final de OnTick(). Ele fornece visão instantânea sem abrir o arquivo.

8. Cronograma semanal de otimização

DiaAtividade
SegundaRevisar logs de drawdown e ajustar limite.
QuartaBacktest de 1 mes com parâmetros de stop‑loss.
SextaAtualizar script de WebRequest e validar planilha.

Seguindo esses passos, o cálculo de drawdown torna‑se totalmente automático, auditável e integrado ao seu fluxo de trading. O resultado é maior controle de risco e decisões baseadas em dados reais, sem intervenção manual.

Perfil ideal e limitações práticas

Quem realmente tira proveito do script “Como calcular Drawdown automaticamente em MQL5” é o trader que já opera em contas reais ou demo, entende de gestão de risco e precisa de métricas instantâneas para validar estratégias.

  • Perfil compatível: programadores MQL5 de nível intermediário a avançado; gestores de carteiras que cobram performance; analistas quantitativos que cruzam dados de back‑test.
  • Quem deve evitar: iniciantes absolutos que ainda não dominam conceitos de equity, margem e cálculos de drawdown; traders que utilizam apenas indicadores visuais sem histórico de trade.
  • Limitações contextuais: funciona apenas em plataformas MetaTrader 5; não captura drawdown em contas multi‑moeda sem ajustes de conversão; depende de dados de histórico completo – contas com gaps de preço ou dados corrompidos geram resultados distorcidos.

Checklist rápido antes de instalar

ItemCondição
Versão do MT5>= 5.0
Histórico completoSem lacunas de >1 dia
Conhecimento de MQL5Variáveis, loops, estruturas de dados
Objetivo claroMonitorar drawdown máximo, médio e relativo

FAQ contextual

  • Posso usar o script em contas de teste de estratégia? Sim, mas apenas após validar que o período de teste engloba a volatilidade típica do mercado alvo.
  • Ele calcula drawdown por período (dia, semana) ou só global? O código inclui parâmetros configuráveis; porém, a interface padrão exibe apenas o drawdown máximo histórico.
  • O que acontece se houver spikes de preço não registrados? O cálculo ignora falhas de dados, gerando valores inferiores ao real – insira manualmente os gaps ou use um feed de dados limpo.
  • É possível integrar com alertas por e‑mail? O script possui hook para funções de notificação, mas requer ajuste de credenciais SMTP.

Mini cenários reais

Um trader de EUR/USD que usa um EA de breakout vê seu capital despencar 12 % em duas horas. O script disparou o cálculo de drawdown em tempo real, permitindo fechar a posição antes que o prejuízo atingisse 20 % – o limite predefinido.

Já um gestor de fundos de commodities, operando em 5 pares simultâneos, percebeu que o drawdown máximo consolidado permanecia abaixo de 5 % graças ao ajuste de alavancagem sugerido pelos relatórios gerados pelo script.

Considerações finais e decisão editorial

O utilitário não é um “plug‑and‑play” para novatos, mas entrega valor concreto para quem tem disciplina de risco e necessidade de métricas precisas. A expectativa realista é reduzir a surpresa de perdas extremas em até 30 % quando usado em conjunto com limites de stop‑loss bem definidos. Limitações de dados e dependência do MT5 são barreiras que exigem atenção prévia.

Para quem se enquadra nos requisitos acima, o investimento de tempo compensa. Caso contrário, é mais prudente buscar soluções mais simples ou cursos de MQL5 antes de implementar.

Acesse a página oficial

Deixe uma resposta

Related Post