Com o que substituir a OnTradeTransaction() em mql4?

 

Na verdade, esta é a minha pergunta. Estou usando o MT5 há muito tempo, mas tenho que usar o MT4 por alguma razão. Mas o mql4 não tem nenhuma OnTrade() e OnTradeTransaction() o que é muito triste.

Portanto, tenho que resolver o problema com um pequeno custo (em termos de recursos).

Até agora, eu não pensei em nada melhor do que passar pelas ordens abertas e comparar o estado atual com o anterior.

Talvez haja soluções mais razoáveis.

 
Esta é exatamente a solução mais razoável. E é o mais razoável também para a MT5, porque não se pode confiar somente na OnTrade() e OnTradeTransaction(). Eles não são garantidos.
 
Aleksandr Volotko:

Na verdade, esta é a minha pergunta. Estou usando o MT5 há muito tempo, mas tenho que usar o MT4 por alguma razão. Mas o mql4 não tem nenhuma OnTrade() e OnTradeTransaction() o que é muito triste.

Portanto, tenho que resolver o problema com um pequeno custo (em termos de recursos).

Até agora, eu não pensei em nada melhor do que passar pelas ordens abertas e comparar o estado atual com o anterior.

Talvez haja soluções mais razoáveis.

Não é a variante mais fácil, para se familiarizar com os artigos de Artem Trishkin. E já são 31 no total ou 32. Eu verifiquei e me comuniquei com ele sobre isso. Todos os eventos são pegos "com um estrondo".

Naturalmente, se você não tentar entrar na essência do conteúdo de seus códigos, deve ser mais fácil.


ps; Oh... acabou de voltar deste tópico e o tópico de discussão na 32ª parte do artigo chamou minha atenção imediatamente. O artigo em si está aqui.

Обсуждение статьи "Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXII): Отложенные торговые запросы - установка ордеров по условиям"
Обсуждение статьи "Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXII): Отложенные торговые запросы - установка ордеров по условиям"
  • 2020.01.24
  • www.mql5.com
Опубликована статья Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXII): Отложенные торговые запросы - установка орде...
 

Igor está certo, é difícil encontrar algo mais inteligente e simples ao mesmo tempo, porque qualquer outra solução será baseada na mesma chamada para OrderTotal() com ordens de filtragem de acordo com o gosto e processamento posterior da data.

Por enquanto vou parar por aí, isso servirá para o meu problema.

 
Ihor Herasko:
Esta é exatamente a solução mais razoável. E é o mais razoável também para a MT5, porque não se pode confiar somente na OnTrade() e OnTradeTransaction(). Elas não são garantidas.

Deve ter sido há muito tempo que você não se interessou por ela. A noção de que uma transação pode ser perdida foi retirada da documentação há muito tempo. Portanto, para mql5 não há nada melhor que a OnTradeTransaction(). Verifiquei a velocidade de obtenção do evento de ativação do pedido pendente na OnTradeTransaction() e através da biblioteca da Artem. A OnTradeTransaction() é mais rápida. Eu não o medi. Tenho que fazer mais medições para fazer uma estimativa justa, mas não queria gastar tempo com isso.

 
Para ser justo, nunca tive nenhum problema com a OnTradeTransaction() no MT5, tudo foi sempre tranquilo. Sem perdas.
 
Alexey Viktorov:

Provavelmente, você não se preocupa com isso há muito tempo. Eles removeram a advertência de que a transação pode se perder da documentação há muito tempo. Portanto, não há nada melhor do que OnTradeTransaction() para mql5. Verifiquei a velocidade de obtenção do evento de ativação do pedido pendente na OnTradeTransaction() e através da biblioteca da Artem. A OnTradeTransaction() é mais rápida. Eu não o medi. Tenho que fazer mais medições para fazer uma estimativa justa, mas fui ganancioso demais para gastar tempo com isso.

É natural - eu tenho a freqüência definida de varredura do ambiente. Portanto, o fato do evento em si no terminal e o fato da mudança do ambiente se sucedem. Mas o fato da mudança do meio ambiente é capturado, não a chegada do evento. Isto tem seus méritos. Mas você os nega de qualquer forma ;) Portanto, não há sentido em debater.
 
Artyom Trishkin:
É natural - eu tenho uma freqüência definida para escanear o ambiente. Portanto, o fato do evento em si no terminal e o fato da mudança do ambiente se sucedem. Mas no meu caso é o fato da mudança ambiental que é capturada, não a chegada do evento. Isto tem seus méritos. Mas você os nega de qualquer forma ;) Portanto, não há sentido em debater.

Quais são os pontos fortes da minha negação? Eu tenho apenas uma negação. Quero entender como as coisas funcionam, e se só é possível entender coisas que não são da minha mente, então não me sinto confortável em usá-las, e qualquer coisa com a qual não me sinta confortável, eu nego. Eu já lhe disse que você escreve mais cartas do que eu consigo ler para o resto da minha vida. Não descarregue em mim...

 
Ihor Herasko:
Esta é exatamente a solução mais razoável. E é a mais inteligente também para a MT5, porque não se pode confiar somente na OnTrade() e OnTradeTransaction(). Eles não são garantidos.

Vocês estão desesperadamente atrasados!

Há muito tempo estes eventos estão garantidos!

 
Falha de comunicação durante (após) a execução da OrderSend (-Async) - perda da OnTrade*.
 
prostotrader:

Vocês estão desesperadamente atrasados!

Estes eventos têm sido garantidos há muito tempo!

E a disponibilidade de luzes e internet? Sem mencionar a habitual perda de pacotes de rede. Quão legais as MetaQuotes se tornaram - elas garantem tudo! ))

Razão: