Grupo de usuarios de MetaTrader 5 Python - cómo utilizar Python en Metatrader - página 25
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
¿Cómo has depurado la parte del código de OpenCL?
Renat, por favor, proporciona una lista aproximada de los casos en los que OpenCL tiene una ventaja, cuando se trabaja con un gran número de matrices o cuando hay un gran conjunto de símbolos e indicadores en un EA.
Si se pueden construir millones de matrices sin reticulación y que se puedan analizar en paralelo, se puede acelerar.
En general, cualquier persona que resuelva y comprenda los límites de sus tareas responderá fácilmente a su pregunta. Mientras no se comprendan los límites (y sólo se sueñe con los "y si")constantemente con el tirón de las tareas que se resuelven, el paralelismo sigue siendo sólo una idea genial.
Desgraciadamente, la mayoría de las tareas no se pueden paralelizar de forma eficaz.
Si se pueden construir millones de matrices sin enlaces cruzados y que se puedan analizar en paralelo, se puede acelerar.
En general, alguien que resuelve y comprende los límites de sus tareas responderá fácilmente a su pregunta. Mientras no se comprendan los límites (y sólo se sueñe con los "y si") constantemente con las tareas de desgarro que se resuelven, el paralelismo sigue siendo sólo una idea genial.
Desgraciadamente, la mayoría de las tareas no se pueden paralelizar de forma eficaz.
Me acuerdo del hecho de que hay momentos de acompañamiento en los cálculos, por eso me surgió la pregunta
Al correr y desempatar los resultados.
¿Es posible poner una cartilla dentro del código OpenCL?
A grandes rasgos sobre OpenCL
Podemos imaginar que hay un procesador con registros grandes (vectoriales), en los que se pueden escribir N valores dobles individuales (por ejemplo, dejemos que N=64, entonces se pueden escribir 64 valores en el registro).
Dichos registros se pueden sumar, multiplicar, etc., entre sí, resulta que por un comando, se puede realizar una operación sobre N dables.
Pero hay limitaciones.
Es imposible operar con los valores de un registro, es decir, por ejemplo, es imposible sumar una parte de los valores de un registro entre sí.
En cuanto a la frecuencia, dicho procesador es muy inferior a la CPU habitual, por lo que no tiene sentido utilizarlo en tareas en las que se requiere el procesamiento secuencial de un valor.
Además de la menor frecuencia, también hay una limitación de memoria, los valores sólo pueden cargarse y descargarse de la memoria especial.
Es posible copiar datos de la RAM a esta memoria especial, pero sólo a través de un canal muy estrecho (lento).
Por lo tanto, las tareas que necesitan procesar grandes cantidades de datos tampoco son adecuadas para OpenCL
¿Es posible poner una cartilla dentro del código OpenCL?
En el exterior.
Vamos a saltarnos la sesión de conferencias. Simplemente tome y lea todo lo que ha sido creado y descrito en detalle sobre OpenCL por nosotros y en Internet en general.
Búsqueda de OpenCL:
En realidad, es muy interesante que "opencl trading" se haya buscado en Google con un montón de cosas de nuestros recursos:
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, el hardware es así:
El ejemplo de uso de OpenCL es muy sencillo y no hay florituras en 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 muy grandes 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 los archivos para la reproducción.
Parece que este problema del cálculo de PI en OpenCL ya se resolvió hace 7 años:
¿Alguien tiene algún enlace directo a lo que hay que descargar? En Intel es necesario registrarse.
HH En la GPU Intel en la CPU tengo que grok los controladores del adaptador de vídeo, a continuación, instalado Intel_OpenCL_driver, a continuación, poner los controladores del adaptador de vídeo. Así todo funciona y el vídeo no se ralentiza.
Vict:
Me temo que el uso activo de esta función convertirá el arranque en una búsqueda de varios minutos.
No se puede activar el almacenamiento en caché.
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, el hardware es así:
En el modo multithreading estás comparando el rendimiento de la CPU con el de la GPU en 10000 hilos. La GPU no está involucrada en python.
Si encuentro un ordenador con una tarjeta de vídeo adecuada, arreglaré el código Python y lo probaré en este ordenador. Intentaré ejecutar tu código en la CPU, pensé que se requería la GPU.
No es mi intención demostrar quién es más rápido en absoluto. Es más interesante conocer sus planes para integrar Python.
¿Prevé alguna función de negociación y eventos de tick en python?
Aún así, la GPU parece ser obligatoria, "AMD APP SDK" no se puede descargar.
A grandes rasgos sobre OpenCL
Podemos imaginar que hay un procesador con registros grandes (vectoriales) donde podemos escribir N valores dobles individuales (por ejemplo, dejemos que N=64, entonces se pueden escribir 64 valores en el registro).
Dichos registros se pueden sumar, multiplicar, etc., entre sí, resulta que por una instrucción, se puede realizar una operación sobre N dables.
Pero hay limitaciones.
Es imposible operar con los valores de un registro, es decir, por ejemplo, es imposible sumar una parte de los valores de un registro entre sí.
En cuanto a la frecuencia, dicho procesador es muy inferior a la CPU habitual, por lo que no tiene sentido utilizarlo en tareas en las que se requiere el procesamiento secuencial de un valor.
Además de la menor frecuencia, también hay una limitación de memoria, los valores sólo pueden cargarse y descargarse de la memoria especial.
Es posible copiar datos de la RAM a esta memoria especial, pero sólo a través de un canal muy estrecho (lento).
Por lo tanto, las tareas que requieren el procesamiento de grandes cantidades de datos tampoco son adecuadas para OpenCL
No hay vectores en el ejemplo de cálculo de PI. Simplemente divide la suma total en varios trozos independientes y los envía a cada núcleo OpenCL. Al final todo se suma.
Por ejemplo, si no hay tarjeta de vídeo discreta y hay 4 núcleos físicos + 4 virtuales en la CPU, la ejecución será ocho veces más rápida. Es decir, los trozos de suma se contarán en cada núcleo en paralelo.