![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Victor, você, Renat, em geral, apontou corretamente, Alexey mostrou a última verificação necessária, e mais cedo verificou todas as verificações necessárias para cada parâmetro com todas as nuances para evitar ambiguidade de significado e sem perder nenhuma condição!
Para que serve? Porque eu reinicializo _LastError em todas as funções. Não é como se estivesse constantemente pendurado na memória...
ainda precisa verificar se nenhum dos 3 parâmetros mudou, então a OrderModify também não precisa ser tocada.
Eu ouço você. Isso não ajudou. Aqui está um pedaço de código do meu método de modificação:
Podemos ver claramente que o valor do erro é redefinido.Depois recebe as informações do mercado. Se a modificação estiver no testador... então... ...então eu faço o teste proposto por Alexei, e... se a modificação não for bem sucedida... escrever um tronco e imprimi-lo no tronco.
Em geral, podemos ver que não há erros entre ResetLastError()... Não há nada de errado aí.
Diário de bordo:
Eu ouço você. Isso não ajudou. Aqui está um pedaço de código do meu método de modificação:
Você pode ver claramente que o valor do erro está sendo redefinido.Depois recebe as informações do mercado. Se a modificação estiver no testador... então... Eu faço o teste proposto por Alexei, e... se a modificação não for bem sucedida, então... escrever um tronco e imprimi-lo no tronco.
Em geral, podemos ver que não há erros entre ResetLastError()... Não há nada de errado aí.
Diário de bordo:
É assim que as coisas são...
No Expert Advisor, eu chamo assim o método de classe:
Aqui está a parte da classe em que estamos interessados:
Aqui está a peça de madeira que queremos:
Deixe-me explicar. A modificação ocorre no método fOrderModify(). Na entrada deste método fOrderModify(), os valores atuais dos parâmetros do pedido e os novos valores planejados são impressos no início do corpo. Você pode vê-lo:
Esta peça está no tronco:
Você pode ver que os parâmetros são todos diferentes. Não deve haver problemas.É assim que as coisas são...
No Expert Advisor, eu chamo assim o método de classe:
Aqui está a parte da classe em que estamos interessados:
Aqui está a peça de madeira que queremos:
Não entendo o que a Licitação tem a ver com a Licitação, se a ordem está pendente?
A Licitação é sempre inferior ao SellLimit, portanto a linha if(New_OOP < Bid) nunca será verdadeira... ...respectivamente, a modificação é implementada sem impedimentos.
Por que você não cria também uma matriz de erros? Está escrito em preto e branco na documentação que a variável _LastError armazena o número do último erro. E é reinicializada pela função ResetLastError(). Se não houver mais erros entre chamadas de _LastError, _LastError armazena o valor do último erro. Não houve mais erros em meu código. Bem, não é essa a questão.
Você está absolutamente errado. O último erro é bem reinicializado em muitas funções importantes. Funciona assim também no WinAPI.
É por isso que você deve salvar o código de erro em uma variável local logo após sua ocorrência e não tentar usá-lo após limpar esta variável do sistema dez vezes em muitas de suas funções intermediárias.
Desculpe, o SellLimit requer dist:
não se (New_OOP < Bid) continuar; masse (New_OOP-dist*Point < Bid) continuar;
Como posso me livrar deste maldito erro? Estou farto disso. Estou verificando cada parâmetro de entrada da função. Para mim, no momento, é assim:
Ou seja, se o parâmetro não tiver sido alterado, não há necessidade de alterá-lo. Nunca tinha feito isso antes, mas decidi...
Em seguida, os parâmetros são passados para o método de modificação de pedidos como este:
Nw saída no registro:
Então, a revista nos notifica, como modificação: OK, mas depois... um erro. Nenhum dos parâmetros foi alterado.
O pedido está pendente. Portanto, podemos mudar aberto, parar e tomar preço. E isto, pelo que entendi, não contradizia a documentação.
Quem já encontrou algo assim? Como resolvê-lo?