Esto es lo que puedes hacer con OpenCL directamente en MetaTrader 5 sin ninguna DLL

 

Esta es una demostración no sólo de los cálculos de la GPU en el código MQL5, sino también de las capacidades gráficas del terminal:

Se adjunta el código fuente completo en forma de script. Se ha corregido el error en OpenCL 1.2.

Archivos adjuntos:
Seascape.mq5  39 kb
 
Renat Fatkhullin:

Esta es una demostración no sólo de los cálculos de la GPU en el código MQL5, sino también de las capacidades gráficas del terminal:

Se adjunta el código fuente completo en forma de script.

Aaaaaaahhhhhh ... ¡Impedir que me baje!
 

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.

 

¡О! Pronto llegará a los juegos ))))

¿Para qué sirve una plataforma de negociación? Bueno, los cálculos son comprensibles, y todo tipo de cosas bonitas sólo seducen.

 
Vitalie Postolache:

¡О! Pronto llegará a los juegos ))))

¿Para qué sirve una plataforma de negociación? Bueno, los cálculos son claros, y todo tipo de cosas bonitas sólo seducen.

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á pasar al uso de técnicas que requieren órdenes de magnitud más de recursos de cálculo.

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.

 

No pude pasar, lo pasé de largo

 
Renat Fatkhullin:

Esta es una demostración no sólo de los cálculos de la GPU en el código MQL5, sino también de las capacidades gráficas del terminal:

Se adjunta el código fuente completo en forma de script.

Lo compilé, lo ejecuté.

No funciona.

MT5 build 1491.

W7 prof SP1 eng 64 bits


 
prostotrader:

Lo he compilado y lo he puesto en marcha.

Mira los registros del terminal y de la ventana de expertos.

El script es complejo, acaba de ser escrito y aún no ha sido depurado. No funciona en todas partes sin GPU.

 
Renat Fatkhullin:

Mira los registros de la terminal y la ventana de expertos.

El script es complejo, acaba de ser escrito y aún no ha sido depurado. No funciona en todas partes sin GPU.

2016.12.10 03:57:08.180 Seascape (GOLD-12.16,H1)        OpenCL: GPU device 'GeForce GTX 970' selected
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1)        <kernel>:188:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1)           uint b=(uint)(res[2]*255);
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1)                         ^   ~
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1)        <kernel>:189:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1)           uint g=(uint)(res[1]*255);
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1)                         ^   ~
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1)        <kernel>:190:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1)           uint r=(uint)(res[0]*255);
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1)                         ^   ~
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1)        
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

2016.12.10 03:57:06.729 OpenCL  Device #0: GPU NVIDIA Corporation GeForce GTX 970 with OpenCL 1.2 (13 units, 1367 MHz, 4096 Mb, version 372.90)
 

De acuerdo, lo resolveremos. El código era como la prueba de un bolígrafo.

Cada dispositivo de la GPU tiene su propio compilador y decide lo que debe omitirse. Los compiladores OpenCL de Intel, AMD y Nvidia son diferentes.

Estamos probando bajo OpenCL 2.0 que tiene una funcionalidad mucho mayor. Comprobaremos y arreglaremos esta prueba en OpenCL 1.2.