Discussão do artigo "Guia prático do MQL5: Controles de sub-janela indicadora - botões" - página 5
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
Você concorda agora? )
Para ser honesto, não entendo por que o indicador deve parar de rastrear o movimento do mouse depois de desativar o Expert Advisor? Onde está a conexão entre o indicador e o Expert Advisor?
Esse é o ponto, pode não haver conexão entre eles, de modo que cada programa, ao descarregar, deve desativar o que outros programas podem não precisar. Nesse caso, se o indicador não precisa rastrear o evento de movimento do mouse, por que obstruir o fluxo da fila de eventos?
É claro que você não pode fazer isso, pois não é necessário. Mas se estivermos falando de otimização, acho que é necessário.
A questão é que pode não haver conexão entre eles, portanto, cada programa deve desativar o que os outros programas não precisam. Nesse caso, se o indicador não precisa rastrear o evento de movimento do mouse, por que obstruir o fluxo da fila de eventos?
É claro que você não pode fazer isso, pois não é necessário. Mas se estivermos falando de otimização, acho que é necessário.
Vasiliy está falando que o programa não deve ativar/desativar o rastreamento sem pensar, mas sim:
Ou seja, a desativação só deve ocorrer se o rastreamento estiver desativado quando o programa for iniciado.
Assim, qualquer combinação de programas de início/parada com/sem rastreamento de eventos do mouse funcionará corretamente.
A questão é que pode não haver conexão entre eles, portanto, cada programa deve desativar o que os outros programas não precisam. Nesse caso, se o indicador não precisa rastrear o evento de movimento do mouse, por que obstruir o fluxo da fila de eventos?
É claro que você não pode fazer isso, pois não é necessário. Mas se estivermos falando de otimização, acho que é necessário.
Vasily está fazendo uma boa observação: o programa não deve ativar/desativar o rastreamento sem pensar, mas sim:
Então, eu fiz da seguinte forma.
O programa, no qual o rastreamento é ativado na inicialização, desativa-o no descarregamento. E o programa que permanece no gráfico e precisa do rastreamento verifica se ele está ativado e, se estiver desativado, ele o ativa.
É aconselhável dar sua variante nos exemplos de Expert Advisor e código de indicador da minha postagem na página anterior para excluir a ambiguidade das declarações.
Ou seja, no seu exemplo, o Expert Advisor decidiu que o indicador não precisa mais receber o evento EVENT_MOVE_MOUSE e o desativou antes de sair. Com base em que o Expert Advisor decide o que os outros indicadores precisam e o que não precisam? Ele não está se responsabilizando demais?
O especialista decide por si mesmo. Mas, na verdade, gosto mais de sua variante. Ou seja, ela é mais correta. Eu não escrevi sobre como fazer isso melhor, mas sobre a necessidade disso. Você não precisa inverter. Ponto final.
O especialista decide por si mesmo. Mas, na verdade, gosto mais de sua opção. Eu não estava falando sobre a melhor maneira de fazer isso, estava falando sobre a necessidade disso. Você não precisa inverter. Ponto final.
Ou seja, no seu exemplo, o Expert Advisor decidiu que o indicador não precisa mais receber o evento EVENT_MOVE_MOUSE e o desativou antes de sair. Com base em que o Expert Advisor decide o que os outros indicadores precisam e o que não precisam? Ele não se sobrecarrega demais?
Provavelmente, supõe-se que todos os outros programas estejam organizados de acordo com o mesmo princípio e que eles mesmos o ativarão, se necessário.
Mas será que é tão importante desligar? Essa chave liga/desliga só se aplica a um gráfico. Acredito que não será um grande problema se você apenas o ligar e não o desligar.
Poucas pessoas se incomodariam com isso. Portanto, para evitar problemas, ligue-o apenas, mas não o desligue. Mas, novamente, alguém o desligará. Portanto, você pode monitorá-lo com um timer e ligá-lo se necessário, mas não desligá-lo.
Então, se ninguém vai desligar esse evento...
Portanto, se ninguém desativar esse evento, não há necessidade de verificar a cada segundo se ele está ativado. Em um Expert Advisor, você desativa especificamente o evento e, em outro, monitora sua propriedade a cada segundo, embora seja mais fácil e seguro não escrever nada.
Não necessariamente a cada segundo, há uma alternativa em outro evento (já discutido). Dê um exemplo melhor, por favor, de como eu fiz isso aqui. ) A partir da condição de que o Expert Advisor precisa desse evento, mas o indicador não. Dessa forma, ficará mais claro.
P.S. Correção. Eu cometi um erro. )) Sua variante não está mais correta. Ela não se encaixa de forma alguma. Portanto, é melhor dar um exemplo com base na condição acima.