Guia de teste e otimização de consultores especializados em IA | Deriv Blog
Aperfeiçoe o seu consultor especializado em IA com técnicas de teste adequadas. O nosso guia aborda problemas comuns, métodos de teste e otimização de consultores especializados para bots de trading fiáveis.
Pela equipa Deriv · 21 April 2025 · 6 min de leitura

Os consultores especializados em trading com IA já estão aqui — mas ainda precisa de os testar e aperfeiçoar.
Se já usou ferramentas de IA como Claude ou ChatGPT para criar um consultor especializado para a Deriv MT5 ou um cBot para a Deriv cTrader, já está a começar muito bem. Mas, mesmo quando o código parece correto, pode continuar a conter erros que afetam o funcionamento do bot.
Antes de executar o seu consultor especializado (EA) num mercado real, é importante testá-lo e garantir que está a funcionar como espera.
Neste guia, vamos analisar erros comuns de programação em EAs gerados por IA, como corrigi-los e dicas práticas para melhorar o desempenho do seu bot.
Erros comuns de programação em MQL5 com IA
Estes são alguns dos problemas mais comuns encontrados em EAs gerados por IA, juntamente com formas de os corrigir:
- Erro de identificador não declarado em MQL5
Este erro aparece quando o bot usa uma variável ou nome que não foi definido corretamente, como a falta de um parâmetro ou a utilização de um nome incorreto em indicadores como iMA().
Correção:
Verifique os parâmetros do indicador e certifique-se de que todos os nomes das variáveis correspondem ao que é esperado no MetaEditor (a ferramenta de programação do MT5).
- Falta de funções de execução de ordens de compra/venda
Alguns bots gerados por IA omitem lógica essencial para abrir posições.
Correção:
Adicione manualmente funções básicas de execução de ordens. Segue-se um exemplo de uma estrutura básica para colocar uma ordem de compra:
void OpenBuy() {
MqlTradeRequest request; MqlTradeResult result;
request.action = TRADE_ACTION_DEAL;
request.type = ORDER_TYPE_BUY;
request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
request.volume = 0.1; request.magic = 12345;
OrderSend(request, result);
}
Certifique-se também de incluir lógica para ordens de venda e de definir as condições em que as ordens devem ser colocadas.
- Condições de loop incorretas na Deriv cTrader
Na Deriv cTrader, a lógica do bot precisa de ser executada dentro de funções específicas como OnBar() ou OnTick(). Estas são acionadas automaticamente quando o mercado se movimenta. Se o seu código estiver colocado fora destas secções, como no loop errado ou no escopo global, não será executado como esperado.
Correção:
Garanta que os bars e ticks são tratados dentro de OnBar() ou OnTick(). Isto permitirá que o seu bot responda corretamente a novos ticks ou bars durante o backtesting e o trading ao vivo.
- Cálculo incorreto do tamanho do lote com base na percentagem do saldo
Quando a IA tenta definir o tamanho do lote com base no saldo da sua conta (por exemplo, arriscando 2% por trade), pode omitir um detalhe importante — o tamanho do contrato. Isto pode levar a tamanhos de lote imprecisos. Isto não irá gerar um erro de código, mas, nos testes, irá ver tamanhos de trade que não correspondem às suas definições de risco, resultando em sobreexposição ou subexposição nas trades ao vivo.
Correção:
Use uma fórmula com um tamanho de lote que tenha em conta o tamanho do contrato, como:
//-----------------------------------------------------------------
double accountBalance = AccountInfoDouble(ACCOUNT_BALANCE);
double riskMoney = accountBalance * (RiskPercent / 100.0);
double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
double tickSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
double pointValue = tickValue / tickSize;
double contractSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE);
if(contractSize > 0)
pointValue = pointValue / contractSize;
double lotSize = riskMoney / (StopLossPoints * pointValue);
double minLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN);
double maxLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX);
double lotStep = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);
lotSize = MathMax(lotSize, minLot);
lotSize = MathMin(lotSize, maxLot);
lotSize = MathFloor(lotSize / lotStep) * lotStep;
- Outros erros
Se encontrar um destes erros — ou qualquer outro — pode sempre pedir ajuda ao seu modelo de IA para identificar e corrigir o problema.
Basta copiar a mensagem de erro e o código relevante e partilhá-los com o modelo de IA. Na maioria dos casos, ele deverá conseguir identificar o problema e apresentar uma correção ou sugerir possíveis soluções.
Dica: Faça sempre um backtest antes de passar para o ambiente real. Problemas como estes só aparecem quando testa a estratégia com dados reais do mercado.
Melhore o seu consultor especializado gerado por IA
Assim que o seu bot estiver a funcionar, pode fazer pequenas alterações para melhorar o seu desempenho e estabilidade. Aqui estão alguns truques comuns para o fazer:
- Adicione lógica de tratamento de erros para lidar com comportamentos inesperados durante períodos de elevada volatilidade ou problemas de ligação.
- Use um stop-loss móvel para fixar potenciais lucros quando o mercado se mover a seu favor.
- Faça backtest da sua estratégia com dados históricos para ver como teria performado.
- Limpe e organize o seu código para melhorar a legibilidade e a eficiência. Isto tornará mais fácil atualizar ou resolver problemas mais tarde.
Dica: Use o MetaEditor Debugger (no MT5) para testar como o seu bot funciona passo a passo.
Porque é que o backtesting de trades é fundamental
Os bots gerados por IA são uma excelente forma de automatizar o seu trading sem precisar de programar do zero. Mas, mesmo com IA, a sua estratégia ainda precisa de verificações e ajustes humanos para funcionar bem em condições reais.
Antes de passar para o ambiente real, dedique tempo a testar de forma exaustiva e a fazer pequenas melhorias. Mesmo correções menores podem fazer uma grande diferença na consistência e eficácia com que o seu EA performa.