![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Con el nivel actual de los procesadores puedes olvidarte de los frenos de las matemáticas dobles. No hay retrasos.
Y los métodos de optimización por conversión a enteros ya están realmente desfasados. Perderás muchas veces más en la conversión que en las matemáticas.
Teniendo en cuenta el código de 64 bits y nuestro compilador, deberías olvidarte de los enteros en la clase de tareas basadas en cálculos dobles.
He aquí una muestra anterior de los intentos de optimización de Nikolai: https://www.mql5.com/ru/forum/1111/page2164#comment_6796332
El compilador logró combinar los cálculos de dos raíces dobles de 64 bits de diferentes expresiones en un solo comando de ensamblaje de 128 bits. Cuando se trabaja con matemáticas dobles, no se recomienda saltar/convertir a tipos enteros. La conversión tiene una sobrecarga salvaje de la CPU (no la nuestra).
No hay que redondear nada.
Aquí hay un script como ejemplo.
Ejecútalo primero con los parámetros por defecto (con círculos antialiasing y coordenadas y dimensiones de tipo double)
y luego ejecutarlo con el parámetro typ = not_smoothed_circles (con círculos no suavizados y coordenadas y tamaños de tipo int - de la clase CCanvas).
Eso funcionó muy bien.
Conseguí 347 fps sin antialiasing y 97 con antialiasing en lienzo con 2100x550 píxeles.
A título informativo, tenemos un limitador de velocidad de actualización de la ventana de 500 fps. Esto demuestra el rendimiento que se puede conseguir en los gráficos.
Con el nivel actual de los procesadores puedes olvidarte de los frenos de las matemáticas dobles. No hay frenos.
Y los métodos de optimización por conversión a enteros ya están realmente desfasados. Perderá muchas veces más en la conversión que en las matemáticas.
Teniendo en cuenta el código de 64 bits y nuestro compilador, deberías olvidarte de los enteros en la clase de tareas basadas en cálculos dobles.
He aquí una muestra anterior de los intentos de optimización de Nikolai: https://www.mql5.com/ru/forum/1111/page2164#comment_6796332
El compilador ha conseguido combinar los cálculos de dos raíces dobles de 64 bits de diferentes expresiones en un solo comando de ensamblador de 128 bits. Cuando se trabaja con matemáticas dobles, no se recomienda saltar/convertir a tipos enteros. La conversión tiene una sobrecarga salvaje de la CPU (no la nuestra).
Estoy casi seguro de que si hacemos que los ticks se basen en números enteros, el Comprobador empezará a funcionar mucho más rápido.
No, eso no es morphing. Es una exageración llamarlo morphing:
En realidad, me daba pereza hacer uno de verdad yo mismo; lo encontré en las carpetas de ejemplos.
Morphing, literalmente - mortificación.
Es casi seguro que si haces que los ticks sean enteros, el Probador comenzará a trabajar mucho más rápido.
Está claro para el caballo, como dijo Elena Yurievna.
Basado en Doom y en el consejo de @fxsaber.
Utilicé el algoritmo deeste sitio con algunas ligeras modificaciones.
¿Qué usas para hacer fotos, Nikolai?
Es casi seguro que si haces que los ticks sean enteros, el Probador empezará a trabajar mucho más rápido.
No.
Para empezar, date cuenta de que:
Morphing, literalmente: la muerte.
No vale la pena discutirlo aquí, pero el Morphing ( transformación) Donde se ve a la gente muerta, sobria...
No vale la pena discutirlo aquí, pero Morphing ( morphing- transformación) Donde se ve gente muerta - sobria...
El análisis morfométrico es el análisis de las células muertas. Primero los matamos y luego los ponemos bajo el microscopio.
No.
Double int es dos veces más rápido que double