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 8

 

Obrigado, um pouco tarde, mas ainda assim.

 
Ihor Herasko:

Antes de mais nada, seria uma boa idéia decidir de que forma as informações sobre a ocorrência do evento devem ser recebidas: direta ou indiretamente?

Assumindo que escrever sua própria DLL não é uma opção, por que não eliminar também a API? Se o método indireto for adequado:

Devemos fazer um loop de um script que verifique o índice da primeira barra visível em uma janela - WindowFirstVisibleBar (você pode fazê-lo junto com o número de barras na janela - WindowBarsPerChart). Se forem diferentes do valor anterior, o gráfico foi verificado. É verdade que, neste caso, não só a roda do mouse pode ser a causa (zoom no tempo - "+", "-", clicando em Home ou End, salto direto para a data desejada).

Em qualquer caso, ainda não há informações suficientes para saber exatamente o que é necessário para detectar um evento de giro da roda do mouse. Em seguida, você pode sugerir métodos.

P.S. E se você precisar de acesso à função de manipulação de janelas, é SetWindowLongPtr (ver msdn). Mas não se pode passar sem DLL, pois não se pode atribuir um novo procedimento de processamento de mensagens, localizado em código MQL.


Nota: este posto contém praticamente a solução. Ficou um pouco fora de controle, por alguma razão. O autor primeiro entendeu uma idéia simples e correta e depois a perdeu, tendo ido em busca de uma solução global junto com o resto. Que pena...


P.S. Tive o prazer de ajudar).

 
Реter Konow:

Nota: este posto contém praticamente a solução. É um pouco abaixo do esperado, por alguma razão. O autor primeiro entendeu uma idéia simples e correta e depois a perdeu, saindo em busca de uma solução global com o resto de nós. Que pena...


P.S. Tive o prazer de ajudar).


Esses eram os dias, a velha linguagem, as possibilidades limitadas... ... então tive que fazer alguns malabarismos... O autor, ou seja, eu, resolveu este problema com sucesso, e depois perdeu o interesse ))))

 
Реter Konow:

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.

Naturalmente, a realizaçã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.

Entendi que a implementação seria com um cronograma saltitante. Concordo que a melhor solução é cair aos pés dos desenvolvedores e pedir-lhes que acrescentem um evento de rolagem e clique na roda, bem como a capacidade de desativar temporariamente a rolagem do gráfico com a roda do mouse. Afinal, não é tão difícil para eles - apenas algumas linhas de código. Não entendo porque de repente decidiram que ninguém vai precisar de uma roda de rato. Mas se realmente precisarmos dele, então a solução a partir do gráfico saltitante, como opção, poderia ser desativar o próprio gráfico ( ChartSetInteger(0,CHART_SHOW,false); ) e criar seu duplo via CCanvas, mas é claro que são todos os pandeiros, caminhando para um vizinho através do Pólo Norte.

Mas ainda assim - crédito e você, Peter - um cara legal e um bom programador. Eu sempre disse isso, mas também disse que você desperdiça sua criatividade no "cultivo de tomates na Turquia", onde ninguém precisa deles, porra nenhuma.

 
Nikolai Semko:

...mas também disse que está desperdiçando sua criatividade no "cultivo de tomates na Turquia", onde ninguém os quer.

Eu vou fazer meu ponto de vista.

Neste momento, a plataforma MT5 tem muito potencial. Muitas possibilidades e bibliotecas. Mas ao mesmo tempo, o desenvolvimento de programas MQL chegou a um impasse.

A barreira para um maior desenvolvimento é a falta de oportunidades para o crescimento de programas dentro da plataforma.

Os usuários não podem ampliar ainda mais sua funcionalidade de software sem a capacidade de trazer os módulos de controle para uma interface gráfica.

A falta de GUI nos programas MQL é uma barreira global para seu desenvolvimento futuro. Renat disse que o período de programas "infantis" de uma página deve ter terminado. Eu concordo plenamente com ele. Mas como isso pode acabar se os comerciantes não têm nenhuma possibilidade física de sair de "calças curtas"?

