Discusión sobre el artículo "El tipo de dibujado DRAW_ARROW en indicadores de símbolo y periodo múltiple"

 

Artículo publicado El tipo de dibujado DRAW_ARROW en indicadores de símbolo y periodo múltiple:

En este artículo nos ocuparemos de dibujar los indicadores de símbolo y periodo múltiple. Asimismo, mejoraremos los métodos de la clase para representar correctamente las flechas que muestran los datos de los indicadores de flecha calculados sobre un símbolo/periodo que no se corresponde con el símbolo/periodo del gráfico actual.

Continuamos con el tema de los indicadores de símbolo y periodo múltiple. El último artículo de esta serie trataba de los búferes de color en los indicadores de símbolo y periodo múltiple. Hoy mejoraremos la clase de indicador múltiple para que pueda trabajar con indicadores de flecha.

Los indicadores de flecha no implican la presencia constante de datos en su búfer de dibujado. Cuando aparece la flecha, hay un valor en el búfer, mientras que otras veces hay un valor vacío establecido en el búfer. Normalmente es EMPTY_VALUE, pero es posible establecer cualquier valor para un búfer que esté "vacío" y no aparezca en el gráfico. Esto podrá hacerse utilizando una función

PlotIndexSetDouble(buffer_index,PLOT_EMPTY_VALUE,empty_value);

donde buffer_index será el índice del búfer al que se asigna un valor vacío, mientras que empty_value será la magnitud del "valor vacío" que se asignará a ese búfer.

En los indicadores de periodo múltiple, donde el búfer se rellena de datos con interrupciones, deberemos tener en cuenta la presencia de valores vacíos donde no hay flechas, y no escribir estos valores vacíos en la barra del gráfico donde ya está escrito un valor no vacío. En caso contrario, la flecha colocada anteriormente será borrada por el nuevo valor en vacío. Esto será cierto si los datos del indicador calculados en un marco temporal inferior se copian en un marco temporal superior.

Lo explicaremos con un ejemplo. En la imagen del gráfico M5, las barras del gráfico M15 están marcadas:


Aquí vemos los fractales del gráfico M5 que deben fijarse en las barras del gráfico M15.

Autor: Artyom Trishkin

 

Un trader me escribió una vez que estaba desarrollando un "fractal rápido", como casi un grial.

Y yo le respondí: "¿Por qué no utilizar fractales de M5 a M15? Ésa es la historia.

 
Vitaliy Kuznetsov grial.

Y yo le escribí: "¿Por qué no utilizar fractales de M5 a M15? Esa es la historia.

En principio, un fractal no puede ser rápido ni lento :)

Hasta que no se forman dos barras desde arriba, no hay fractal, o mejor dicho, hay algo, pero no es un fractal.


 
Vitaly Muzichenko #:

En principio, un fractal no puede ser rápido ni lento :)

Hasta que no se forman dos barras desde arriba - no hay fractal, o más bien hay algo, pero no es un fractal


Artem, he insertado su panel en el Asesor de Expertos, ¿qué debo hacer para que funcione en el probador para la prueba visual?

 
Konstantin Seredkin #:

Artem, he insertado tu panel en el Expert Advisor, ¿qué debo hacer para que funcione en el tester en pruebas visuales?

La respuesta depende de lo que necesite ver en el panel durante la prueba visual.

 
Artyom Trishkin #:

La respuesta depende de lo que necesite ver en el panel al realizar la prueba visual.

Por ejemplo, su Asesor Experto de los artículos anteriores TestTrendADX, si lo ejecuta en visual, los datos se muestran sólo después de la inicialización, entonces no se muestra nada.



Si lo haces así, empiezan a mostrarse los datos de la barra actual y los datos del indicador

//+------------------------------------------------------------------+
//| Función tick experto|
//+------------------------------------------------------------------+
void OnTick()
  {
//---
//--- Mostrar los datos de la barra actual en el panel
   DrawData(0,TimeCurrent());
  }



