Questa è una dimostrazione non solo dei calcoli della GPU nel codice MQL5, ma anche delle capacità grafiche del terminale:
Il codice sorgente completo come script è allegato.
Stiamo preparando una libreria di personale OpenCL per la matematica e il rendering, il che richiederà alcune settimane. Sarà incredibilmente veloce e bello.
Nel frattempo, date un'occhiata alla libreria grafica aggiornata per il rendering dei grafici scientifici.
О! Presto arriverà ai giochi ))))
A cosa serve una piattaforma di trading? Beh, i calcoli sono comprensibili, e ogni sorta di cose belle non fanno che sedurre.
О! Presto arriverà ai giochi ))))
A cosa serve una piattaforma di trading? Beh, i calcoli sono chiari, e ogni sorta di cose belle non fanno che sedurre.
Con OpenCL è possibile utilizzare migliaia di core di GPU per accelerare i calcoli matematici di cento (diverse centinaia) volte.
Questo è esattamente ciò che è necessario nel trading e ciò che permetterà di passare all'uso di tecniche che richiedono ordini di grandezza più risorse di calcolo.
In MQL4 si scava con una pala, mentre in MQL5 con OpenCL si ottiene un trattore in termini di prestazioni. Per portare i calcoli su GPU alle masse, stiamo preparando nuove librerie matematiche in aggiunta a quelle esistenti.
Non è riuscito a superarlo, è passato oltre
Questa è una dimostrazione non solo dei calcoli della GPU nel codice MQL5, ma anche delle capacità grafiche del terminale:
Il codice sorgente completo come script è allegato.
L'ha compilato e l'ha eseguito.
Non funziona.
MT5 build 1491.
W7 prof SP1 eng 64-bit
L'ha compilato e l'ha eseguito.
Guardate i log del terminale e della finestra dell'esperto.
Lo script è complesso, appena scritto e non ancora debuggato. Non gira ovunque senza GPU.
Guardate i log del terminale e della finestra dell'esperto.
Lo script è complesso, appena scritto e non ancora debuggato. Non gira ovunque senza GPU.
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
Ok, troveremo una soluzione. Il codice era come una prova di una penna.
Ogni dispositivo GPU ha il suo compilatore e decide cosa saltare. I compilatori OpenCL di Intel, AMD e Nvidia sono diversi.
Stiamo testando sotto OpenCL 2.0 che ha una funzionalità molto maggiore. Controlleremo e sistemeremo questo test su OpenCL 1.2.
Per maggiori informazioni vi consiglio di leggere il nostro articolo su OpenCL in MetaTrader 5:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Questa è una dimostrazione non solo dei calcoli della GPU nel codice MQL5, ma anche delle capacità grafiche del terminale:
Il codice sorgente completo come script è allegato. Il bug su OpenCL 1.2 è stato risolto.