Vamos enumerar as conseqüências da falta de GUI nos programas MQL:

  • Incapacidade de combinar mais blocos de programas que capacitariam o usuário.
  • Apertado a um limite o escopo de interação do usuário com seu programa.
  • Falta de um comércio semi-automático sério como tal. Muitos prefeririam o comércio semi-automático ao totalmente automático.
  • A inconveniência da pesquisa de mercado, que não permite que os profissionais corram a toda velocidade.
  • Não há manutenção própria de estatísticas.
  • Necessidade de trabalhar com aplicações de terceiros através de muletas, cuja premissa é a inexistência de uma GUI. Afinal, se estivesse disponível, a pesquisa pode ser realizada em programas MQL.

Todas as informações úteis do MT5 são meio "trancadas" por dentro e não são realmente acessíveis.

Assim que a GUI aparecer, as muletas desaparecerão e as possibilidades serão abertas no MT5. Haverá também muitas características novas.

//-----------------------------------------------------------------------------------------------------------

Meu axioma: PROGRAMAS OPERACIONAIS NÃO PODEM SER COMPLETADOS SE NÃO TÊM UMA INTERFACE GRÁFICA COMO UM SOFTWARE DE INTERAÇÃO DE USUÁRIO. Será destacado e trancado dentro da máquina. É sempre desconfortável trabalhar com ela. Se é primitivo e simples de começar, então a GUI é desnecessária, mas em um campo como o comércio, o programa deve estar em constante evolução e interação com o usuário. Sem isso, todo o ramo de algotrading alcançará um teto e não se desenvolverá.

 
Реter Konow:

Vou expor meu ponto de vista.

Agora a plataforma MT5 tem um enorme potencial. Muitas possibilidades e bibliotecas. Mas, ao mesmo tempo, o desenvolvimento de programas MQL chegou a um impasse.

A falta de oportunidades para desenvolver programas dentro da plataforma é um obstáculo para o desenvolvimento futuro.

Os usuários não podem ampliar ainda mais a funcionalidade de seu software sem poder colocar módulos para controlá-lo em uma GUI.

A falta de GUI nos programas MQL é uma barreira global para seu desenvolvimento futuro. Renat disse que o período de programas "infantis" de uma página deve ter terminado. Eu concordo plenamente com ele. Mas como isso pode acabar se os comerciantes não têm nenhuma possibilidade física de sair de "calças curtas"?

Vamos enumerar as conseqüências da falta de GUI nos programas MQL:

  • A incapacidade de integrar mais blocos de programas que melhorariam a experiência do usuário.
  • O escopo reduzido da interação do usuário com seu programa.
  • Ausência de comércio semi-automático sério como tal. Muitos prefeririam o comércio semi-automático ao totalmente automático.
  • A inconveniência da pesquisa de mercado, que não permite que os profissionais corram a toda velocidade.
  • Não há manutenção própria de estatísticas.
  • Necessidade de trabalhar com aplicações de terceiros através de muletas, cuja premissa é a inexistência de uma GUI. Afinal, se houvesse um, a pesquisa pode ser realizada em programas MQL.

Todo o material útil do MT5 é meio "trancado" no interior e não está disponível.

Assim que a GUI aparecer, as muletas desaparecerão e as possibilidades no MT5 estarão abertas. Também surgirão muitas características novas.

//-----------------------------------------------------------------------------------------------------------

Meu axioma: um PROGRAMA COMPLEXO NÃO PODE SER COMPLETADO SE NÃO TER INTERFACE GRÁFICA COMO UTILIZADOR. Será destacada e trancada dentro da máquina. É sempre desconfortável trabalhar com ela. Se é primitivo e simples de começar, então a GUI é desnecessária, mas em um campo como o comércio, o programa deve estar em constante evolução e interação com o usuário. Sem isso, todo o ramo de algotrading alcançará um teto e não se desenvolverá.