Pero no sé si lo hago correctamente o no.

 
Konstantin Seredkin #:

Bueno, por ejemplo, su Asesor Experto de los artículos anteriores TestTrendADX, si lo ejecuta en visual, los datos se muestran sólo después de la inicialización, entonces no se muestra nada.



Si lo haces así, se mostrarán los datos de la barra actual y los datos del indicador6



No se si lo estoy haciendo bien o no.

El problema es que OnChartEvent() no funciona en el modo visual del tester en Expert Advisors, en los indicadores sólo funcionan los eventos de click del ratón sobre el gráfico. En los indicadores de prueba que comentas, el panel muestra los datos bajo el cursor del ratón. Es decir, el programa rastrea la ubicación del cursor y envía datos al panel desde la barra que está bajo el cursor. En el modo visual del comprobador, debe hacer clic en la barra de la que desea obtener datos en el panel. O bien obtener datos en OnTick(), pero sólo de la barra actual, como ha hecho usted.

 
Artyom Trishkin #:

El problema es que OnChartEvent() no funciona en el modo visual del probador en Expert Advisors, sólo los eventos de clic del ratón en el gráfico funcionan en los indicadores. En los indicadores de prueba de los que hablas, el panel muestra los datos bajo el cursor del ratón. Es decir, el programa rastrea la ubicación del cursor y envía datos al panel desde la barra que está bajo el cursor. En el modo visual del comprobador, debe hacer clic en la barra de la que desea obtener datos en el panel. O bien obtener datos en OnTick(), pero sólo de la barra actual, como ha hecho usted.

Todo solucionado, relee el primer tema.

De hecho, para sacar mi información al panel, sólo necesito un manejador de eventos y llamar a DrawData() en OnTick() y todo funciona.

Gracias, llevo mucho tiempo buscando el panel más sencillo para dar salida a la información de depuración en él, porque por alguna razón la velocidad de las pruebas en la visualización baja muchas veces a través de Comment(), la velocidad a través del panel es como si fuera una prueba sin él.

 
Konstantin Seredkin #:

Todo solucionado, relee el primer hilo.

De hecho, para mostrar mi información en el panel, sólo necesito un controlador de eventos y llamar DrawData() En OnTick() y todo funciona.

Gracias, llevo mucho tiempo buscando el panel más sencillo para sacar información de depuración en él, porque por alguna razón la velocidad de las pruebas en visualización baja muchas veces a través de Comment(), la velocidad a través del panel es como si fuera una prueba sin él.

Bien. Me alegro de que te hayas dado cuenta por ti mismo

 
Artyom Trishkin #:

Bien. Me alegro de que lo descubrieras por tu cuenta

Me disculpo, tal vez fuera de tema, he estado siguiendo sus temas durante mucho tiempo, usted escribió que cuando llegue el momento, va a crear un robot de ejemplo en su biblioteca que sobre su base sería claro qué y dónde insertar, para utilizar plenamente y recoger algoritmos.

El tiempo no ha llegado todavía? Acabo de ver los temas sobre la biblioteca ha terminado.

 
Konstantin Seredkin #:

Pido disculpas, tal vez fuera de tema, he estado siguiendo sus hilos durante mucho tiempo, usted escribió que cuando llegue el momento, va a crear un robot de ejemplo en su biblioteca que sobre su base sería claro qué y dónde insertar, para utilizar plenamente y recoger algoritmos.

El tiempo no ha llegado todavía? Acabo de ver los temas sobre la biblioteca han terminado.

En la biblioteca - en la continuación con los gráficos, mientras que el desarrollo suspendido debido a un error desagradable que se manifiesta en el parpadeo periódico de las partes ocultas de los objetos. Hasta que encuentre la causa, no debo hacer gráficos, a fin de no acumular errores. Pero el resto de las características de la librería continuarán pronto. Y luego llegaremos a los ejemplos.