Discusión sobre el artículo "Indicadores basados ​​en la clase CCanvas: Rellenando canales con transparencia"

 

Artículo publicado Indicadores basados ​​en la clase CCanvas: Rellenando canales con transparencia:

En este artículo, analizaremos métodos utilizados para crear indicadores personalizados que se dibujan con la ayuda de la clase CCanvas de la Biblioteca estándar, y también consideraremos las propiedades de los gráficos para transformar coordenadas. Prestaremos especial atención a los indicadores que rellenan de transparencia el área entre las dos líneas.

Ahora haremos unas pequeñas actualizaciones para que la función funcione.

  1. Actualizaremos nuestra función Redraw eliminando los parámetros añadidos en el indicador anterior y agregando la función DrawFilling.
  2. Añadiremos nuestra función Redraw a OnCalculation para actualizar el dibujo cuando cambien los valores del indicador.
  3. Cambiaremos el nombre del objeto transmitido como parámetro al llamar a CreateBitmapLabel.

Ahora veremos el aspecto del gráfico con dos envoltorios con diferentes periodos y un objeto rectangular.

Envoltorios con CCanvas con canal alfa = 128

Autor: Samuel Manoel De Souza

 

Buenos días


¿Es realista pensar que al desplazar el gráfico, el marco sigue a las velas sin retraso como en el caso de los objetos?

 
Petr Zharuk #:

¡Que te diviertas!

¿Es realista pensar que al desplazar el gráfico, el marco sigue a las velas sin retraso como en el caso de los objetos?

Es posible trastear con OBJ_BITMAP, cuando la esquina superior izquierda del cuadro está ligada al precio-tiempo con solapamiento de la propia ventana, es decir, cuando el tamaño del lienzo es mayor que el tamaño de la propia ventana.
En este caso se puede conseguir una ausencia casi total de retardo.
Pero surge el problema de cambiar la escala vertical y el modelo de eventos se vuelve mucho más complicado.
Por eso yo personalmente no haría esto.
Hay otra alternativa - desactivar el gráfico nativo y formar uno propio en el lienzo. Pero es conveniente si no necesitas usar otros indicadores en este gráfico.

 

¡Gran trabajo Samuel!

Pero vi una situación aquí: al usarlo en mi indicador, cada vez que el eje PRECIOS se reescala, vemos que CANVAS no se actualiza.

Ver las imágenes:


y aquí, después de redimensionar manualmente la ventana y que todo se hubiera arreglado automáticamente, cuando la vela actual cruzaba los límites del gráfico provocando un reescalado completo de las velas, el CANVAS no volvía a reescalar, como debería:




Además, veo que la función DrawFilling consume mucho tiempo si la usamos dos veces, es decir, para trazar 2 colores entre tres líneas (ver arriba). Supongo que sería interesante si pudiéramos optimizar la rutina para la velocidad.

En cualquier caso, gran trabajo y artículo - ¡enhorabuena!