Hier sehen Sie, was Sie mit OpenCL direkt in MetaTrader 5 ohne DLLs machen können

 

Dies ist eine Demonstration nicht nur der GPU-Berechnungen im MQL5-Code, sondern auch der grafischen Möglichkeiten des Terminals:

Der vollständige Quellcode in Form eines Skripts ist beigefügt. Der Fehler bei OpenCL 1.2 wurde behoben.

Dateien:
Seascape.mq5  39 kb
 
Renat Fatkhullin:

Dies ist eine Demonstration nicht nur der GPU-Berechnungen im MQL5-Code, sondern auch der grafischen Möglichkeiten des Terminals:

Der vollständige Quellcode in Form eines Skripts ist beigefügt.

Aaaaaaaaahhhhhh ... Ich will nicht aussteigen!
 

Wir bereiten eine OpenCL-Personalbibliothek für Mathematik und Rendering vor, was einige Wochen in Anspruch nehmen wird. Es wird erstaunlich schnell und schön sein.

Werfen Sie in der Zwischenzeit einen Blick auf die aktualisierte Grafikbibliothek zum Rendern von wissenschaftlichen Diagrammen.

 

О! Bald wird es Spiele geben ))))

Wofür eine Handelsplattform? Nun, die Berechnungen sind verständlich, und alle Arten von schönen Dingen nur verführen.

 
Vitalie Postolache:

О! Bald wird es Spiele geben ))))

Wofür eine Handelsplattform? Nun, die Berechnungen sind klar, und alle Arten von schönen Dingen nur verführen.

Mit OpenCL können Sie Tausende von GPU-Kernen verwenden, um mathematische Berechnungen um das Hundertfache (mehrere Hundert) zu beschleunigen.

Dies ist genau das, was im Handel benötigt wird und was den Übergang zu Techniken ermöglichen wird, die um Größenordnungen mehr Rechenressourcen erfordern.

In MQL4 graben Sie mit einer Schaufel, während Sie in MQL5 mit OpenCL einen Traktor bekommen, was die Leistung angeht. Um GPU-Berechnungen für die breite Masse zugänglich zu machen, bereiten wir zusätzlich zu den bestehenden Bibliotheken neue mathematische Bibliotheken vor.

 

Konnte nicht daran vorbeikommen, ging daran vorbei

 
Renat Fatkhullin:

Dies ist eine Demonstration nicht nur der GPU-Berechnungen im MQL5-Code, sondern auch der grafischen Möglichkeiten des Terminals:

Der vollständige Quellcode in Form eines Skripts ist beigefügt.

Kompiliert und ausgeführt.

Funktioniert nicht.

MT5 Build 1491.

W7 prof SP1 eng 64-bit


 
prostotrader:

Kompiliert und gestartet.

Sehen Sie sich die Protokolle des Terminals und des Expertenfensters an.

Das Skript ist komplex, gerade erst geschrieben und noch nicht getestet. Es läuft nicht überall ohne GPU.

 
Renat Fatkhullin:

Sehen Sie sich die Terminalprotokolle und das Expertenfenster an.

Das Skript ist komplex, gerade erst geschrieben und noch nicht getestet. Es läuft nicht überall ohne 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)
 

OK, wir werden es herausfinden. Der Code war wie ein Test für einen Stift.

Jedes GPU-Gerät hat seinen eigenen Compiler, der entscheidet, was übersprungen werden soll. Die OpenCL-Compiler von Intel, AMD und Nvidia sind unterschiedlich.

Wir testen unter OpenCL 2.0, das eine viel bessere Funktionalität hat. Wir werden diesen Test auf OpenCL 1.2 überprüfen und korrigieren.

 

Für weitere Informationen empfehle ich Ihnen unseren Artikel über OpenCL in MetaTrader 5 zu lesen:

Grund der Beschwerde: