Discussão do artigo "Guia prático do MQL5: Controles de sub-janela indicadora - botões" - página 6
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
Não necessariamente a cada segundo, há uma alternativa em outro evento (já discutido). Por favor, me dê um exemplo 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.
Se o indicador não precisar desse evento, ele simplesmente não o processará. Além disso, o Expert Advisor não deve desativar eventos de que não precisa. Ele pode ativá-los, mas não desativá-los. Porque não é da conta dele quais eventos passam por sua janela e quem pode precisar deles.
Se o indicador não precisar desse evento, ele simplesmente não o processará. Além disso, o Expert Advisor não deve desativar eventos de que não precisa. Ele pode ativá-los, mas não desativá-los. Porque não é da conta dele quais eventos passam por sua janela e quem pode precisar deles.
A questão é que esse evento pode não ser processado (simplesmente esqueça-o). Mas isso não significa que a fila de eventos na função OnChartEvent() não será preenchida com coisas que não são necessárias em um determinado momento.
E isso significa milhares de eventos desnecessários por minuto. E se houver vários programas no gráfico? Não é um argumento?
Muito menos recursos serão desperdiçados se você verificar a cada segundo se um evento está ativado e ativá-lo se ele não estiver ativado no momento, mas for necessário. Também não é um argumento? Então faça do seu jeito.
Não tenho mais argumentos. ) Manterei minha opinião, pois não ouvi nada que me faça mudar de ideia.
Bom. Então, tenho uma pergunta para aqueles que acham que esse evento não precisa ser desativado pelo programa que o ativou.
Por quê? )
Isso é:
1. Por que deixar algo que não é necessário (milhares de eventos por minuto)?
2. (em outra formulação) Por que gastar mais recursos quando se pode gastar menos?
Opções como "se um evento não for necessário, simplesmente não o processe" não me agradam nem um pouco. Você não pode desativar um, não pode desativar o outro, e o que você ganhará com isso?
Caro autor do artigo, é inútil não explicar as contradições internas de seus produtos, que você está tentando combater e ensinar aos "iniciantes".
Portanto, o autor mostrou os momentos escorregadios que podem atrapalhar o funcionamento correto de seu indicador. Ótimo, agora está claro para o "iniciante" que:
1. Por que deixar o que não é necessário (milhares de eventos por minuto)?
2. (em outra formulação) Por que gastar mais recursos quando se pode gastar menos?
Opções como "se um evento não for necessário, simplesmente não o processe" não me agradam nem um pouco. Você não pode desativar um, não pode desativar o outro e o que você ganha com isso?
Você terá um código totalmente controlado.
Você enfatiza o desempenho, mas será que ele cai tanto com esse evento ativado? Para responder a essa pergunta, escrevi especialmente um Expert Advisor simples para testar esse evento. Depois de testar diferentes combinações, obtive a seguinte tabela:
Como você pode ver, a carga real aumenta apenas quando ocorre o processamento real desse evento. É digno de nota que, a julgar pela carga da CPU, o MetaTrader rastreia a posição do mouse independentemente de a assinatura desse evento estar ativada ou não. Em geral, verifica-se que é inútil economizar recursos hipotéticos, porque o rastreamento do mouse será realizado em qualquer caso.
Teste o código do Expert Advisor:
1. Você deve sempre considerar o caso de um evento ser perdido na pilha. Se algo crítico puder acontecer no caso de um evento ser perdido, isso é muito ruim.
2. Personalizar o gráfico para se adequar a si mesmo é ruim. É quase o mesmo que negociar em uma máquina de negociação automatizada sem um mágico.
Caro autor do artigo, é inútil não explicar as contradições internas de seus produtos, que você está tentando combater e ensinar aos "iniciantes".
Portanto, o autor mostrou os momentos escorregadios que podem atrapalhar o funcionamento correto de seu indicador. Ótimo, agora está claro para um "iniciante" que:
...
Você pode criar mais 20 regras para justificar seu senso de autoimportância e, então, com certeza se confundirá e "ajudará" os iniciantes. As contradições e os mal-entendidos, nesse caso, foram observados por você. )
Você obterá um código totalmente controlado.
...
Ele será controlado quando você o controlar. Nesse caso, você propõe deixar tudo desmarcado, ou seja, deixar um evento que não é necessário no momento e que pode ser reproduzido com muita frequência. Em exemplos simples, isso pode não ser perceptível. Talvez você veja a necessidade de desativar tudo o que não é necessário em programas mais complexos.
1. Você deve sempre considerar o caso de um evento ser perdido na pilha. Se algo crítico puder acontecer no caso de um evento ser perdido, isso é muito ruim.
...
tol64:
Desculpe-me, por acaso estou distraindo-o de escrever outro tutorial ou receita?
Se não, vamos continuar discutindo seu artigo sobre controle na subjanela do indicador. Então, você oferece uma solução em massa (ou uma ideia) de como criar um menu conveniente em um indicador. Ótimo, o objetivo do artigo é muito válido! Mas como um programador "iniciante" pode usar todo esse arsenal? Onde colocar as funções personalizadas? Demonstre isso com um exemplo. E, ao mesmo tempo, explique o que você precisa corrigir no código para usar, por exemplo, 5 botões? Considere isso como uma pergunta de iniciante.
Como quando a fila de eventos transborda?