O que os profissionais têm a dizer: Como obter valores de rolagem do mouse na MQL? [relançamento do quinto fórum]. - página 7
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
O que o ajudará? Seu elogio? Você não mostrou uma solução. Você se mostrou. O que é muito, muito esperado.
É isso o que é?
Você tem a tendência errada. Primeiro você grita coisas para mim (como "seu código é uma porcaria", "necroposter"), e depois pergunta e discute a solução para o problema. Então, pense por si mesmo.
Ou esperar que eu ajude aqueles que o merecem.
O que o ajudará? Seu elogio? Você não mostrou uma solução. Você se mostrou. O que é muito, muito esperado.
Você é notavelmente desatento.
Veja, no fundo do posto ao qual respondi, o homem está pedindo "dicas". Ele não está pedindo por uma solução. Então eu tentei empurrá-lo. Agora você vê como sua interferência é inapropriada e ridícula? Isso não implica em nada além de lixo inútil. Seria melhor que você se comunicasse sobre os méritos. Você estaria fazendo mais bem a si mesmo e aos outros.
Você tem a tendência errada. Primeiro você grita coisas para mim (como "seu código é uma porcaria", "necroposter"), e depois pergunta e discute a solução para o problema. Então, pense por si mesmo.
Ou esperar que eu ajude aqueles que o merecem.
Eu não estava perguntando, eu estava declarando um fato.
Eu não estava perguntando, eu estava declarando um fato.
Aqui, muitas pessoas não vêem o conteúdo por trás da forma. Eles não conseguem entender que, se não houver nenhuma idéia e nenhuma capacidade de realizá-la, sua insistência na forma não produzirá conteúdo de qualidade.
A essência pode ter muitas formas de suas encarnações e somente uma pessoa incompetente pode julgá-la pela linguagem de sua expressão.
Eu não estava perguntando, eu estava declarando um fato.
Eu também vou declarar um fato.
seus "produtos" são um esforço sem talento e ridículo.
Este é o maior lixo que eu já vi em muito tempo!
Não leve a sério as críticas verdadeiras. :)
Por quê? Um pequeno processo de reflexão e todos encontrarão uma solução. Eu lhe dei uma dica onde procurá-la. Em que direção investigar. Não é interessante ter tudo em uma bandeja de prata. )) Se precisar, posso ajudar o homem e levá-lo a uma solução. Mas parece que você só quer discutir comigo).
Olá, Peter!
Você não quer dizer que tem uma solução prática, como rolar a roda do mouse por meio de MQL? E não com setas de teclado ou botões do mouse - não é tão difícil de entender. Naturalmente, podemos usar o evento CHARTEVENT_CHART_CHANGE para determinar se o gráfico está rolando com roda, se nenhuma tecla for pressionada, mas apenas probabilisticamente, porque este evento pode ocorrer apenas com uma nova barra chegando ou uma mudança de preço acentuada, levando a uma mudança de escala vertical. Além disso, com este método nem sempre é possível obter o evento de rolagem da roda, por exemplo, quando o gráfico atingiu a posição extrema esquerda ou direita, e como conseguir isto sem rolar o gráfico. Talvez você pretenda usar a função ChartNavigate para mover o gráfico de volta, mas isso seria uma implementação muito tortuosa e dificilmente é possível filtrar corretamente todos os outros motivos de mudanças no gráfico, além da rolagem da roda do mouse. Em minha mente, isso só pode ser feito hackeando o MT ou conhecendo alguns comandos e (ou) eventos não documentados. De qualquer forma, não acredito que você tenha um exemplo de tal implementação.
E você tem uma estranha dica, no entanto. Quase à pergunta "Como obter evento de rolagem através da roda do mouse", você dá a resposta"Use evento de rolagem e uma função que mova o gráfico".
Talvez eu esteja errado, e você realmente tem um exemplo. Então você é um cara legal! )) Bem, então pelo menos largue o arquivo ex4 (ex5), não o código.
Olá Peter!
Você não quer dizer que você tem uma solução prática de como rolar com a roda do mouse em MQL? E não com setas de teclado ou botões do mouse - não é tão difícil de entender. Naturalmente, podemos usar o evento CHARTEVENT_CHART_CHANGE para determinar se o gráfico está rolando com roda, se nenhuma tecla for pressionada, mas apenas probabilisticamente, porque este evento pode ocorrer apenas com uma nova barra chegando ou uma mudança de preço acentuada, levando a uma mudança de escala vertical. Além disso, com este método nem sempre é possível obter o evento de rolagem da roda, por exemplo, quando o gráfico atingiu a posição extrema esquerda ou direita, e como conseguir isto sem rolar o gráfico. Talvez você queira usar a função ChartNavigate para mover o gráfico de volta, mas isso seria uma implementação muito torta e é improvável que filtre corretamente todas as outras razões para mudanças no gráfico, além da rolagem da roda do mouse. Em minha mente, isso só pode ser feito através de hacking MT ou conhecendo alguns comandos e/ou eventos não documentados. De qualquer forma, não acredito que você tenha um exemplo de tal implementação.
E você tem uma estranha dica, no entanto. Quase à pergunta "Como obter evento de rolagem através da roda do mouse", você dá a resposta"Use evento de rolagem e uma função que mova o gráfico".
Talvez eu esteja errado, e você realmente tem um exemplo. Então você é um cara legal! )) Bem, então pelo menos largue o arquivo ex4 (ex5), não o código.
Olá Nikolay!
Acredite ou não, a solução é muito simples. São necessárias 15-20 linhas de código. Há um ponto sutil, porém - as especificidades da implementação do mecanismo de rolagem. Minha implementação difere um pouco do padrão. Ele rola lona, não objetos. Há uma implementação semelhante na biblioteca da Anatoly.
Eu faço scroll com a roda e "agarrando-me" ao movimento da carta, obtenho um efeito energizante. É claro que o gráfico trava, mas sempre volta à sua posição inicial. É para isso que serve a função de mudança de gráfico. A direção de deslocamento do gráfico também é obtida a partir da função mql. Assim, não tenho que invadir nada). A MQ tentou dar a mais ampla funcionalidade possível para implementar praticamente qualquer tarefa. Isto é até surpreendente. Talvez eles mesmos não conhecessem todas as características que abrem para os desenvolvedores).
De qualquer forma, não acredito que você tenha um exemplo de tal implementação.
E você tem uma estranha dica, no entanto. Praticamente à pergunta "Como obter evento de rolagem via roda do mouse", você dá a resposta "Use evento de rolagem e função que move o gráfico".
Talvez eu esteja errado, e você realmente tem um exemplo. Então você é um cara legal! )) Bem, pelo menos deixe cair o arquivo ex4 (ex5), não o código.
A situação é a seguinte. A pessoa a cujo posto respondi, pediu-me para dar-lhe uma idéia, como implementar um mecanismo de rolagem com uma roda. Eu lhe dei uma dica. Imediatamente os mal-intencionados locais se exaltaram e começaram a me acusar de gabarolice e outros disparates.
Do ponto de vista deles, se eu der uma solução, então ou estou anunciando meus produtos, ou apenas me gabando, e se não, então eu estou trapaceando e não tenho nada.
Posso lhe dar o código, mas, em primeiro lugar, ele será separado da implementação do mecanismo de rolagem e, em segundo lugar, será em russo. Mas talvez você possa adaptá-lo ao seu mecanismo de rolagem. Não posso colocar eh4, porque não posso "arrancar" um único mecanismo do ambiente gráfico no qual ele opera.
A melhor opção, seria dar-lhe a solução em termos gerais, mas não com o objetivo de provar nada, mas com base na amizade.
E assim:
O evento CHARTEVENT_CHART_CHANGE é gerado, entre outras coisas, no evento de movimento da roda do mouse, se o cursor estiver sobre o gráfico. A opção de desvio de gráfico deve estar habilitada. Assim, a partir do offset do gráfico, podemos saber exatamente quando giramos a roda. Podemos gerar um evento personalizado. Por exemplo, "SCROLLER_EVENT".
Em seguida, nossa tarefa é determinar a direção da compensação. Usamos ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR); a cada evento "SCROLLER_EVENT" obtemos o número da primeira barra visível e determinamos se é mais ou menos do que o número da barra anterior que registramos. Se for mais, então se move em uma direção; se for menos, então se move na direção oposta. Ao mesmo tempo, nossa tabela também irá rolar e pode chegar ao final. Para evitar isso, corrigimos sua posição usando a função ChartNavigate e colocamos o gráfico em sua posição inicial. Esta chamada também gera o evento CHARTEVENT_CHART_CHANGE e irá desabilitar nossa rolagem. Portanto, no momento da correção da posição do gráfico devemos pular o evento CHARTEVENT_CHART_CHANGE e não reagir a ele. Isto requer o uso de um sistema de bandeira.
Este é o aspecto do meu código:
Adicionado:
Quanto a outras causas de mudanças de gráfico, é claro, elas podem introduzir erros em nosso sistema. Entretanto, estes erros são tão insignificantes que não devemos prestar muita atenção a eles. Então, se a nova barra mover nossa tela alguns pixels... Não é um grande problema. E isto somente se o cursor estiver sobre a barra de rolagem naquele momento.
Naturalmente, a implementação é uma tentativa de encontrar uma saída para uma situação sem esperança. Com a completa falta de rolagem com a roda, esta é a solução mais simples e mais "nativa". Para uma solução completa, eu já entrei em contato com a Servicedesk. O fato de ser ou não depende dos desenvolvedores.