Esto es lo que puedes hacer con OpenCL directamente en MetaTrader 5 sin ninguna DLL - página 2

 
Renat Fatkhullin:

Estamos preparando una biblioteca de personal OpenCL para matemáticas y renderizado, lo que nos llevará unas semanas. Va a ser increíblemente rápido y hermoso.

Mientras tanto, echa un vistazo a la biblioteca gráfica actualizada para la representación de gráficos científicos.

Entonces, ¿se trata de escribir programas sobre él en el MetaEditor, o ya están preparados y sólo hay que lanzar un script sobre el gráfico?
 

A mí tampoco me arrancó:

2016.12.10 07:00:47.388 Seascape (EURUSD,M1)    OpenCL: GPU device 'Redwood' selected
2016.12.10 07:00:47.418 Seascape (EURUSD,M1)    
2016.12.10 07:00:47.418 Seascape (EURUSD,M1)    OpenCL program create failed
2016.12.10 07:00:57.263 Seascape (EURUSD,M1)    OpenCL: GPU device 'Redwood' selected
2016.12.10 07:00:57.285 Seascape (EURUSD,M1)    
2016.12.10 07:00:57.285 Seascape (EURUSD,M1)    OpenCL program create failed
 

OpenCL es muy bueno, puedes entrenar redes neuronales muy rápidamente con esta tecnología, cientos (miles) de veces más rápido que en un procesador ordinario.

prostotrader:
2016.12.10 03:57:08.218 Seascape (GOLD-12.16,H1)        OpenCL program create failed
2016.12.10 03:57:36.695 Seascape (GOLD-12.16,H1)        OpenCL: GPU device 'GeForce GTX 970' selected
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)        <kernel>:188:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)           uint b=(uint)(res[2]*255);
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)                         ^   ~
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)        <kernel>:189:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)           uint g=(uint)(res[1]*255);
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)                         ^   ~
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)        <kernel>:190:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)           uint r=(uint)(res[0]*255);
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)                         ^   ~
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)        
2016.12.10 03:57:36.730 Seascape (GOLD-12.16,H1)        OpenCL program create failed

Esto se puede arreglar encontrando estas líneas en el script -

                    "   uint b=(uint)(res[2]*255);\r\n"
                    "   uint g=(uint)(res[1]*255);\r\n"
                    "   uint r=(uint)(res[0]*255);\r\n"

y sustituirlos por -

                    "   uint b=(uint)(res.z*255);\r\n"
                    "   uint g=(uint)(res.y*255);\r\n"
                    "   uint r=(uint)(res.x*255);\r\n"
 

Unas cuantas preguntas:

  1. Si se ejecutan varios EA en el mismo terminal, ¿pueden compartir y utilizar OpenCL de forma independiente?
  2. Lo mismo ocurre con los terminales múltiples.

 
Renat Fatkhullin:

Con OpenCL se pueden utilizar miles de núcleos de GPU para acelerar los cálculos cien (varios cientos) veces.

Esto es exactamente lo que se necesita en el comercio y lo que permitirá la transición a técnicas que requieren órdenes de magnitud más de recursos computacionales.

En MQL4 se cava con una pala, mientras que en MQL5 con OpenCL se obtiene un tractor en términos de rendimiento. Para llevar los cálculos de la GPU a las masas, estamos preparando nuevas bibliotecas matemáticas que se suman a las ya existentes.

También se necesitan ejemplos reales de lo que se puede paralizar de forma realista en un EA, por ejemplo.

¿Puedo utilizar código con OpenCL al optimizar?

 
Renat Fatkhullin:

Con OpenCL puedes utilizar miles de núcleos de GPU para acelerar los cálculos matemáticos cien (varios cientos) veces.

Esto es exactamente lo que se necesita en el comercio y lo que permitirá la transición a técnicas que requieren órdenes de magnitud más de recursos computacionales.

En MQL4 se cava con una pala y en MQL5 con OpenCL se consigue un tractor en términos de rendimiento. Para llevar los cálculos de la GPU a las masas, estamos preparando nuevas bibliotecas matemáticas que se suman a las ya existentes.

¿Habrá algún día algo similar para MQL4? O, al menos, el uso del multithreading, porque los procesadores multinúcleo son de poca utilidad...

Se pueden hacer juegos con esos gráficos en el terminal cliente, pero me pregunto si los comerciantes jugarán en lugar de comerciar )

 
Alexander Nikolaev:

¿Habrá algún día algo similar para MQL4? O al menos, el uso del multithreading, porque los procesadores multinúcleo son de poca utilidad...

No sé si los comerciantes jugarán en el terminal con esos gráficos, pero me pregunto si jugarán en lugar de comerciar )

¿Cuáles son sus tareas que carecen de un núcleo?

Puede ejecutar copias de los terminales correspondientes al número de núcleos para optimizarlos.

 
-Aleks-:

¿Qué tipo de tarea tiene usted que carece de un núcleo?

Puede ejecutar copias de los terminales correspondientes al número de núcleos a optimizar.

Pues bien, si no sólo se utilizan 8-16 núcleos de CPU, sino miles de núcleos de CPU para la optimización, sería una explosión de rendimiento. Si, por supuesto, se implementa tal posibilidad.
 
Vitalie Postolache:
Pues bien, si no sólo se utilizan 8-16 núcleos de CPU, sino miles de núcleos de CPU para la optimización, sería una explosión de rendimiento. Si, por supuesto, se implementa tal posibilidad.
Renat lleva tiempo diciendo que OpenCL funciona en el probador de MT5, pero sólo en una máquina local, no en la nube. Así que úsalo incluso ahora.
 

¡¡Precioso!!

Incluso se ha pensado en cómo se podría utilizar más adelante: noticias en directo directamente en el gráfico, o su propio canal con analíticas o formación (webinars)

Desarrolladores Bien hecho.

Razón de la queja: