Discusión sobre el artículo "Gestor de evento "Nueva barra""

 

Artículo publicado Gestor de evento "Nueva barra":

El lenguaje de programación MQL5 es capaz de resolver problemas a un nuevo nivel. Incluso aquellas tareas que ya tienen soluciones, gracias a la programación orientada a objetos pueden subir a un nivel superior. En este artículo veremos un sencillo ejemplo sobre la comprobación de una nueva barra en un gráfico, transformada en una herramienta más potente y versátil. ¿Qué herramienta? Lo veremos en este artículo.

Autor: Konstantin Gruzdev

 
oh dios... no pude terminarlo... Ojalá los desarrolladores hubieran introducido la función isNewBar como estándar.... el desorden de errores es asombroso... y esto en una función primitiva de aparición de nueva barra
Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 
Yo diría que
 

Gracias, muy buen artículo.

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

Por qué se me ha colado. Aquí mismo dice en letras grandes https://www.mql5.com/ru/forum/2176/page21/#comment_26385 que isNewBar() es necesario y se puede programar.

Además se puede jugar al juego "encuentra diez diferencias". Además de las rarezas del funcionamiento del Asesor Experto en la cuenta demo, es obvio que hay diferencias en la cuenta demo y en el tester, y se ven a simple vista... Lo dejaré para pasiones en el foro o para el próximo artículo, si es que hace falta.

Las pasiones no se ven, me temo que mucha gente ni lo vio. Las pasiones en el campeonato empezarán cuando los concejales empiecen a caer fuera....

Ahora podemos ir más allá y hacer un manejador de eventos NewBar multidivisa. Pero esto es tema de un artículo entero.

Y a esto sólo puedo añadir un gran poema de un gran poeta.

Oh cuántos descubrimientos maravillosos

Prepara el espíritu de la iluminación

Y la experiencia, el hijo de los errores difíciles

Y el genio, el amigo de las paradojas,

Y el azar, inventor de Dios....

 
Prival:

Gracias, muy buen artículo.

Por qué se me ha colado. Ahí mismo en letras grandes dice https://www.mql5.com/ru/forum/2176/page21/#comment_26385 que isNewBar() es necesario y se puede programar.

Uy, algo se me pasó eso. Podría haber echado alguna idea más. Por cierto, he colgado un EA basado en el punto 5. Aunque está crudo.

No se ven las pasiones, me temo que mucha gente ni lo ha visto.

Sí, parece que mucha gente sigue en estado de shock por el inicio del campeonato.

Y a eso sólo puedo añadir un gran poema, un gran poeta.

Un poema al tema. Ojalá alguien ofreciera soluciones reales.

 
maryan.dirtyn:
sería mejor si los desarrolladores simplemente introdujeran la función isNewBar como estándar...
Tal y como yo lo veo, no tiene sentido que los desarrolladores introduzcan una función isNewBar estándar, ya que es un caso especial de OnTick. Y estoy de acuerdo con Prival en que es un evento programable.
 
Lizar:
Tal y como yo lo veo, no tiene sentido que los desarrolladores introduzcan una función isNewBar estándar, ya que se trata de un caso especial de OnTick. Y estoy de acuerdo con Prival en que se trata de un evento programable.

Probablemente sea incluso necesario introducir un procesamiento estándar de este evento. Al menos a nivel experto.

Al menos es más conveniente desde el punto de vista del multithreading en el trabajo. Al fin y al cabo, cualquier procesamiento a nivel de terminal puede organizarse en varios hilos, pero en MQL tendremos un solo hilo.

En mi opinión, el procesamiento estándar será especialmente ventajoso para el trabajo multidivisa.

PS

En general, los desarrolladores deberían pensar en cambiar los manejadores de eventos existentes, los mismos OnTrade() y OnTick().

Yo personalmente preferiría verlos al menos un símbolo como parámetro ...

 

También cambiaría OnTick(), o más bien su lógica. Ahora este evento se genera si un nuevo tick en el par de divisas en el que el Asesor de Expertos está colgando. Desde el punto de vista del análisis multidivisa, sería mejor (creo yo) generar este evento si hay un nuevo tick en cualquier instrumento.

Es decir, la matriz ha cambiado (revisión del mercado) el evento newTick() se genera con indicando lo que ha cambiado en la matriz. Sería más conveniente sincronizar todo .

Rara vez, pero hay situaciones en las que las cotizaciones de un instrumento se congelan durante mucho tiempo (vi una situación así en el yen). Y si el Asesor Experto se cuelga en este par, estás en problemas si no has traducido todo el código en OnTime().

 
Interesting:

Probablemente sea incluso necesario introducir un tratamiento estándar de este evento. Al menos a nivel experto.

Al menos es más conveniente desde el punto de vista del multihilo en el trabajo. Al fin y al cabo, cualquier procesamiento a nivel de terminal puede organizarse en varios hilos, y de MQL obtendremos un solo hilo.

Sí, estoy de acuerdo con la cuestión de multithreading. Pero se trata de una cuestión general de procesamiento de cualquier evento, no específicamente NewBar.
 
Prival:

Es decir, la matriz ha cambiado ( visión general del mercado ), el evento newTick() se genera con indicando lo que ha cambiado en la matriz. Sería más conveniente sincronizarlo todo.


Tal evento se puede recibir usando TimeCuurent(), pero qué hacer con él además, cómo sincronizarlo es una cuestión.
 
Prival:

También cambiaría OnTick(), o más bien su lógica. Actualmente, este evento se genera si un nuevo tick en el par de divisas en el que el Asesor de Expertos está colgando. Desde el punto de vista del análisis multi-moneda, sería mejor (Creo que sí) para generar este evento si un nuevo tick para cualquier instrumento.


Bueno, me refiero a lo mismo, en OnTick() y OnTrade() al menos es necesario añadir el nombre del símbolo como parámetro (en OnTrade() también es deseable añadir el tipo de evento).

En este caso OnTick(), por ejemplo, se puede generar cada vez que un nuevo tick en uno de los símbolos (instrumentos) presentes en la visión general.

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