Características del lenguaje mql5, sutilezas y técnicas - página 165
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
Sí, tengo presente la lectura de la historia.
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Bibliotecas: Easy Canvas
Nikolai Semko, 2020.02.17 05:15
Quiero aclarar un punto importante para los programadores interesados en el funcionamiento del kanvas en modo tester.
Un conocido programador de esta comunidad se dirigió a mí con esta pregunta:
- ¿Por qué en el modo de prueba mi panel, creado en objetos, se redibuja mucho más rápido que en el lienzo, mientras que en el modo normal mi panel se dibuja a velocidad normal en el lienzo?
He comprendido la razón de ello y he encontrado la solución al problema.
El problema es que el redibujado de los objetos va acompañado del redibujado de toda la pantalla, mientras que la pantalla en el probador se redibuja con una frecuencia no superior a 30 fotogramas por segundo.
Los objetos son, en definitiva, el mismo lienzo (interno), pero cuando se cambian las propiedades del objeto, el lienzo del objeto no se genera (no se recalcula), sino que se genera sólo cuando se actualiza la pantalla (ChartRedraw), lo que ocurre en el probador (y en modo normal, también) no más a menudo de lo que nuestro ojo puede distinguir los cambios, es decir, no más a menudo que ~ 32 cuadros por segundo.
Supongamos que el panel cambia cada tick. Entonces el lienzo por defecto también se redibujará cada tick, pero el redibujado en el probador sigue siendo no más frecuente que ~30 mseg (~30 fps).
En otras palabras, el lienzo se volverá a calcular mucho más a menudo de lo que realmente se muestra en la pantalla, lo que resulta en un uso desproporcionado de recursos.
La solución a este problema sería asegurar que el lienzo se recalcule y redibuje no más a menudo que cada 15-30 milisegundos de tiempo de ordenador, y entonces no habrá ciclos innecesarios de recálculo vacío.
Por ejemplo, así:
Si, por ejemplo, quiero crear el archivo "EURUSD.txt" (símbolos grandes) y ya existe "eurusd.txt" (símbolos pequeños) en el disco, el archivo tendrá el mismo nombre que antes.
Además, cuando guardo EURUSD TicksLongOpt.set, se guarda eurusd tickslongopt.set. Después tengo que cambiarle el nombre. Hay un montón de pequeñas cosas molestas como esa.
Además, cuando guardo EURUSD TicksLongOpt.set, se guarda eurusd tickslongopt.set. Después tengo que cambiarle el nombre. Después tengo que cambiarle el nombre. Hay muchas cositas así de molestas.
Creo que si primero borro y luego creo, todo irá bien.
Creo que si borras primero y luego creas, estarás bien.
No, me refiero a la creación de un nuevo archivo, específicamente al guardar desde el diálogo de la terminal. Si no funciona para todos, entonces depende de algo más. Tengo Win7, en todo caso.
No, me refiero a la creación de un nuevo archivo, específicamente al guardar desde el diálogo de la terminal. Si no funciona para todos, entonces depende de algo más. Tengo Win7, en todo caso.
Me refería a las funciones FileOpen y FileSave.
Me refería a las funciones FileOpen y FileSave.
Sí, recién ahora me di cuenta que está fuera de lugar, el tema es sobre el lenguaje...
Ordenar fácilmente un conjunto de estructuras
Aplicación
Resultado
No funciona, ¿puede actualizarlo? Las declaraciones de plantillas no están permitidas en las clases locales TestarrSort.mq5 81 3
No funciona, ¿puede actualizarlo? Las declaraciones de plantillas de escritura no están permitidas en las clases locales TestarrSort.mq5 81 3
Desgraciadamente, la lengua se ha cortado. Este código no funciona.
Pero puede probar una variante alternativa.
SZZ Este es otro ejemplo de uso.