Specification
Consulta a programador experiente em B3 — divergência entre ambiente de teste e execução real
Estou procurando a opinião de um programador com experiência específica em MT5, execução na B3 e mercado de futuros brasileiro, porque estou investigando uma questão de comportamento de um Expert Advisor.
Tenho um EA desenvolvido para operar mini índice, e nos testes realizados no Strategy Tester do MT5 e também em conta demo, o robô apresenta um comportamento aparentemente correto e consistente com a lógica programada.
Entretanto, quando o mesmo EA é colocado para operar em ambiente real na B3, surgiram algumas divergências importantes que não aparecem da mesma forma nos testes.
Não estou tentando simplesmente identificar "um erro no código". O que quero entender é:
Por que um EA pode se comportar corretamente no Strategy Tester e na conta demo, mas apresentar diferenças de execução quando colocado para operar efetivamente na B3?
Entre os comportamentos observados estão diferenças relacionadas a:
- Abertura e fechamento das ordens;
- Quantidade de posições abertas;
- Respeito aos níveis/distâncias programados;
- Execução do Stop Loss;
- Momento efetivo de encerramento das posições;
- Situações em que o resultado financeiro ou o preço de execução não corresponde exatamente ao que seria esperado pela lógica do EA;
- Comportamento de ordens simultâneas;
- E possíveis diferenças entre o que o EA "entende" que está acontecendo e o que efetivamente ocorreu na conta da corretora.
O EA utiliza uma lógica de grade/progressão, portanto a precisão do controle de posições, preços de abertura, quantidade de ordens e identificação do ciclo é particularmente importante.
O que eu gostaria de investigar
Minha principal dúvida é se essas divergências podem estar relacionadas a características específicas da execução real da B3, como:
- Diferença entre preço solicitado e preço efetivamente executado;
- Latência;
- Execução parcial;
- Fila de execução;
- Atualização de posições e ordens;
- Eventos recebidos pelo MT5;
- Diferenças entre Order, Deal e Position;
- Sincronização entre o terminal e a corretora;
- Tratamento de ordens simultâneas;
- Diferenças entre ambiente de demonstração e ambiente real;
- Ou alguma particularidade do contrato futuro/mini índice da B3 que precise ser considerada no desenvolvimento do EA.
Também gostaria de entender se existe alguma diferença estrutural entre o Strategy Tester, a conta demo e a conta real, especialmente no que diz respeito à sequência dos eventos e à confirmação das execuções.
O ponto principal
O fato de o EA apresentar comportamento correto nos testes não deveria, por si só, garantir que ele terá comportamento idêntico na execução real, e é justamente essa diferença que quero compreender tecnicamente.
Minha intenção não é fazer uma alteração no código baseada em tentativa e erro.
Quero primeiro identificar a causa da discrepância entre os ambientes e, somente depois, determinar se é necessário algum ajuste na programação para tornar o EA mais robusto para a execução real na B3.
Se você é um programador experiente e já trabalhou com EAs de MT5 operando WIN/WDO na B3 em ambiente real, gostaria principalmente da sua avaliação sobre quais pontos do código e da arquitetura de execução deveriam ser auditados para explicar esse tipo de divergência.
O objetivo é chegar à causa técnica, e não simplesmente criar um novo "remendo" no EA.
Se possível, descreva o que pode estar acontecendo para eu analisar e, de repente, contratar para uma auditoria aprofundada sobre esse comportamento do EA e fazer os ajustes necessários para que o EA execute o setup de forma correta no ambiente da b3 Brasil.