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
// 08.02.2017:
// Adicionar: Variáveis MT4ORDERS::LastTradeRequest e MT4ORDERS::LastTradeResult содержат соответствующие данные MT5-OrderSend.
Agora é possível obter todos os dados do MT5-OrderSend na íntegra.
Os próprios códigos do MT5 estão aqui. Compare com os códigos do MT4.
Observe que, no MT5, GetLastError() não retorna erros de negociação. Portanto, se quiser fazer como no MT4, você precisará gerar seu próprio erro correspondente por meio de SetUserError. Mas, mesmo assim, o ERR_USER_ERROR_FIRST não lhe dará a versão do MT4.
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Bibliotecas: MT4Orders
fxsaber, 2022.07.20 00:39
Exemplo.
Resultado.
Peculiaridade da apresentação de posições fechadas pela biblioteca em comparação com o MT5.
Situação de negociação.
O MT5 mostrará que houve uma posição que abriu às 12:00 e fechou às 15:00. Os preços de abertura/fechamento dessa posição podem ser muito estranhos.
O MT4Orders mostrará que havia duas posições: uma que abriu às 12:00 e fechou às 13:00, e outra que abriu às 14:00-15:00. Os preços de abertura/fechamento serão adequados.
Parte do MT5-Market é escrita por meio dessa biblioteca. O principal motivo é a facilidade de uso.
Sim, é uma conquista. Entretanto, a verificação de erros na aceitação do mercado não recria todas as situações.
Sobre o tópico de erros.
Os próprios códigos do MT5 estão aqui. Compare com os códigos do MT4.
Observe que, no MT5, GetLastError() não retorna erros de negociação. Portanto, se quiser fazer como no MT4, você precisará gerar seu próprio erro correspondente por meio de SetUserError. Mas, mesmo assim, o ERR_USER_ERROR_FIRST não lhe dará a versão do MT4.
Obrigado pelas informações, mas não sou muito bom nisso.
Entendi corretamente que é suficiente substituir
para
e já processar os novos códigos de erro?
A propósito, não encontrei análogos de erros para o MT5, no MT4 eles são: 135, 145, 146 - existe algum?
Sim, é uma conquista. No entanto, a verificação de erros de admissão de marquise não recria todas as situações.
Infelizmente, tenho apenas ideias teóricas sobre o mercado. Não tenho prática de passar pelas verificações.
Entendi corretamente que é suficiente substituir e já processar novos códigos de erro?
Correto. Somente retcode. O análogo de ResetLastError é o mesmo esquema - atribuição de zero.
A propósito, não encontrei análogos de erros para o MT5, no MT4 eles são: 135, 145, 146 - existe algum?
Não conheço os tipos de erros, pois não os utilizo em Expert Advisors de combate. Provavelmente, você deve tentar reproduzir cada erro no MT4 e, em seguida, ter uma ideia clara da natureza deles e compará-los com erros semelhantes no MT5. Talvez já existam tabelas de correspondência em algum lugar. Não é fato que todos os códigos tenham homônimos em outra plataforma.
É isso mesmo. Apenas retcode. Um análogo de ResetLastError no mesmo esquema - atribuição de zero.
Então, a redefinição de erros pode ser integrada à sua classe de alguma forma? Porque a quarta classe não precisava disso de alguma forma.
Ou basta chamar as informações sobre o último erro e, em seguida, redefini-lo imediatamente, ou seja, trocar as funções que você tem em seu exemplo?
Não conheço os tipos de erros, pois não os utilizo em Expert Advisors de combate. Provavelmente, você deve tentar reproduzir cada erro no MT4 e, em seguida, ter uma ideia clara da natureza deles e compará-los com os semelhantes no MT5. Talvez já existam tabelas de correspondência em algum lugar. Não é fato que todos os códigos tenham seus homônimos em outra plataforma.
Eu estava procurando por essa tabela e não a encontrei. Os erros nem sempre estão no código - há problemas por parte da central de corretagem.
Entendi que se o problema for de qualquer tipo com o trabalho com ordens, então GetLastError(); retorna o código 4756, o que não é ruim, se for o caso.
Então, a redefinição de erros pode ser integrada em sua aula? Quero dizer, quatro não pareciam precisar disso.
Ou basta chamar as informações sobre o último erro e, em seguida, redefini-lo de uma vez, ou seja, trocar as funções que você tem em seu exemplo?
Não vejo a necessidade de redefini-la. Eu disse para obter compatibilidade adicional com a forma como presumo que o MT4 funcione.
Não vejo a necessidade de reinicializar. Isso foi dito para aumentar a compatibilidade com a forma como presumo que o MT4 funcione.
Ainda preciso esclarecer: esses erros estão abaixo do código chamado?
Porque coisas semelhantes - o que é necessário eu não entendo - o mesmo código abaixo retorna erros da estrutura MqlTradeResult?
Ainda vou esclarecer: esses erros são o que chamamos de código abaixo?
Porque coisas semelhantes - o que é necessário eu não entendo - o mesmo código abaixo retorna erros da estrutura MqlTradeResult?
retcode - erro do MT5. retcode_external - um campo que pode ser preenchido opcionalmente pelo desenvolvedor de uma ponte de terceiros.
retcode - erro do MT5. retcode_external - um campo que pode ser preenchido opcionalmente pelo desenvolvedor de uma ponte de terceiros.
Entendi, obrigado. Acho que os padrões serão suficientes por enquanto.