Discussão do artigo "Handler de evento "Nova barra""

 

Novo artigo Handler de evento "Nova barra" foi publicado:

A linguagem de programação é capaz de resolver problemas em um nível completamente novo. Mesmo as tarefas que já tenham soluções, graças à programação orientada a objeto elas podem atingir um nível ainda maior. Neste artigo, consideramos um exemplo especialmente simples de verificação de uma nova barra em um gráfico, que foi transformado em uma ferramenta bastante poderosa e versátil. Qual ferramenta? Descubra neste artigo.

Autor: Konstantin Gruzdev

 
Meu Deus... não consegui terminar... Gostaria que os desenvolvedores tivessem introduzido a função isNewBar como padrão.... a quantidade de erros é impressionante... e isso em uma função primitiva de aparência de nova barra
Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 
Eu diria que
 

Obrigado, artigo muito bom.

На форуме как-то проскользнула мысль о том, что было бы хорошо иметь стандартный обработчик события «новый бар». Быть может когда-то разработчики придут к этому, а может и нет.

Por que ele passou despercebido. Aqui mesmo está escrito em letras grandes https://www.mql5.com/ru/forum/2176/page21/#comment_26385 que isNewBar() é necessário e pode ser programado.

Além disso, você pode jogar o jogo "encontre dez diferenças". Além das esquisitices do trabalho do Expert Advisor na conta de demonstração, é óbvio que há diferenças na conta de demonstração e no testador, e elas são visíveis a olho nu... Deixarei isso para as paixões no fórum ou para o próximo artigo, se houver necessidade.

Você não pode ver as paixões, receio que muitas pessoas nem tenham visto. As paixões no campeonato começarão quando os conselheiros começarem a cair....

Agora podemos ir além e criar um manipulador de eventos NewBar com várias moedas. Mas esse é o assunto de um artigo inteiro.

E a isso só posso acrescentar um grande poema de um grande poeta.

Oh, quantas descobertas maravilhosas

Preparar o espírito do esclarecimento

E a experiência, o filho dos erros difíceis,

E o gênio, o amigo dos paradoxos,

E o acaso, o inventor de Deus....

 
Prival:

Obrigado, o artigo é muito bom.

Por que ele passou despercebido. Ali mesmo, em letras grandes, está escrito https://www.mql5.com/ru/forum/2176/page21/#comment_26385 que isNewBar() é necessário e pode ser programado.

Opa, não percebi isso. Poderia ter dado mais algumas idéias. A propósito, publiquei um EA baseado no ponto 5. Mas ele é bruto.

Não dá para ver as paixões, e receio que muitas pessoas nem tenham visto.

Sim, parece que muitas pessoas ainda estão em choque com o início do campeonato.

E a isso eu só posso acrescentar um grande poema, um grande poeta.

Um poema sobre o tema. Eu gostaria que alguém oferecesse soluções reais.

 
maryan.dirtyn:
seria melhor se os desenvolvedores simplesmente introduzissem a função isNewBar como uma função padrão...
A meu ver, não faz sentido que os desenvolvedores introduzam uma função isNewBar padrão, pois ela é um caso especial de OnTick. E concordo com Prival que esse é um evento programável.
[Excluído]  
Lizar:
Na minha opinião, não faz sentido que os desenvolvedores introduzam uma função isNewBar padrão, pois esse é um caso especial de OnTick. E concordo com Prival que esse é um evento programável.

Provavelmente, é até necessário introduzir um processamento padrão desse evento. Pelo menos em nível de especialista.

Pelo menos é mais conveniente do ponto de vista do multithreading no trabalho. Afinal, qualquer processamento no nível do terminal pode ser organizado em vários threads, mas no MQL teremos apenas um thread.

Na minha opinião, o processamento padrão será especialmente vantajoso para o trabalho com várias moedas.

PS

Em geral, os desenvolvedores devem pensar em alterar os manipuladores de eventos existentes, os mesmos OnTrade() e OnTick().

Pessoalmente, eu preferiria que eles tivessem pelo menos um símbolo como parâmetro...

 

Eu também mudaria OnTick(), ou melhor, sua lógica. Agora, esse evento é gerado se houver um novo tick no par de moedas no qual o Expert Advisor está suspenso. Do ponto de vista da análise de várias moedas, seria melhor (acho que sim) gerar esse evento se houver um novo tique em qualquer instrumento.

Ou seja, se a matriz tiver sido alterada (revisão do mercado), o evento newTick() será gerado com indicando o que foi alterado na matriz. Seria mais conveniente sincronizar tudo .

Raramente, mas há situações em que as cotações de um instrumento ficam congeladas por um longo tempo (vi uma situação assim no iene). E se o Expert Advisor travar nesse par, você estará em apuros se não tiver traduzido todo o código para OnTime().

 
Interesting:

Provavelmente, é até necessário introduzir o processamento padrão desse evento. Pelo menos em nível de especialista.

Pelo menos, é mais conveniente do ponto de vista do multithreading no trabalho. Afinal de contas, qualquer processamento no nível do terminal pode ser organizado em vários threads, e com o MQL teremos apenas um thread.

Sim, concordo com a questão do multithreading. Mas esse é um problema geral de processamento de qualquer evento, não especificamente do NewBar.
 
Prival:

Ou seja, se a matriz foi alterada ( visão geral do mercado ), o evento newTick() é gerado com indicando o que foi alterado na matriz. Seria mais conveniente sincronizar tudo.


Esse evento pode ser recebido usando TimeCuurent(), mas o que fazer com ele e como sincronizá-lo é uma questão.
[Excluído]  
Prival:

Eu também mudaria OnTick(), ou melhor, sua lógica. Atualmente, esse evento é gerado se houver um novo tick no par de moedas no qual o Expert Advisor está suspenso. Do ponto de vista da análise de várias moedas, seria melhor (acho que sim) gerar esse evento se houver um novo tique para qualquer instrumento.


Bem, quero dizer a mesma coisa, em OnTick() e OnTrade(), pelo menos você precisa adicionar o nome do símbolo como parâmetro (em OnTrade() também é desejável adicionar o tipo de evento).

Nesse caso, OnTick(), por exemplo, pode ser gerado sempre que houver um novo tique em um dos símbolos (instrumentos) presentes na visão geral.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика - Документация по MQL5