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
Infelizmente, somente através de uma muleta - uma variável global do terminal.
E através de muletas adicionais para garantir que a variável principal seja apagada em caso de queda, por exemplo.
Portanto, minha variante com espera por uma transação na história é mais confiável e mais simples. Mas ainda é uma muleta.
Eu não verifiquei, mas talvez depois de encomendar TODOS os EAs receba o evento correspondente paraa OnTradeTransaction.
Então tudo é resolvido sem muletas e para múltiplos EAs no mesmo símbolo.
Você quer que eu o ajude a contornar estes contratempos (a partir de experiência pessoal de negociação com robôs MT5 em uma conta real)?
Adicionado
Totalmente livre :)
As pessoas não querem pensar por si mesmas, querem que outros o façam por elas. Infelizmente, isto é verdade.
As pessoas não apenas pensam, mas também compartilham suas soluções. Infelizmente, os desenvolvedores estão em silêncio sobre isso.
Não há um único exemplo na Documentação sobre este tópico. E isso é com a função principal.
Eu apoio. Se fosse escrito em algum lugar que OrderSend() espera por uma resposta do servidor e o que acontece em seguida, não haveria necessidade de se encontrar soluções para verificar.
Há um excelente artigo sobre pedidos, acordos e posições e trabalhando com eles e seu cache que detalha tudo. No entanto, ela evita completamente os processos que ocorrem quando os pedidos são enviados por conta própria.
Minha sugestão
Use-o.
E o que acontece se o evento OnTrade() for acionado antes que o processamento OnTick() seja finalizado. Às vezes o tempo é essencial. A espera até que o evento OnTrade() ocorra pode ser problemática. Além disso, a própria função OrderSend() foi projetada para que eu possa obter informações sobre seus resultados diretamente no local. Ou não é?
OrderSend() é uma função absolutamente sincronizada - se um bilhete é recebido, tudo é executado.
Abaixo está um exemplo
Adicionados, e aqui estão os logs
https://www.mql5.com/ru/forum/38456/page85#comment_2888263
Não executado, mas enviado para o servidor MT5.
Não. Para a Bolsa - foi para a Bolsa (pode não ter sido cumprida :) ), para FOREX não sei
Adicionado
Ie (para a troca), se você receber um bilhete na função OrderSend((), isso significa que a ordem é aceita pela troca
Adicionado
Ver foto (houve mudanças em 1375)
Este é um caso especial de envio de uma ordem de limite para uma troca. E quanto a uma ordem de mercado em forex?
Nem uma única vez nesta linha. Somente sobre MT5 e OrderSend synchronicity.
Portanto, a resposta não se encaixa.
Não. Para Exchange - foi para Exchange (talvez não cumprido :) ), para FOREX eu não sei
Adicionado
Ie (para a troca), se você receber um bilhete nafunção OrderSend((), isso significa que a ordem é aceita pela troca
Adicionado
Veja foto (houve mudanças em 1375)