Galería de interfaces de usuario escritas en MQL - página 61
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
Porque en el tester no llama a OnChartEvent
Muy bien. Pero en la misma situación en MT4 había posibles variantes. Implementé con éxito una de ellas. La interfaz funcionaba para un Asesor Experto ejecutándose en el modo normal, pero podía controlar su copia ejecutándose en el tester. La conexión se realizó a través de recursos. El EA en el gráfico recibió todos los datos durante el proceso de prueba. Con MT5, tal vez, la situación es más complicada. No estoy seguro de que sea posible establecer "comunicación" entre dos copias a través de recursos. Este tema requiere un estudio aparte.
4. navegar por listas de propiedades de elementos individuales.
//-----------------------------------------------------------------------------------------
Permíteme recordarte la lista de temas a tener en cuenta:
1. Orientación en la lista de intellisense y selección de la función de la ventana derecha.
2. 2. Abrir y cerrar ventanas programáticamente.
3. Orientarse en la lista de intellisense y seleccionar el elemento correcto en la ventana correcta.
4. Navegando a través de listas de propiedades de elementos individuales.
5. 5. Análisis sintáctico del nombre de un elemento y de una función envolvente de ventana.
6.devolver el valor del parámetro de un elemento seleccionado a una variable de su tipo. Considerar tres tipos de varios elementos diferentes.
7. Estableciendo valores en los parámetros de diferentes tipos de elementos. Veamos cómo aparecerán los valores en las ventanas de interfaz de estos elementos.
8. Devolver los valores de los parámetros de un elemento, modificando y reenviando ese valor a otro elemento. Consideremos diferentes tipos de elementos y valores, y probemos el reenvío entre diferentes tipos de elementos en diferentes ventanas.
9. Devolución del valor anterior (_V_LAST). Cuándo y para qué casos se requiere el último valor (no confundir con el valor actual).
10. Probar la configuración de estados ON/OFF/LOCK_ON/LOCK_OFF/LOCK/UNLOCK para diferentes tipos de elementos.
11. Intentemos enlazar y sincronizar los cambios de valores de elementos de diferentes tipos: por ejemplo, campo de entrada con botones y deslizador. Supongamos que cuando el valor de un elemento (manual o software) cambia, el valor en el segundo elemento cambia en consecuencia.
12. Intentemos restablecer mediante programación los límites de rango del deslizador y del campo de entrada con botones a través de funciones wrapper. No he tenido tiempo de probarlo, pero algo me sugiere que funcionará. No obstante, vamos a ver.
13. Intentemos devolver estados de elementos a través de funciones wrapper. Está incluido en la funcionalidad, pero no he tenido tiempo de probarlo. Así que veremos... El resultado es desconocido.
14. Vamos a obtener y establecer colores para el texto y las bases de los elementos. Podemos intentar asociar estos colores con algunos eventos simples o límites de valores.
15. Te cuento más sobre cómo navegar y leer la nueva impresión del archivo API.
//------------------------------------------
El color amarillo indica los temas que ya se han tratado.
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
Énfasis añadido:
Cada función envolvente sólo acepta propiedades con el prefijo escrito en su nombre.
Así es como se ve en la práctica el trabajo con listas(ponga corchetes al final, porque intellisense no funciona dentro de los corchetes de las funciones envoltorio):
El gif está ligeramente acelerado.
Como resultado de las llamadas mostradas en el gif, las funciones envoltorio devuelven los valores de las propiedades especificadas.
Antes de la llamada, debe declarar una variable para almacenar el valor de la propiedad o el resultado de la ejecución de la función. Más información al respecto en los siguientes temas.
5.
5.Análisis sintáctico del nombre del elemento y de la función envolvente de la ventana:
1. Nombre de la función envolvente del elemento:
Veamos el ejemplo de función de elemento de campo de entrada de texto EDIT: w7_s_p4_EDIT_Comment_1();
//-------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
/ / - ------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
2. El nombre de la función envolvente de la ventana:
Veamos otra función como ejemplo: w_15_Processing_the_data();
//-------------------------------------------------------------
) // - ------------------------------------------------------------
//-------------------------------------------------------------
Cabe señalar que la función de ventana aún no dispone de un prefijo para abrir la lista de propiedades. Esta función aparecerá definitivamente. Se generará una lista especial de propiedades de ventana a devolver/establecer, y se le asignará un prefijo. Asimismo, la función de ventana no contiene todavía una letra de tipo de retorno.
Por ahora, la función sólo puede abrir o cerrar una ventana.
Estos defectos se corregirán en la próxima versión.
Se recomienda resumir esta información de formación una vez en privado y por separado, de lo contrario inundará los comentarios en el futuro
6.devolver el valordel parámetro o propiedad a una variable del tipo requerido:
El tipo del parámetro del elemento(int, double o string) determina el tipo de la función del elemento.
Se sabe que las funciones de elemento devuelven el valor del parámetro con uno de estos tres tipos: int, double o string.
Sin embargo, las funciones también devuelven valores de propiedades...
Se plantea una situación en la que el tipo del valor del parámetro puede no coincidir con el tipo de las propiedades, que siempre son int. Resulta que las funciones devuelven valores de propiedades del tipo equivocado, por ejemplo double o string en lugar de int . Este inconveniente forzado es el precio de la universalidad de las funciones.
La tarea del usuario consiste en convertir por sí mismo el valor recibido al tipo requerido..
Permítanme hacer hincapié: el tipo principal de todas las propiedades de los elementos es int.
Veamos más detenidamente los ejemplos de pregunta-respuesta:
El tipo del valor del parámetro determina el tipo de la función del elemento.
Y si la función deslizante devuelve tipo int, significa que en la etapa de creación del elemento el propio usuario asignó números enteros a su parámetro o a sus propiedades - por ejemplo, colocó el rango del deslizador o los campos de entrada con botones dentro de valores enteros. .
Conclusión: La tarea del usuario es convertir los valores recibidos al tipo requerido.
Consideremos algunos ejemplos prácticos:
1.
//------------------------------------------------------------------------------------------------------------
2.
//------------------------------------------------------------------------------------------------------------
3.
Ver el resultado:
//------------------------------------------------------------------------------------------------------------
4.
//------------------------------------------------------------------------------------------------------------
5.
Ver resultado:
A continuación, probemos a obtener y establecer otras propiedades de elementos y parámetros. Intentemos también trabajar con el tipo double.
He seguido el código y lo he probado, y he encontrado un imprevisto que no se oculta automáticamente cuando la longitud de la cadena aleatoria es demasiado larga
w7_s_p4_EDIT_Comment_1("Some random text AAAAAAAA");