
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
¿Cuál es el problema de pensar en ello y mejorarlo drásticamente?
Ya hay una librería MQL4-MQL5 en modo "funciona y es genial" que se rasga las vestiduras. La gente lo utiliza seriamente para comparar la velocidad de ambas plataformas.
Y ahora se ofrece, no para pensar, sino para crear una nueva herramienta de vanguardia que se llevará a cabo diciendo "MT5 es más lento".
No entiendo nada. Sugiero, una vez más, si fxsaber tiene el tiempo y el deseo:
1. Hacer una biblioteca para MT5 (opcional para MT4), que desactive las funciones innecesarias (por ahora, los gráficos) en el modo probador/optimizador
2. Para ello, envuelva estas costosas funciones en defines y, dependiendo del modo de funcionamiento, habilítelas o deshabilítelas
No hay necesidad de ser tan emocional al respecto, nadie está atacando a MT5.
Existe una herramienta universal que permite medir el rendimiento del código en el probador con una línea. Conseguimos ver muchas cosas allí. En particular, que una sola ejecución es más lenta que una ejecución de optimización.
Sobre el tema del comentario, los promotores dieron su respuesta. Hasta ahora, yo mismo acelero la optimización en 1,5-2 veces por una sola línea.
Y la SD me habló de un matiz importante para el rendimiento.
Preocuparse por los microsegundos de ejecución de las funciones es razonable sólo en los modos de optimización. En tiempo real, no hay diferencia. Y el comentario no tiene ningún impacto en el rendimiento del Asesor Experto en tiempo real, aunque sea un orden de magnitud más lento.
Pero es un hecho que casi nadie escribe EAs de tal manera que se ejecuten lo más rápido posible en el probador.
Por favor, escriba una FAQ sobre cómo conseguirlo. Que todos los pensamientos estén en un solo lugar.
Hay un hilo genial sólo para eso. Tal vez alguien dedique mucho tiempo y esfuerzo a recopilar una sección de preguntas frecuentes basada en los numerosos mensajes de este hilo.
Y para el rendimiento, siempre uso la misma receta - TesterBenchmark + profiler. Y, por supuesto, encontrar un equilibrio razonable entre las características del probador y el comercio real. Así es como se escribe MT4Orders. El programa está orientado al trabajo rápido en el probador y al trabajo ideal en la cuenta real. Para ello debemos entender que hay algunas comprobaciones (a veces costosas) en el mismo probador que no son necesarias para el comercio real. Esto supone un gran ahorro. Y el almacenamiento en caché del mismo historial, etc. Es decir, es necesario escribir bibliotecas que a veces tienen en sus entrañas lógicas diferentes para el probador y el real. Trade.mqh, por desgracia, no es una biblioteca de este tipo.
Hay un hilo genial sólo para eso. Tal vez alguien dedique mucho tiempo y esfuerzo a recopilar una sección de preguntas frecuentes basada en los numerosos mensajes de este hilo.
Y para el rendimiento, siempre uso la misma receta - TesterBenchmark + profiler. Y, por supuesto, encontrar un equilibrio razonable entre las características del probador y el comercio real. Así es como se escribe MT4Orders. El programa está orientado al trabajo rápido en el probador y al trabajo ideal en la cuenta real. Para ello debemos entender que hay algunas comprobaciones (a veces costosas) en el mismo probador que no son necesarias para el comercio real. Esto supone un gran ahorro. Y el almacenamiento en caché del mismo historial, etc. Es decir, es necesario escribir bibliotecas que a veces tienen en sus entrañas lógicas diferentes para el probador y el real. Trade.mqh, por desgracia, no es una biblioteca de este tipo.
Tomemos una tarea modesta: hacer un FAQ sobre la aceleración de la optimización.
El altruismo es a veces algo bueno. Pero el tiempo no me pertenece, pertenece a la Familia.
Se comparten códigos y recetas humildes. Esto parece suficiente.
No poseo ningún secreto.
Y lo hace correctamente. Tiene tanto sentido como no hacer un ChartRedraw después de cambiar las propiedades de un objeto. Para utilizar la terminología
ChartRedraw debe ser llamado después de la escritura masiva, no después de cada escritura.
Sí, pero si tengo un lienzo pequeño, digamos 130x80 píxeles, que es menos del 1% de la ventana total, y necesito mostrar información actual en él. Así que en MT4 puedo hacerlo sin redibujar toda la pantalla con Update(false), pero en MT5 tengo que redibujar toda la pantalla cada vez. Y es un par de órdenes de magnitud más intensivo en recursos. Y esto no es una prueba, sino un tema de trabajo.
Estoy seguro de que la pantalla nunca se redibuja parcialmente al realizar un kanvas o cualquier otra acción.
El altruismo es a veces algo bueno. Pero el tiempo no me pertenece, pertenece a la Familia.
Se comparten códigos y recetas humildes. Esto parece suficiente.
No tengo ningún secreto.
¡La modestia es genial! Yo también soy una persona modesta. El altruismo es para la difunta Madre Teresa en la mayoría de los casos. Aunque, a veces, las raíces de esta mala enfermedad -el altruismo- también brotan en mí )))
Estoy seguro de que la pantalla nunca se redibuja parcialmente al realizar un kanvas o cualquier otra acción.
Sí, me equivoqué. Me equivoqué al decir queResourceCreate sin ChartRedraw en MT4 redibuja el lienzo cada vez. Lo hace sólo de vez en cuando, mientras que MT5 no lo hace en absoluto.
Sí, claro que soy tonto. A nivel de hardware, el contexto de la pantalla no puede cambiar sólo una parte de la pantalla, sino toda la pantalla.
Lo entendí cuando introduje un pequeño retraso Sleep(10):