Erros nos métodos de negociação.
Execuções, ordens pendentes e recusas da corretora. Confira o resultado antes de continuar.
Passo a passo por escrito
- 0:00
Erros nos métodos de negociação.
Este tutorial explica os resultados dos métodos de negociação do MT5: execução completa ou parcial, ordens pendentes, recusas da corretora e resultados ainda indefinidos.
- 0:16
Abra o guia do método de negociação.
Abra eme tê cinco ponto eme erre pê cê ponto pro. Selecione Order Send nos métodos de negociação e expanda o guia abaixo do exemplo de código. Cada método tem suas próprias regras.
- 0:35
1. Verifique o código de status HTTP.
Primeiro, verifique o código de status HTTP. O código de status HTTP duzentos significa que a API recebeu a solicitação e retornou uma resposta. Leia o corpo JSON em seguida. Para outro código, examine primeiro o erro HTTP e o corpo da resposta.
- 1:01
2. Verifique error e o código da corretora.
Se error não for null, leia o código e a mensagem. Verifique também mqlErrorTradeIntCode e a descrição, quando presentes. Uma recusa da corretora pode estar nessa estrutura. Escolha a próxima ação conforme o código recebido.
- 1:22
3. Leia o resultado da corretora.
Em uma solicitação de negociação, o código de status HTTP duzentos sem erro da API significa que a solicitação chegou à corretora. Isso ainda não confirma a execução. Leia returnedCode, returnedStringCode e os campos data específicos do método.
- 1:47
Ordem a mercado: completa ou parcial?
Para compra ou venda a mercado, dez mil e nove, Done, indica conclusão. Dez mil e dez, Done Partial, indica execução parcial. Confira o volume executado, o preço e o negócio. Consulte posições e histórico para entender o que aconteceu com o volume restante.
- 2:13
Ordem colocada não é ordem executada.
Em uma ordem a mercado, Placed significa aceita para execução, ainda não executada. Para uma ordem pendente, dez mil e oito ou dez mil e nove confirmam a colocação. Guarde data ponto order e confira os parâmetros em Opened Orders. Se ela já foi acionada, consulte o histórico.
- 2:39
Mercado fechado: recusa da corretora.
Uma recusa da corretora pode aparecer em data mesmo sem error. Dez mil e dezoito significa mercado fechado. Aguarde a sessão de negociação do símbolo. O resultado é definido pelo código, não apenas pela presença de data.
- 2:58
Corrija a causa específica.
Se faltarem recursos, reduza o volume ou garanta margem livre suficiente. Para stops inválidos, corrija preços e distâncias. Para volume inválido, confira o mínimo e o incremento permitido. Sem cotação, aguarde um preço disponível. O guia mostra a próxima ação de cada código.
- 3:24
Após um timeout, verifique o estado.
Após um timeout ou uma desconexão, o resultado pode ficar indefinido. Consulte ordens, posições e histórico antes de repetir, para evitar duplicações. O código da corretora pode aparecer em data returnedCode ou em error mqlErrorTradeIntCode.
- 3:47
Fechamento e alteração têm regras próprias.
Em Order Close, leia o resultado e confira as posições restantes. Um fechamento parcial mantém parte do volume aberto. Em Order Modify, Done indica alteração e No Changes significa que os valores já eram iguais. Não aplique as regras de Order Send a todos os métodos.
- 4:12
A verificação prévia não envia uma ordem.
Order Check é diferente de Order Send. Leia returnedCode e comment dentro de data mqlTradeCheckResult. Código zero com Done indica que a verificação prévia passou. Nenhuma ordem é enviada. Envie a solicitação de negociação separadamente e confira sua execução.
- 4:38
Três verificações para cada operação.
Verifique o código de status HTTP, error e o resultado da corretora específico do método. Guarde os identificadores necessários de ordem, negócio ou posição. Após timeout ou desconexão, confira o estado da conta antes de tentar novamente.