← Todos os artigos

Gestão de risco no robô de Forex: lote, stop e limite diário

Por Jackson Jordão · 6 de outubro de 2026 · 6 min

Gestão de risco no robô de Forex é um conjunto de três regras programadas no código: o lote calculado pelo risco por operação, o stop loss sempre definido e um limite de perda diária que desliga o robô. Sem isso, o robô opera com o mesmo lote em qualquer situação, e uma sequência ruim de operações pode consumir a conta antes de você perceber.

A regra mais importante é calcular o lote a partir da distância do stop e de um percentual fixo do saldo, usando os dados do próprio ativo que a plataforma informa. Lote fixo no código é o erro mais comum, e é ele que faz o mesmo robô arriscar 0,5% num par e 3% em outro.

Risco por operação: o que significa

Risco por operação é o valor que você aceita perder se o stop for atingido, definido como percentual do saldo ou do patrimônio. Quem arrisca 1% de uma conta de 10.000 aceita perder 100 naquela operação. O percentual é uma decisão sua, e o robô só precisa obedecê-la.

Esse valor não depende do lote isoladamente. Ele depende do lote, da distância do stop e do valor de cada ponto do ativo. Por isso o lote precisa ser calculado a cada operação, e não digitado uma vez nos parâmetros.

Como calcular o lote pelo risco no MT5

O cálculo segue uma sequência simples. O robô precisa de quatro informações: o saldo, o percentual de risco, a distância do stop e o valor do tick do ativo.

  1. Valor em risco: saldo multiplicado pelo percentual de risco. A função AccountInfoDouble com ACCOUNT_BALANCE (ou ACCOUNT_EQUITY) entrega o saldo.
  2. Distância do stop em ticks: a diferença entre o preço de entrada e o stop, dividida pelo tamanho do tick (SYMBOL_TRADE_TICK_SIZE, lida com SymbolInfoDouble).
  3. Perda por lote: distância em ticks multiplicada pelo valor do tick (SYMBOL_TRADE_TICK_VALUE) na moeda da conta.
  4. Lote bruto: valor em risco dividido pela perda por lote.

Falta o último passo, que muita gente esquece: ajustar o lote às regras do ativo. O lote bruto quase nunca é um número válido. O robô deve arredondar para baixo, de acordo com o passo de volume (SYMBOL_VOLUME_STEP), e respeitar o mínimo (SYMBOL_VOLUME_MIN) e o máximo (SYMBOL_VOLUME_MAX). Arredondar para baixo evita arriscar mais do que o definido.

Dica: Se o lote mínimo do ativo já arrisca mais do que o percentual escolhido, o robô deve recusar a operação em vez de abrir com o lote mínimo mesmo assim. Esse comportamento precisa estar nas regras combinadas.

Alguns ativos têm valor do tick que varia, como pares em que a moeda de cotação é diferente da moeda da conta. Ler o valor do tick na hora do cálculo, e não guardá-lo em constante, resolve isso. A função OrderCalcProfit também pode ser usada para simular o resultado de uma operação hipotética no stop, o que dá uma conferência independente do cálculo.

Stop loss: sempre definido e validado

O risco por operação só existe de verdade se o stop existe. O robô deve enviar o stop junto com a ordem, e não depender de uma segunda ordem enviada depois. Se a conexão cair entre as duas, a posição fica sem proteção.

O stop pode ser fixo em pontos, baseado em ATR ou ligado a uma estrutura do gráfico, como a última mínima. O método muda a distância, mas o cálculo do lote continua o mesmo. Quanto mais longe o stop, menor o lote para o mesmo risco.

O robô também precisa respeitar a distância mínima que a corretora aceita entre o preço e o stop (SYMBOL_TRADE_STOPS_LEVEL). Ordens com stop perto demais são rejeitadas, e um robô que não trata a rejeição pode ficar sem operar ou, pior, sem stop. A função OrderCheck valida a ordem antes do envio.

Limite de perda diária

O limite diário é um disjuntor. Quando a perda do dia atinge o valor definido, o robô fecha o que estiver aberto, se você quiser, e para de abrir novas operações até o dia seguinte. Ele protege contra dias em que a estratégia está descompassada com o mercado.

A conta do dia precisa somar duas partes: o resultado das operações já fechadas e o resultado flutuante das posições abertas. Veja como o robô monta isso:

  • Resultado fechado: o robô chama HistorySelect do início do dia até o momento atual e soma o lucro, a comissão e o swap das negociações de saída.
  • Resultado aberto: percorre as posições abertas com PositionsTotal e soma o lucro de cada uma.
  • Comparação: se a soma for menor ou igual ao limite negativo (em valor ou em percentual do saldo inicial do dia), o robô aciona o bloqueio.

O início do dia deve seguir o horário do servidor da corretora, que costuma ser diferente do horário de Brasília. Esse detalhe causa limites que "resetam" no meio da tarde e confundem o usuário. Deixe claro no robô qual referência de horário ele usa.

Dica: O bloqueio precisa sobreviver a um reinício do MetaTrader. Se o robô guarda o estado só na memória, ao reiniciar ele volta a operar como se o dia estivesse zerado. Grave o estado em variável global do terminal (GlobalVariableSet) ou recalcule tudo pelo histórico a cada início.

Outros limites que valem a pena

  • Número máximo de operações por dia, para impedir que um erro de lógica abra ordens em sequência.
  • Limite de posições abertas ao mesmo tempo no mesmo ativo ou na conta inteira.
  • Spread máximo para entrar: se o spread está anormal, o robô não abre a ordem.
  • Parada após uma sequência de perdas, com retomada manual ou no dia seguinte.
  • Filtro de margem livre, para não abrir uma operação que deixe a conta perto da chamada de margem.

O que a gestão de risco não faz

Gestão de risco limita o tamanho da perda, mas não torna uma estratégia lucrativa. Um robô com boa gestão e uma estratégia ruim perde devagar. Também não elimina o risco de gap, de derrapagem (slippage) em notícias ou de execução acima do stop em momentos de baixa liquidez. Operar no mercado financeiro envolve risco de perda de capital, e nenhum robô garante resultado.

Por isso, depois de programar, é preciso testar. O testador de estratégias do MT5 mostra se o lote está sendo calculado como esperado e se o limite diário dispara no dia certo. O teste em conta demo e em conta cent confirma o comportamento com a execução real.

Resumo

  • Calcule o lote a cada operação, a partir do risco em porcentagem e da distância do stop.
  • Leia o valor do tick, o passo e os limites de volume do ativo na plataforma, sem valores fixos no código.
  • Arredonde o lote para baixo e recuse a operação se o lote mínimo arriscar mais do que o definido.
  • Envie o stop junto com a ordem e valide a distância mínima aceita pela corretora.
  • Programe o limite diário somando o resultado fechado e o flutuante, com o estado preservado após reinícios.

Quer a gestão de risco no seu robô de Forex?

Na MQLExpert, a gestão de risco entra no robô desde o primeiro desenho da estratégia, com lote por risco, limite diário e filtros configuráveis nos parâmetros.

  1. Descreva a sua estratégia e as regras de risco que você quer pelo Termo de Referência ou pelo WhatsApp.
  2. Fazemos a análise e confirmamos o que é viável no MetaTrader 5, incluindo o comportamento no seu ativo.
  3. Entregamos o robô testado em conta demo e com o código-fonte.

Orçamento pelo WhatsApp: (84) 99652-3661

Leia também