Grupo de usuarios de MetaTrader 5 Python - cómo utilizar Python en Metatrader - página 24
![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
Los casos visualmente similares tampoco se detectan mal.
No pude interpretar las imágenes.
No pude interpretar las imágenes.
artículo en camino
es interesante como los ciclos y las tareas en la cabeza de algunas personas a veces coinciden ))He publicado un cálculo en el blog que es perfectamente paralelo. Por desgracia, la información sobre OpenCL es de tal nivel que requiere una competencia muy superior a la que yo tengo.
Me gustaría ver un ejemplo sencillo (como en el blog) de implementación de OpenCL y el resultado de la aceleración.
¿Por qué no hay ningún enlace, a pesar de que es un requisito?
No hay ninguna reclamación. No he facilitado un enlace a la entrada del blog, para no dar lugar a acusaciones de autopromoción.
https://www.mql5.com/ru/blogs/post/731774
Yo (y todo el mundo) no he podido ver el uso de este parámetro en Visual Studio durante los últimos 10 años. Incluso habiendo activado todas las banderas de informe de barrido de bucle.
Sencillamente no funcionó y no funciona ni siquiera en proyectos grandes donde hay muchas posibilidades de paralelizar. Sólo funciona el OpenMP directo con partición manual de bucles.
En MQL5, los bucles no están en paralelo.
Estoy de acuerdo con fxsaber en que OpenCL requiere un alto umbral de entrada.
El hecho de que esté ahí es bueno, pero sólo unos pocos son buenos en ello.
El hecho de que los bucles en mql5 no son paralelos, esa fue la sugerencia para la posible implementación.
Ahora la plataforma está en Clang, tal vez haya un buen paralelismo allí, no lo sé.
El objetivo de la propuesta es introducirla en la directiva mql.
¿Entiendo correctamente que si se configura esta tarea para encontrar movimientos similares a los del Optimizador, entonces la genética no funcionará?
En este caso, el Comprobador no estará habilitado para una enumeración completa, ya que hay que hacer muchas pasadas.
Es decir, la única forma de resolver este problema es ejecutar el script en el Terminal.
Decidí comprobarlo en un proyecto real - ¿tal vez python utiliza el compilador jit todo el tiempo? Tengo el ranger https://github.com/ranger/ranger, proyecto con 122 archivos (26368 líneas), los he pingado para @njit.
Resultado: ni un solo hallazgo. Me temo que el uso activo de esta función convertirá el arranque en una búsqueda de varios minutos.
Con el debido respeto, no sabes cómo cocinar. Rehizo su ejemplo:
En Python:
He aquí una comparación en Python 3.8 y MQL5 en modos de un solo hilo/OpenCL: tiempo en segundos, cuanto menos mejor
Python en modo JIT a través de numba, la plancha es:
El ejemplo de uso de OpenCL es muy sencillo y no requiere de ningún adorno para su optimización. Aunque la tarea no es masiva para OpenCL y provocó sobrecargas en la preparación, aún así dio un resultado mucho mejor.
Los cálculos paralelos de gran tamaño pueden ejecutarse de forma rutinaria con OpenCL. El umbral de entrada no es alto y sólo se necesita un día para saber cómo utilizarlo.
Se adjuntan archivos para la reproducción.
Aunque la tarea no es masiva para OpenCL y provocó sobrecargas en la preparación, aún así dio un resultado mucho mejor.
¿Cómo has depurado la parte del código de OpenCL?
El ejemplo de uso de OpenCL es muy sencillo y sin florituras de optimización. Aunque la tarea no es masiva para OpenCL y ha disparado los gastos generales en la preparación, todavía dio un resultado mucho mejor.
Renat, ¿podría especificar en qué casos OpenCL tendrá una ventaja, trabajando con un gran número de matrices o si hay un gran conjunto de símbolos e indicadores en un EA?
No soy un programador profesional, las cosas simples a nivel de programación son probablemente difíciles para mí