Cambio de fondo de pantalla por fechas - Visual Chart
Cuando trabajamos con gráficos desde Visual Chart, tenemos la posibilidad de distinguir visualmente cuando se produce un cambio de fecha entre barras accediendo a las propiedades del gráfico:
Efectivamente, con esta opción podemos distinguir entre barras de días distintos. Pero supongamos que queremos hacer alguna de las dos cosas siguientes:
1. Quiero ver el cambio de fecha pero también quiero mantener el color de las velas según criterio alcista/bajista.
2. Quiero ver el cambio de fecha pero no por día, sino por horas, meses o semanas.
Para poder aplicar alguna de estas opciones, tendríamos que partir desde otro método que también ofrece Visual Chart: En este caso, usaríamos un indicador que nos marcara el cambio de fecha según el criterio elegido (hora, día, semana o mes) y posteriormente aplicaríamos el estilo del indicador al gráfico para que nos cambie el fondo de pantalla según el criterio de dicho indicador. Vamos a ver a continuación cómo realizar este proceso.
El indicador Change for Date
Como decimos, lo primero que vamos a necesitar es un indicador que nos informe de cuando se produce un cambio de fecha. Para ello, vamos a partir del indicador Change For Date, el cual les ofrecemos y que pueden descargar desde el siguiente enlace:
Change for Date
Este indicador sencillamente dibuja el valor relativo al campo de fecha que especifiquemos: Si por ejemplo queremos visualizar el cambio de mes, el indicador pinta el valor numérico del mes asociado a cada barra:
Podemos elegir entre cuatro posibles cambios de fecha según el valor que le asignemos al parámetro SelectDateType, de modo que:
- Si vale 0 detecta el cambio de HORA.
- Si vale 1 detecta el cambio de DIA.
- Si vale 2 detecta el cambio de SEMANA.
- Si vale 3 detecta el cambio de MES.
Lo más interesante de éste indicador es que, internamente, lleva integrado un cambio en el estilo del fondo de pantalla según sea el valor del indicador.
Para poder asociar el estilo del indicador al gráfico, debemos acceder a las propiedades del indicador y seleccionar Estilo/Cotización/Color dependiente del indicador = Si y luego seleccionar Pintar fondo de ventana.
El resultado es el siguiente:
Si tienen dudas acerca de cómo configurar el gráfico para poder activar esta opción, pueden visitar el siguiente enlace donde se explica con más detalle este proceso: Aplicar estilo del indicador a un gráfico.
A través de esta posibilidad, como vemos, podemos observar el cambio de mes en el gráfico de un vistazo y mantener el color de las velas alcistas/bajistas.
Además, con sólo cambiar el parámetro SelectDateType, el fondo de pantalla cambia su color siguiendo el intervalo que se haya elegido:
Programación
El cambio de color lo conseguimos utilizando el método SetBackgroundColor propio de la clase OscUserApp.
Llamamos al método en cada barra y lo que hacemos es modificar el color de referencia cada vez que haya un cambio de fecha.
Definimos como variable global el campo CColor, al cual le asignamos un color base que mantenemos salvo cuando se produce el cambio de fecha:
Luego llamamos al método, pasándole el campo indicado:
Efectivamente, con esta opción podemos distinguir entre barras de días distintos. Pero supongamos que queremos hacer alguna de las dos cosas siguientes:
1. Quiero ver el cambio de fecha pero también quiero mantener el color de las velas según criterio alcista/bajista.
2. Quiero ver el cambio de fecha pero no por día, sino por horas, meses o semanas.
Para poder aplicar alguna de estas opciones, tendríamos que partir desde otro método que también ofrece Visual Chart: En este caso, usaríamos un indicador que nos marcara el cambio de fecha según el criterio elegido (hora, día, semana o mes) y posteriormente aplicaríamos el estilo del indicador al gráfico para que nos cambie el fondo de pantalla según el criterio de dicho indicador. Vamos a ver a continuación cómo realizar este proceso.
El indicador Change for Date
Como decimos, lo primero que vamos a necesitar es un indicador que nos informe de cuando se produce un cambio de fecha. Para ello, vamos a partir del indicador Change For Date, el cual les ofrecemos y que pueden descargar desde el siguiente enlace:
Change for Date
Este indicador sencillamente dibuja el valor relativo al campo de fecha que especifiquemos: Si por ejemplo queremos visualizar el cambio de mes, el indicador pinta el valor numérico del mes asociado a cada barra:
Podemos elegir entre cuatro posibles cambios de fecha según el valor que le asignemos al parámetro SelectDateType, de modo que:
- Si vale 0 detecta el cambio de HORA.
- Si vale 1 detecta el cambio de DIA.
- Si vale 2 detecta el cambio de SEMANA.
- Si vale 3 detecta el cambio de MES.
Lo más interesante de éste indicador es que, internamente, lleva integrado un cambio en el estilo del fondo de pantalla según sea el valor del indicador.
Para poder asociar el estilo del indicador al gráfico, debemos acceder a las propiedades del indicador y seleccionar Estilo/Cotización/Color dependiente del indicador = Si y luego seleccionar Pintar fondo de ventana.
El resultado es el siguiente:
Si tienen dudas acerca de cómo configurar el gráfico para poder activar esta opción, pueden visitar el siguiente enlace donde se explica con más detalle este proceso: Aplicar estilo del indicador a un gráfico.
A través de esta posibilidad, como vemos, podemos observar el cambio de mes en el gráfico de un vistazo y mantener el color de las velas alcistas/bajistas.
Además, con sólo cambiar el parámetro SelectDateType, el fondo de pantalla cambia su color siguiendo el intervalo que se haya elegido:
Programación
El cambio de color lo conseguimos utilizando el método SetBackgroundColor propio de la clase OscUserApp.
Llamamos al método en cada barra y lo que hacemos es modificar el color de referencia cada vez que haya un cambio de fecha.
Definimos como variable global el campo CColor, al cual le asignamos un color base que mantenemos salvo cuando se produce el cambio de fecha:
If IsChange Then
LastDate = .TimeEx
If CColor = RGB(255, 255, 255) Then
CColor = RGB(255, 255, 191)
Else
CColor = RGB(255, 255, 255)
End If
End If
Luego llamamos al método, pasándole el campo indicado:
.SetBackgroundColor 0, CColor
Comentarios
Publicar un comentario