Indicador, Necesita asesoramiento sobre el autocontrol de la DISTANCIA entre textos (MT-4) - página 2

 
No hay una buena solución a este problema en MT4. Una opción es utilizar el ATR con un periodo de 100 barras (y el desplazamiento 1), la otra opción es escribir una función que devuelva puntos dependiendo del marco temporal.
 
Dmitry Fedoseev:
No hay una buena solución a este problema en MT4. Una opción es utilizar el ATR con un periodo de 100 barras (y el desplazamiento 1), la otra opción es escribir una función que devuelva puntos dependiendo del marco temporal.

En mi opinión, un lienzo es una solución universal absolutamente multiplataforma que tiene grandes oportunidades en comparación con los objetos gráficos.

 

¿Por qué firmar todo con palabras?
Esto sobrecargaría la percepción: mucho texto en el gráfico.

Yo haría iconos de caracteres diferentes para cada patrón (y seleccionaría un código de caracteres en los parámetros).

 
Así es, el orden en el calendario es importante. Pero hay que hacerlo rápidamente sin dejarse llevar por los adornos, y dirigiendo tus energías hacia ya sabes dónde
 

cómo hacerlo sin un lienzo, pero según los mismos principios:

1. Necesitará la altura actual de la ventana del gráfico en píxeles para determinar la sangría actual: ChartGetInteger con la propiedad CHART_HEIGHT_IN_PIXELS

2. para determinar el inicio del dibujo del gráfico: ChartTimePriceToXY

3. ¿Cómo determinar qué zona del gráfico estamos viendo ahora? ChartGetInteger con las propiedades CHART_VISIBLE_BARS y CHART_FIRST_VISIBLE_BAR

4. todo sucede en OnChartEvent. estamos dibujando objetos como OBJ_LABEL

En realidad, me recuerda a un viejo quejido (incluso el mío) sobre un texto de varias líneas... eh, si sólo...

 
Igor Zakharov:

cómo hacerlo sin un lienzo, pero según los mismos principios:

1. Necesitará la altura actual de la ventana del gráfico en píxeles para determinar la sangría actual: ChartGetInteger con la propiedad CHART_HEIGHT_IN_PIXELS

2. para determinar el inicio del dibujo del gráfico: ChartTimePriceToXY

3. ¿Cómo determinar qué zona del gráfico estamos viendo ahora? ChartGetInteger con las propiedades CHART_VISIBLE_BARS y CHART_FIRST_VISIBLE_BAR

4. todo sucede en OnChartEvent. dibujamos objetos como OBJ_LABEL

En realidad, me recuerda a un viejo quejido (incluido el mío) sobre un texto de varias líneas... eh, si sólo...

¿Le parece que Canvas es un monstruo? Y por eso es necesario crear un Frankenstein...
Un comentario de varias líneas se hace de una vez.
 
Artyom Trishkin:
El comentario de varias líneas se hace a la vez.

¿comentario? ¿es el de la esquina superior izquierda? ¿cómo ayuda al autor del tema?

¿o te refieres a alguna forma de imprimir un texto de varias líneas vinculado al precio/tiempo? no recuerdo que exista esa posibilidad en foursquare. ¿puedes enseñarme?

No entiendo la parte del lienzo y el monstruo...

por cierto, aquí hay un ejemplo en lienzo por Nikolay, casi exactamente lo que el autor necesita, ediciones mínimas:

https://www.mql5.com/ru/forum/329224#comment_14363671

 
Igor Zakharov:

cómo hacerlo sin un lienzo, pero según los mismos principios:

1. Necesitará la altura actual de la ventana del gráfico en píxeles para determinar la sangría actual: ChartGetInteger con la propiedad CHART_HEIGHT_IN_PIXELS

2. para determinar el inicio del dibujo del gráfico: ChartTimePriceToXY

3. ¿Cómo determinar qué zona del gráfico estamos viendo ahora? ChartGetInteger con las propiedades CHART_VISIBLE_BARS y CHART_FIRST_VISIBLE_BAR

4. todo sucede en OnChartEvent. estamos dibujando objetos como OBJ_LABEL

En realidad, me recuerda a un viejo quejido (incluido el mío) sobre un texto de varias líneas... eh, si sólo...

Es mejor escribir una función que devuelva la distancia en precio, pero que corresponda a un número determinado de píxeles. Luego en el OnChartEvent debemos recorrer la parte visible del gráfico y ajustar las distancias a las etiquetas de texto. Con este enfoque, la cantidad de modificaciones es mínima y la diferencia entre el indicador y el ordinario también es mínima.

 
Artyom Trishkin:

En mi opinión, kanvas es una solución universal absolutamente multiplataforma, que tiene enormes posibilidades en comparación con los objetos gráficos.

No. Nadie lo necesita, salvo un pequeño puñado de entusiastas. Y la mayoría de las personas lo necesitan para que todo sea simple, sencillo y comprensible.

 
Dmitry Fedoseev:

No. Nadie lo necesita, salvo un pequeño puñado de entusiastas. Y la mayoría de la gente quiere que sea simple, sencillo y fácil de entender.

Es más fácil y claro escribir/dibujar todo lo inventable-movible-ajustable en el lienzo con un objeto gráfico. El objetivo es sencillo. Pero su proporción es un desastre. Pero el kanvas también es un objeto, pero un objeto por vela - sólo tienes que crear un lienzo y dibujar allí todo lo que necesites. No tiene que pensar en cómo guardar el espacio entre líneas cuando cambia el período del gráfico y la escala vertical.