Eu entendo o que Renat quis dizer, criei mais de cem indicadores e dezenas de robôs e no final percebi que não era nada, mas adquiri alguma experiência e compreensão. Agora estou trabalhando em um robô há vários anos, onde a interface é a última coisa e a inteligência artificial é tudo. Renat não significava que você precisava de uma interface de várias páginas. Eu estava falando sobre o número de páginas de código, ou melhor, a quantidade de esforço e pensamento criativo colocado nele, enquanto no Mercado, a grande maioria dos produtos são bugigangas infantis e inúteis. O que isso tem a ver com GUIs? As GUIs só podem confundir o comprador potencial, ou puxar poeira em seus olhos, ou assustá-los com sua complexidade. Tudo em que você está trabalhando agora - e Anatoly também, a propósito, perdoe-me - é tudo a la Windows 95. As pessoas hoje estão acostumadas e estragadas por um paradigma de interface completamente diferente. Olhe a interface de seu telefone andróide ou iPhone. Simplicidade, minimalismo, intuitividade. É por isso que você tem que se esforçar.

Peter, veja o Google.com, por exemplo. Que tipo de interface você vê ali? E esta empresa é capitalizada a meio trilhão de dólares. Pelo contrário, eles tendem a minimizar a interface, porque sua interface de 15 anos atrás era mais sofisticada e, creio, em poucos anos sua interface será ainda mais modesta. E eles são os principais criadores de tendências na moda da GUI. Todas as suas enumerações da necessidade da GUI são declarativas e exageradas, ou melhor, a GUI não tem nada a ver com ela (bem, você só pode deixá-la para comércio semi-automático). Veja a mais recente tecnologia do Google - TensorFlow. Esta é uma tecnologia de aprendizagem de máquinas, tecnologia de IA e reconhecimento de padrões, que seria muito útil para os programadores de comércio automatizado dominarem, mas esta tecnologia não precisa de GUI. Realmente - do que estou falando, se para você a tecnologia OOP é uma ferramenta inútil!

 
Nikolai Semko:

Entendo perfeitamente o que Renat quis dizer, pois eu mesmo criei mais de cem indicadores e dezenas de robôs, mas acabei percebendo que tudo isso não era nada, mas ganhei alguma experiência e compreensão. Agora estou trabalhando em um robô há vários anos, onde a interface é a última coisa e a inteligência artificial é tudo. Renat não significava que você precisava de uma interface de várias páginas. Eu estava falando sobre o número de páginas de código, ou melhor, a quantidade de esforço e pensamento criativo colocado nele, enquanto no Mercado, a grande maioria dos produtos são bugigangas infantis e inúteis. O que isso tem a ver com GUIs? As GUIs só podem confundir o comprador potencial, ou puxar poeira em seus olhos, ou assustá-los com sua complexidade. Tudo em que você está trabalhando agora - e Anatoly também, a propósito, perdoe-me - é tudo a la Windows 95. As pessoas hoje estão acostumadas e estragadas por um paradigma de interface completamente diferente. Olhe a interface de seu telefone andróide ou iPhone. Simplicidade, minimalismo, intuitividade. É por isso que você tem que se esforçar.

Peter, veja o Google.com, por exemplo. Que tipo de interface você vê ali? E esta empresa é capitalizada a meio trilhão de dólares. Pelo contrário, eles tendem a minimizar a interface, porque sua interface de 15 anos atrás era mais sofisticada e, creio, em poucos anos sua interface será ainda mais modesta. E eles são os principais criadores de tendências na moda da GUI. Todas as suas enumerações da necessidade da GUI são declarativas e exageradas, ou melhor, a GUI não tem nada a ver com ela (bem, você só pode deixá-la para comércio semi-automático). Veja a mais recente tecnologia do Google - TensorFlow. Esta é uma tecnologia de aprendizagem de máquinas, tecnologia AI e reconhecimento de padrões, que seria muito útil para os programadores de comércio automatizado dominarem, mas esta tecnologia não precisa de GUI. Realmente - do que estou falando, se para você a tecnologia OOP é uma ferramenta inútil!

Nikolay, nós não nos entendemos).

