OpenCL : tests de l'implémentation interne dans MQL5 - page 20
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Les codes seront ajoutés :
Les codes seront ajoutés :
Merci, alors ce qui manque est une fonction pour vérifier la validité de la poignée.
Nous n'acceptons des fonctions CL que la valeur du pointeur, pas le pointeur lui-même, donc stocker le pointeur à différents endroits provoquera une situation où l'on essaiera de supprimer un processus invalide (que ce soit le contexte, le tampon, le programme ou le noyau).
fonction requise :
Il est également nécessaire d'obtenir par programmation la taille de la mémoire du dispositif, car les visions ont moins de mémoire que les CPU, tandis que tous les contextes existant simultanément utilisent la même mémoire.
Il serait bon d'obtenir la température de la carte (et du CPU aussi) par des moyens standards mql afin de doser la charge.
// Parce que je me suis un peu déchaînée... :)
L'obtention des propriétés des objets OpenCL sera bientôt disponible.
Un contrôle des poignées sera également organisé.
1. il n'y a pas de fonctionnalité dans OpenCL pour obtenir la température et la charge du GPU.
2. La récupération des propriétés des objets OpenCL sera bientôt disponible.
3. un contrôle de la poignée sera également organisé.
1. Je sais. Il n'est pas nécessaire de passer par OpenCL, mais par le système. L'idée est simplement de rendre la fonctionnalité native (sans appels de DLL depuis les programmes mql5).
Voici d'excellentes fonctions :
TerminalInfoInteger
Renvoie une valeur entière d'une propriété d'environnement correspondante d'un programme mql5.
TerminalInfoString
Renvoie une valeur de chaîne de caractères d'une propriété d'environnement correspondante d'un programme mql5.
MQL5InfoInteger
Renvoie une valeur de type entier d'une propriété correspondante d'un programme mql5 en cours d'exécution.
MQL5InfoString
Renvoie une valeur de type chaîne de caractères d'une propriété correspondante d'un programme mql5 lancé.
Il serait agréable et logique de l'ajouter :
SystemInfoInteger et donc
SystemInfoString
qui permet d'obtenir les informations requises sur l'environnement du système : nombre de cœurs, nom et taille du système d'exploitation, quantité de mémoire (totale), quantité de mémoire disponible (libre) (RAM et espace disque), etc.
Après tout, le terminal ne fonctionne pas dans un espace vide éternel. Sinon, il semble très sablonneux.
2, 3.
4. assurez-vous d'implémenter un accès normal au tampon (cl_Read/WriteBuffer), en spécifiant les deux décalages de départ (à la fois le décalage du mql-array et le décalage dans le cl-buffer). Sinon, presque tous les tableaux doivent être copiés deux fois - en avons-nous vraiment besoin ? Nous n'écrivons pas en OpenCL pour perdre du temps à réécrire de rien à rien. Ce n'est pas juste. :)
...
4. assurez-vous que vous avez déjà un accès normal au tampon (cl_Read/WriteBuffer), en spécifiant les deux offsets de départ (offset mql-array et offset cl-buffer). Sinon, presque tous les tableaux doivent être copiés deux fois - en avons-nous vraiment besoin ? Nous n'écrivons pas en OpenCL pour perdre du temps à réécrire de rien à rien. Ce n'est pas juste. :)
Précisez ce que vous entendez par là.
Je n'ai pas rencontré les situations que vous décrivez jusqu'à présent.
Précisez ce que vous entendez par là.
A quoi ça sert, je n'ai pas encore rencontré les situations que vous décrivez.
Pas de problème. Voici un exemple récent. Construire la famille Ema.
Rien d'exotique n'est requis. Je veux juste que ce soit comme ici :
int ArrayCopy(
void dst_array[], // куда копируем
void src_array[], // откуда копируем
int dst_start=0, // с какого индекса пишем в приемник
int src_start=0, // с какого индекса копируем из источника
int cnt=WHOLE_ARRAY // сколько элементов
);
Pas de problème. Voici un exemple récent. Construire la famille Ema
Rien d'exotique n'est requis, je veux juste que ce soit comme ici :
int ArrayCopy(
void dst_array[], // куда копируем
void src_array[], // откуда копируем
int dst_start=0, // с какого индекса пишем в приемник
int src_start=0, // с какого индекса копируем из источника
int cnt=WHOLE_ARRAY // сколько элементов
);
Oui, j'ai compris, tu ne veux pas d'algorithmes plus compliqués et de dépassements de mémoire en utilisant
et vous voulez être en mesure de compenser au stade de la copie.
Je ne veux pas copier 100000 éléments et ensuite faire 998000 décalages. Mais nous devrions laisser la variante avec décalage que nous avons maintenant, car elle permet de ne pas copier plusieurs fois les mêmes données, mais de les prendre pour une nouvelle tâche à partir d'un tampon CL déjà préparé avec un nouveau décalage.
SZY, il serait également agréable de pouvoir écraser en réallouant ou en écrasant une partie des données dans le tampon CL, puis les nouvelles données reçues du tick pourraient être ajoutées sans avoir à acheter toutes les données. En temps réel, cela n'est guère utile, mais dans le testeur, ça l'est.