Com o que substituir a OnTradeTransaction() em mql4? - página 2

 
Ihor Herasko:

E a disponibilidade de luz e internet? Sem mencionar a habitual perda de pacotes de rede. Cool MetaQuotes se tornaram - todos eles garantem tudo! ))

Igor, a solução para tudo isso é simples ou muito simples. Se houver falhas de energia freqüentes, alugue um VPS. Se tais problemas também ocorrerem no VPS, mude o prestador de serviços. O mesmo se aplica à perda da Internet por parte do usuário. Só é possível adicionar uma opção para mudar de provedor de Internet. Se o problema ocorrer ao lado de DC... você sabe como e para onde enviá-los...
 
Ihor Herasko:

E a disponibilidade de luz e internet? Sem mencionar a habitual perda de pacotes de rede. Cool MetaQuotes se tornaram - todos eles garantem tudo! ))

Talvez você também não tenha um computador?

 
Alexey Viktorov:
Igor, a solução para tudo isso é simples ou muito simples. Se houver falhas de energia freqüentes, alugue um VPS. Se tais problemas acontecerem no VPS também, mude o prestador de serviços. O mesmo se aplica à perda da Internet por parte do usuário. Só é possível adicionar uma opção para mudar de provedor de Internet. Se o problema ocorrer ao lado de DC... você sabe como e para onde enviá-los...

E dizer tudo isso aos usuários comuns que trabalham com especialistas? Os usuários não devem se importar com tais coisas, caso contrário, tal software não vale nada.

 
prostotrader:

Talvez você também não tenha um computador?

Sim, na internet eu sou telepático ))

 
Ihor Herasko:

Sim, na internet eu sou telepático ))

Entendo, mas então não faça declarações vagas que possam induzir em erro.

os membros deste fórum estão confusos.

 
prostotrader:

Entendo, mas então não faça declarações vagas que possam induzir em erro.

participantes do fórum em confusão.

Esta afirmação é falsa

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Como substituir a OnTradeTransaction() em mql4?

prostotrader, 2020.01.26 14:59

Você está sem esperança!

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


Confiar na ausência de um cabide no VPS quando a negociação é um risco financeiro adicional.

 
prostotrader:

Entendo, mas então não faça declarações vagas que possam induzir em erro.

os membros deste fórum estão confusos.

Não há equívocos. Se você estiver desenvolvendo software, a primeira coisa exigida dele é uma operação correta e confiável. Se seu Expert Advisor só usa a OnTrade e a OnTradeTransaction para apoiar suas posições e pedidos, a menor falha no recebimento de informações deles distorcerá o quadro geral (não sabemos ao certo se um pacote é perdido do servidor ou não). A única maneira mais ou menos confiável de coletar estas informações é através da lista de posições/ordens. Mesmo que isso aconteça, a perda de pacotes pode não ser permanente. Eventualmente (após duas ou três consultas), os dados serão recuperados e o quadro geral entrará em total concordância com a realidade.

Dito isto, não estou alegando que o uso da OnTrade() e OnTradeTransaction() seja inútil. Eles podem ser usados como um canal alternativo para a obtenção de dados. Se as informações vieram por este canal, não precisamos verificar muito as listas.

 

Estou escrevendo código portátil. MT4/MT5 - graças ao MT4Orders.mqh do Sr. fxsaber. E o testador/luta - graças à compilação condicional.

Para o Testador de Estratégia, uso a OnTradeTransaction e o armazenamento do estado do ambiente em variáveis, o que acelera muito a otimização. Para uma sondagem real - servidor, a velocidade não importa aqui.

 
Edgar Akhmadeev:

Uso a OnTradeTransaction e o armazenamento do estado do ambiente em variáveis para o testador, o que acelera a otimização.

Eu ficaria grato se você pudesse dar algum exemplo reproduzível (sem interrogar o histórico comercial).

 

Se precisarmos de uma solução rápida, então eu colocaria todos os bilhetes paraCArrayInt e compararia os bilhetes dos pedidos abertos com CArrayInt; o método Search() está lá; se não houver bilhete, paramos de comparar CArrayIntcom balcões de pedidos abertos, reinicializar CArrayInt e escrever todos os bilhetes em CArrayInt novamente e definir globalmente a bandeira MyOnTradeTransaction - o sinal de que a lista de pedidos mudou - o código será bastante compacto

Razão: