Galería de interfaces de usuario escritas en MQL - página 70
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Puedes entenderlo.
Tema 14.3: Indicación de valores peligrosos mediante el parpadeo de partes de elementos (marcos, bases, texto, deslizadores y paneles deslizantes).
El parpadeo de los elementos es un complemento excelente de la indicación por colores que señala el paso de los parámetros a la zona de valores peligrosos. La aplicación de la nueva solución es similar a la anterior, pero si la indicación de color funciona según el principio de que cuanto más se acerca el valor al valor crítico, más brillante es el color, el parpadeo sólo aumenta la frecuencia de cambio del color inicial con el color fijado para el parpadeo. El usuario puede ajustar programáticamente el retardo del parpadeo, disminuyéndolo gradualmente hasta 25 ms o aumentándolo hasta 2,5 segundos. En este caso, ambos mecanismos pueden funcionar simultáneamente. El color pasa del verde claro al rojo vivo y burdeos, y el parpadeo aumenta de velocidad. Un mecanismo no interfiere con el segundo. A continuación, veremos ejemplos prácticos.
*Importante: el parpadeo se activa independientemente de las funciones de indicación del color. Los dos mecanismos no están técnicamente relacionados y pueden funcionar en paralelo o por separado.
Para implementar el parpadeo, se han añadido nuevas propiedades a los elementos interactivos:
Añadidas nuevas propiedades para controlar la velocidad y la parada del parpadeo:
Resumamos lo anterior:
Mañana pasaremos a los ejemplos prácticos.
Hoy sólo una pequeña demo para entender de qué estamos hablando.
Desafortunadamente, hay lags al grabar. El procesador se carga. Pero la demo muestra que los elementos parpadean de forma asíncrona y a diferentes velocidades. Diferentes partes de los elementos también parpadean. Todo esto se establece mediante programación. Y la pestaña de la barra de tareas encontró automáticamente el elemento que parpadeaba más rápido y se volvió azul. Luego, cuando el elemento empezó a parpadear con menos frecuencia, encontró el otro elemento que parpadeaba más rápido y se volvió rojo.
Mañana veremos esto con más detalle.
P.D. También hablaremos de las opciones para utilizar estas funciones tan útiles.
Continuación del tema de ayer...
Hoy resumiremos conceptualmente y terminaremos el tema de la intermitencia de los elementos.
Ayer sólo traté la intermitencia en el contexto de la señalización de valores peligrosos, pero la aplicación puede ser mucho más amplia que eso. He aquí un ejemplo:
Imaginemos un Asesor Experto multidivisa que analiza la situación de varios mercados. Supongamos que selecciona los puntos óptimos de entrada/salida según un conjunto de criterios complejos. El Asesor Experto funciona en modo semiautomático y el operador no puede o no quiere programar toda la lógica de la estrategia de negociación. Su robot supervisa los mercados, recopila datos e informa sobre los puntos importantes. El trabajo del experto se limita a analizar y mostrar los resultados en tablas y diagramas. La decisión final sobre las operaciones la toma una persona.
En esta variante, la actividad comercial consiste en observar flujos de datos en tiempo real y empaquetar la serie de valores en curso en parámetros personalizados. Estos últimos ayudan a escalar el conocimiento de la situación.
Sin embargo, el compromiso en vivo requiere decisiones oportunas. El problema surge cuando los resultados de los análisis se muestran en distintas ventanas a través de múltiples vistas gráficas. La cantidad de información que requiere atención crece y el foco de atención se divide. Como resultado, la perspectiva del mercado se nubla en la mente del operador y disminuye la eficacia de su trabajo. Llega la fatiga.
En este caso, los elementos intermitentes son una buena ayuda:
Pasemos ahora a un desglose práctico de la nueva funcionalidad:
//----------------------------------------------------------------------------------------------------------
1. Orden de las acciones preparatorias:
Ahora encontremos el caso del botón "Start" en el archivo API y escribamos las llamadas de las funciones Blink_start() y Blink_stop() en el evento de pulsar y presionar el botón:
Pasemos a llenar de contenido las funciones:
1. Necesitamos que el marco del botón "Start" parpadee. Escribamos una llamada para el parpadeo del marco como se muestra en el código siguiente. El identificador de la propiedad de parpadeo del marco del botón es p1_BLINK_frame. Especifiquemos el color del parpadeo y el objeto del parpadeo.
2. Ahora vamos a implementar la desactivación del parpadeo cuando se suelta el botón. El identificador p1_BLINK_STOP se encarga de desactivar el parpadeo . No hace falta poner nada entre paréntesis excepto él.
Vamos a comprobar el resultado:
3. Activemos el parpadeo del texto del botón en lugar del marco. El identificador de la propiedad pn_BLINK_text es el responsable del parpadeo del texto:
Resultado: el texto del botón parpadea en azul y deja de parpadear cuando se pulsa el botón.
4. Activemos el parpadeo de la base del botón. El identificador de la propiedad pn_BLINK_base es el responsable de la base:
Resultado: la base del botón parpadea en rojo y deja de parpadear cuando se pulsa.
Ahora combinemos el parpadeo del marco del botón y de su texto:
Resultado: elmarco del botón y el texto del botón parpadean sincrónicamente en colores diferentes, como estaba previsto.
5. 5. Conectemos otros elementos de esta ventana al parpadeo:
Escribamos también la desactivación del parpadeo dentro de la función Blink_stop( ) :
Resultado: los nuevos elementos se incluyen en Blink_start() y Blink_stop() y parpadean según lo previsto.
6. Hagamos que el marco de la ventana parpadee cuando se pulse el botón. (Desactivemos temporalmente el parpadeo de los elementos retrasados).
Resultado: el marco de la ventana parpadea como debe.
*Importante: todos los elementos considerados y el marco de la ventana parpadean a la velocidad por defecto.
Más adelante regularemos la velocidad de parpadeo de los elementos con el tirador deslizante y el campo con botones.
7. Vinculemos la velocidad de parpadeo al valor del campo con botones y deslizador. Todos los elementos y el marco de la ventana parpadearán simultáneamente, y la velocidad de parpadeo será fijada manualmente por estos elementos.
Te recuerdo que la velocidad de parpadeo depende del retardo pn_BLINK_DELAY.
Para resolver el problema, hagamos lo siguiente:
A ñadimos el parpadeo del marco de la ventana dentro de la función Blink_start(): .
Añadimos la desactivación del parpadeo del marco de la ventana dentro de la función Blink_stop():
Escribimos la función Blink_delay():
Llamamos a la función Blink_delay() en el evento de los elementos slider y input field, y le pasamos el valor actual de los elementos:
*Nota importante: resultó que es imposible cambiar la velocidad de parpadeo de los elementos checkbox y lista desplegable. Esta velocidad es siempre igual a 20 (medio segundo). Esto se hizo intencionadamente, pero probablemente lo cambie en el futuro. Los otros elementos pueden cambiar la velocidad de parpadeo.
Escribamos una llamada a la función Blink_delay() desde el evento del elemento "Spin_the_value" (el campo con botones). El campo está conectado al deslizador, así que no hay necesidad de poner la llamada en el caso del deslizador. La conexión funcionará y el deslizador sin llamada directa cambiará la velocidad de parpadeo a través del campo con botones:
Resultado: el campo con botones y el deslizador cambian la velocidad de parpadeo de los elementos de la ventana.
Resultado:
Considero este tema agotado.
Siguiente en la lista - cancelación de los valores introducidos pulsando el botón "Cancelar".
La próxima versión saldrá el lunes o martes de la semana que viene. La actualización incluirá las funciones indicadas anteriormente, así como la cancelación/confirmación de la introducción de parámetros en las ventanas de configuración. Además, los catálogos se traducirán al inglés, y el código sufrirá retoques y correcciones a partir de una lista recopilada de problemas identificados.
El trabajo se descuida, o simplemente tienes una "temporada de terciopelo", ¿unas vacaciones? Eso es sagrado.
Tal vez continúe si hay demanda pública.
Hay demanda. El hecho de que la mayoría de la gente guarde silencio sobre el tema es normal. La gente acecha y espera. Hasta ahora no se ha llevado a cabo ningún gran proyecto. Siempre es difícil sacarlo adelante solo y sin financiación. Hasta ahora sólo conozco un proyecto llevado a buen puerto por una sola persona: "VLADIK BRUTAL" en Steam.
La demanda está ahí. El hecho de que la mayoría guarde silencio sobre el tema es normal. La gente está al acecho. Hasta ahora no se ha llevado a cabo ningún gran proyecto. Siempre es difícil sacarlo adelante solo y sin financiación. Hasta ahora sólo conozco un proyecto llevado a buen puerto por una sola persona: "VLADIK BRUTAL" en Steam.