Antes era chamado de "zumbi", talvez uma busca ainda encontre fios antigos.
Isto acontece quando os especialistas/indicadores cancelam a inscrição na tumblr mais vezes do que assinam.
Por exemplo, havia 2 especialistas, cada um se inscreveu uma vez. Em seguida, um foi fechado e cancelado duas vezes. O segundo especialista que permaneceu empregado deixa de receber atualizações.
Eu já vi isso várias vezes.
Depois de ajustar os especialistas, o problema desapareceu e não se repetiu por mais de um ano.
Antes era chamado de "zumbi", talvez uma busca ainda encontre fios antigos.
Acontece quando os especialistas/indicadores cancelam a inscrição de um tumblr mais vezes do que se inscrevem.
Estritamente falando, não se encaixa. Eu tenho uma assinatura feita uma vez inite e uma anulação de assinatura feita em deinite. Embora eu não possa descartar a possibilidade de que o DeInit seja de alguma forma chamado mais vezes do que o OnInit.
Estritamente falando, não se encaixa. Eu tenho uma assinatura feita uma vez no Init e cancelo a inscrição no DeInit. Embora eu não possa descartar a possibilidade de que o DeInit seja de alguma forma chamado mais vezes do que o OnInit.
Se se trata de indicadores, verifique esta linha.
- 2017.04.07
- www.mql5.com
Sim, havia tal tópico, eu até participei dele, mas aparentemente o problema permanece. Mas no caso atual, um Consultor Especialista também perdeu sua assinatura.
OK, vamos fazer a dança do tamborim.
Depois que comecei a trabalhar com o secador e acrescentei alguns indicadores assinados à OnBookEvent, descobri que alguns deles caem silenciosamente, em particular, 1 especialista e 1 indicador em símbolos diferentes. Sem erros nos registros. As citações continuaram. Outros símbolos continuaram a funcionar. Após reiniciar manualmente os programas de MQL ociosos, os eventos da profundidade do mercado começaram a funcionar novamente.
Alguém observou algo semelhante? Como me proteger? Por enquanto, a idéia de observar o intervalo entre o último evento da taça e os novos carrapatos. Mas o que fazer se o timeout for ultrapassado? É suficiente chamar MarketBookAdd novamente?
Há dois tipos de interruptores,- um botão e um interruptor. O primeiro envia um pulso e encerra a operação, o segundo envolve uma mudança no modo de operação. Um exemplo do primeiro é uma campainha, que é o evento ideal. Um exemplo do segundo é um interruptor de luz - você o pressiona e ele se acende. Veja, isto não é realmente um evento, mas algo mais.
Os interruptores são de dois tipos, botões de pressão e interruptores. O primeiro envia um pulso e termina a operação, o segundo envolve uma mudança do modo de operação. Um exemplo do primeiro é a campainha da porta, que é o evento ideal. Um exemplo do segundo é um interruptor de luz - você o pressiona e ele se acende. Veja, não é realmente um evento, é algo mais.
Não, eu não tenho. A julgar pela documentação, a assinatura aumenta o contador interno, enquanto que a desinscrição diminui em 1. Uma vez atingido o valor 0 - nenhum evento é enviado.
Eu coloquei as impressões digitais. Reprodução conseguida do problema quando tanto a EA como o indicador se encontram no mesmo gráfico. Cada um deles faz MarketBookAdd no OnInit e MarketBookRelease no OnDeinit. Assim, depois de remover o Expert Advisor do gráfico (uma chamada do MarketBookRelease), o indicador deixa de receber a taça (embora, na idéia, sua própria chamada do MarketBookAdd ainda não tenha sido cancelada). Pelo contrário, se apagarmos o indicador, a assinatura é perdida no Expert Advisor. É claro, eu o detecto e subscrevo novamente, mas não deveria funcionar assim, imho.
Não, eu não tenho. De acordo com a documentação, a assinatura aumenta o contador interno e a desinserção diminui em 1. Quando chega a 0, nenhum evento é enviado.
Coloquei as impressoras no lugar. Conseguiu reproduzir o problema quando tanto a EA como o indicador estão no mesmo gráfico. Cada um deles faz MarketBookAdd no OnInit e MarketBookRelease no OnDeinit. Assim, depois de remover o Expert Advisor do gráfico (uma chamada do MarketBookRelease), o indicador deixa de receber o copo. Pelo contrário, se eu remover o indicador, sua assinatura é perdida no Expert Advisor. Claro, eu o detecto e subscrevo novamente, mas não deve funcionar dessa forma, imho.
Eu já disse tudo. Não direi uma palavra.
Não, eu não tenho. De acordo com a documentação, a assinatura aumenta o contador interno e a desinserção diminui em 1. Quando chega a 0, nenhum evento é enviado.
Coloquei as impressoras no lugar. Conseguiu reproduzir o problema quando tanto a EA como o indicador estão no mesmo gráfico. Cada um deles faz MarketBookAdd no OnInit e MarketBookRelease no OnDeinit. Assim, depois de remover o Expert Advisor do gráfico (uma chamada do MarketBookRelease), o indicador deixa de receber a taça (embora, na idéia, sua própria chamada do MarketBookAdd ainda não tenha sido cancelada). Pelo contrário, se apagarmos o indicador, a assinatura é perdida no Expert Advisor. É claro que já o detectei e subscrevo novamente, mas não deveria funcionar desta forma, imho.
O evento BookEvent é transmitido. Leia a descrição do OnBookEvent aqui cuidadosamente.
- www.mql5.com
Depois que comecei a trabalhar com o secador e acrescentei alguns indicadores assinados à OnBookEvent, descobri que alguns deles caem silenciosamente, em particular, 1 especialista e 1 indicador em símbolos diferentes. Sem erros nos registros. As citações continuaram. Outros símbolos continuaram a funcionar. Após reiniciar manualmente os programas de MQL ociosos, os eventos da profundidade do mercado começaram a funcionar novamente.
Alguém observou algo semelhante? Como me proteger? Por enquanto, a idéia de observar o intervalo entre o último evento da taça e os novos carrapatos. Mas o que fazer se o timeout for ultrapassado? É suficiente chamar MarketBookAdd novamente?
Leia isto
- 2016.09.06
- www.mql5.com
Obrigado ;-). É claro que eu li a documentação e o fórum. Se houver uma resposta à minha pergunta, seria muito gentil articulá-la ou destacá-la aqui.
Em particular, há uma frase fascinante na documentação:
В отличие от других событий, событие BookEvent является широковещательным. Это означает, что достаточно одному эксперту подписаться на получение события BookEvent с помощью функции MarketBookAdd, все остальные эксперты, имеющие обработчик OnBookEvent(), будут получать это событие.
Exceto que se deixa uma suposição para continuar ou não com a analogia de que "o suficiente para um especialista cancelar a inscrição de receber um evento, todos os outros especialistas também deixarão de recebê-lo"? Não creio que possa haver tal coisa, seria (ou é) um bicho.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Depois que comecei a trabalhar com o secador e acrescentei alguns indicadores assinados à OnBookEvent, descobri que alguns deles caem silenciosamente, em particular, 1 especialista e 1 indicador em símbolos diferentes. Sem erros nos registros. As citações continuaram. Outros símbolos continuaram a funcionar. Após reiniciar manualmente os programas de MQL ociosos, os eventos da profundidade do mercado começaram a funcionar novamente.
Alguém observou algo semelhante? Como me proteger? Por enquanto, a idéia de observar o intervalo entre o último evento da taça e os novos carrapatos. Mas o que fazer se o timeout for ultrapassado? É suficiente chamarMarketBookAdd novamente?