Lectura de los búferes de los indicadores fijados en el gráfico - página 8

 
comp:

La respuesta (citada en su totalidad):

¡Maldita sea! Puedes ver el indicador en el gráfico, pero no te dejaremos obtener sus valores - una vez más has confirmado tu papel.

No entiendo a qué viene tanto alboroto. Ya está escrito, ¿y si hay varios indicadores similares en el gráfico? ¿De cuál debemos leer? ¿Tienen que estar numerados?

En segundo lugar, ¿tiene usted idea de hasta qué punto tendremos que modificar todo el sistema de trabajo con indicadores para satisfacer esta moda innecesaria?

Sólo podemos pensar que le daremos un retoque y recortaremos el código aquí y allá y todo funcionará. No lo hará, por desgracia.

No es necesario tocar algo que funciona de forma estable.

 
Andrey Khatimlianskii:

Entonces, ¿por qué compararlas?

La misma razón que la comparación de MAs y RSIs lógicamente diferentes, por ejemplo.
 
Alexey Volchanskiy:

No entiendo por qué tanto alboroto. Después de todo, ya se ha escrito, ¿qué pasa si hay varios indicadores iguales en el gráfico? ¿De cuál debemos leer? ¿Necesitamos numerarlos de alguna manera?

Ya están numerados incluso en MT4. VerChartIndicatorName y ChartIndicatorsTotal.

En segundo lugar, ¿tiene usted idea de hasta qué punto tendremos que reelaborar todo el sistema de trabajo con indicadores para satisfacer esta moda innecesaria?

No tendremos que rehacer nada. Puedes hacerlo fácilmente con GetPtr sin interferir con la arquitectura. Sólo tenemos que añadir la posibilidad sin usar DLL, excluyendo la escritura externa en el buffer.

iCustomChart

Devuelve elvalornuméricodel indicador personalizado especificado en el gráfico correspondiente.

double  iCustomChart( 
   long  chart_id,      // идентификатор графика (аналогичный, как в ChartIndicatorName)
   int   sub_window,    // номер подокна (аналогичный, как в ChartIndicatorName)
   int   index,         // индекс индикатора в списке индикаторов, добавленных к данному подокну графика (аналогичный, как в ChartIndicatorName)
   int   mode,          // источник данных (аналогичный, как в iCustom)
   int   shift          // сдвиг (аналогичный, как в iCustom)
   );

Parámetros

chart_id

[ID de la carta. 0 significa el gráfico actual.

subventana

[in] Número de subventana del gráfico. 0 significa la ventana principal del gráfico.

índice

[in] Índice del indicador en la lista de indicadores. Los indicadores están numerados a partir de cero, es decir, el primer indicador de la lista tiene un índice cero. El número de indicadores de la lista puede obtenerse llamando aChartIndicatorsTotal().

modo

[in] Índice de la línea indicadora. Puede tomar valores de 0 a 7 y corresponde al índice especificado al llamar a la función SetIndexBuffer().

turno

[in] Índice del valor obtenido del buffer del indicador (desplazamiento relativo a la barra actual por el número de períodos especificado hacia atrás).

Valor devuelto

Valor numérico del indicador personalizado especificado en el gráfico correspondiente.

 
comp:
Por la misma razón, por qué comparar lógicamente diferentes MAs y RSIs, por ejemplo.

¿MA basada en los precios o MA del RSI?

Si por los precios, entonces por supuesto - a través de un EA (es el EA que combina lógicamente estos 2 indicadores diferentes).
Si por RSI, entonces en un indicador (ya contendrá información sobre ambos RSI y MA).

¿O el significado de algún constructor universal, que podría tomar cualquier indicador adjunto al gráfico y analizarlo?
En este caso puede ser más conveniente. Pero todavía no está claro, por qué hacer la interactividad en los indicadores, si quieres analizarlos desde el analizador...

 
Andrey Khatimlianskii:

¿O hay algún tipo de constructor universal que pueda tomar cualquier indicador adjunto a un gráfico y analizarlo?

Entonces, tal vez sería más conveniente. Pero todavía no está claro por qué hacer la interactividad en los propios indicadores, si quieres estudiarlos desde el analizador...

Los propios indicadores son objetos cuya interactividad está diseñada según la lógica de su construcción. No está claro por qué un indicador debe ser estático.

Si tomamos un ejemplo completamente tonto, tomemos un indicador de ticks. Supongamos que escribe algunos datos de ticks en el buffer. Y sólo utiliza OnCalculate.

Mientras está colgado en el gráfico, ha recogido algunos datos en sus buffers. No hay necesidad de escribirlos en un archivo (se olvidó o no adivinó - secundario).

Los datos que ves en el gráfico te parecen interesantes y quieres volcarlos en un archivo. ¿Cómo se hace? - ¡No!

Usted ve los datos, pero no puede leerlos. A menos que analice la ventana CTRL+D a través de WinAPI. Y ojo, sin interactividad.

 
comp:

Los indicadores son en sí mismos objetos, cuya interactividad está prevista por la lógica de su construcción. No está claro por qué un indicador debe ser estático.

Si tomamos un ejemplo completamente tonto, tomemos un indicador de ticks.

En cuanto a la interactividad, estoy de acuerdo.
Pero el ejemplo vuelve a ser demasiado rebuscado (nos olvidamos/desconocemos/no hemos pensado en absoluto).

Convengamos en que para los indicadores interactivos esta posibilidad sería útil.
Pero en la realidad actual, tenemos que aplicar todo a través de la EA.

 
Andrey Khatimlianskii:

Pero el ejemplo vuelve a ser chupado de la mano (olvido/descuido/no pensar en absoluto).

Es decir, está bien cuando compras un indicador en el Mercado, pero no puedes obtener sus valores programáticamente. Sólo puedes mirarlo. Introdúcelo en tu Asesor Experto - maldición.

 
comp:

Es decir, se puede comprar un indicador en el mercado, pero no se pueden obtener sus valores mediante programación. Sólo puedes mirarlo. Ponerlo en un EA es una cagada.

se puede pegar a través de iCustom, pero el código del indicador, obtenido del Mercado, siempre será un fastidio pegarlo en el Asesor Experto
 
Alexander Bereznyak:
puede insertar a través de iCustom
Y conseguir en algunos de los casos que se han tratado ampliamente aquí, en absoluto lo que se ve en el gráfico.
 
comp:
Y en algunos casos, que se han discutido ampliamente aquí, no es lo que se ve en el gráfico.

el indicador vuelve a dibujar no sólo la barra de cero, sino también la historia, el indicador no sólo tiene un valor cero, sino incluso un valor negativo, porque engaña - los he visto, y no sólo uno

y he visto gente engañada por estos indicadores