O OOP é realmente inútil para mim pessoalmente , mas eu não nego sua utilidade para os outros. Deixe-os usar isso para sua saúde.

A GUI é uma necessidade prática. A GUI vai abrir espaço para tornar os programas mais complexos. Ela irá enriquecer o ambiente atualmente escasso para a implementação de idéias criativas. Ele dará aos programas um rosto próprio.

MO (machine learning), ao contrário, levará algotrading a um beco sem saída sem esperança. Um jogo de adivinhação automatizado, sem qualquer compreensão dos processos de mercado. Uma caixa preta para reciclagem estatística. Amputa o desejo dos comerciantes de compreender o mercado e criar suas próprias estratégias. O treinamento em análise técnica e artigos sobre ela será irrelevante. A hora da morte do pensamento do comerciante chegará. A caixa negra vai arrasá-la.

Nikolai, nosso ecossistema precisa ser um ambiente diversificado e rico. Precisamos expandir. Os Algotraders precisam de novas oportunidades de software. Eu só quero abrir outro para eles).


A propósito, você também deve finalmente assumir um projeto maciço e começar a realizar suas habilidades. Sinto que você mesmo o quer, mas não há como. É uma pena porque você tem um enorme potencial criativo. Portanto, estou aguardando a demonstração de seus projetos. Espero certamente vê-los).

 

Реter Konow:

...Ela irá enriquecer o ambiente atualmente escasso para a implementação de idéias criativas. Ele dará aos programas um rosto próprio.

Eu deveria esclarecer o que quero dizer com "ambiente escasso para a expressão criativa". Receio ser mal compreendido. O MT5 é potencialmente um ambiente muito rico para idéias criativas em comércio algorítmico. Mas seu potencial é atualmente utilizado pelos comerciantes, penso eu, de 20% a 30%.

É o espaço atual do campo de uso prático que eu chamei de "meio ambiente de pouca monta", não o potencial. Talvez eu não o tenha colocado com precisão.

Há uma expressão: "A existência determina a consciência".

Nosso Gênesis atual são programas sem GUIs, criados em face de altas barreiras intelectuais. Este Gênesis, definiu nossa consciência e não queremos GUIs e comércio semi-automatizado. Acreditamos no significado de ajustar parâmetros à história como um meio de otimizar estratégias. Ou seja, não estamos tentando melhorar a estratégia, aprofundando nosso entendimento do mercado, mas ajustando-nos à história. Em outras palavras - auto-engano. É assim que nossa consciência tem sido definida há anos. E, por alguma razão, ninguém considera a otimização como poeira flagrante no olho. Mas somente graças a ele são obtidos os grãos de teste.

Quaisquer barreiras são úteis para a ginástica mental, mas para a criatividade livre existem agora demasiadas barreiras. Algumas entidades nos ajudam na realização de uma idéia, outras nos dificultam. Nota - foi preciso apenas uma fração das capacidades de uma linguagem de programação para construir minha própria 'máquina' gráfica, com uma linguagem de mark-up. E não se trata de talento de programação, apenas da capacidade de distinguir as coisas por sua essência. Se uma pessoa não tem esta capacidade, ela se confundirá irremediavelmente com várias coisas e não perceberá seu potencial. O prisma de olhar para as coisas determina a eficiência de nosso trabalho e a escala de implementação prática dos talentos.

Eu só quero ajudar os outros com minha própria auto-realização, e levar a MT5 a um avanço global. De que outra forma isso poderia ser feito? Em geral, se pessoas talentosas como você, Nikolay, ou Anatoly me ajudarem, certamente moveremos montanhas).

 
Реter Konow:

...se pessoas talentosas como você Nikolai, ou Anatoly me ajudarem, nós definitivamente moveremos montanhas!)

Não, sinto muito, Pyotr, mas você move suas próprias montanhas. E eu moverei minhas próprias montanhas. ))
 
Nikolai Semko:
Não, Peter, sinto muito, mas você move suas próprias montanhas. E eu vou mover minhas montanhas. ))

Eu disse"como você", não você). Eu não ia colocar minha "montanha" em você).

Razão: