Grupo de usuarios de MetaTrader 5 Python - cómo utilizar Python en Metatrader - página 24

 
Maxim Dmitrievsky:

Los casos visualmente similares tampoco se detectan mal.

No pude interpretar las imágenes.

 
fxsaber:

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 ))
 
fxsaber:

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é hablar sin un vínculo, aunque sea un requisito?
 
Renat Fatkhullin:
¿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

Research03: находим простые связи между движениями цены в разных частях суток
Research03: находим простые связи между движениями цены в разных частях суток
  • 2019.12.04
  • www.mql5.com
Как это ни парадоксально, но именно при активной алготоровле много времени уходит на вглядывание в монитор. Иногда возникают иллюзии, будто что-то полезное уловил глазом. Так произошло и в этот раз. Давно была гипотеза, что какие-то движения внтури дня имеют связь с движениями после в этом же дне. Например, может показаться, что микрогепы в...
 
Renat Fatkhullin:

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.

 
Renat Fatkhullin:

¿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.

 
Lyuk:

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.

$ grep '@njit' $(xbps-query -f ranger)

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.

 
Lyuk:

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

pi-single.py
pi-multi.py
Velocidad PI.mq5 simple
Velocidad PI.mq5 OpenCL
4.1743
0.2101
4.1836
0.1025

Python en modo JIT a través de numba, la plancha es:

  • Windows 10 x64, Intel Xeon E5-2690 v3 a 2,60 GHz
  • GeForce RTX 2080

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.

Archivos adjuntos:
 
Renat Fatkhullin:

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?

 
Renat Fatkhullin:

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í