
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
Donc l'initialisation dansDLL_PROCESS_ATTACH : sera suffisante pour appeler depuis le programme mql ?
Du programme mql pour appeler ses fonctions situées dans la dll.
Du programme mql pour appeler ses fonctions situées dans la dll.
Et quel est le problème de la description de leurs signatures ? Vous tirez Winapi à travers les signatures de méthodes d'une manière ou d'une autre, n'est-ce pas ?
Je suis désolé, pourquoi les décrire ? Et je suis désolé, je n'ai rien tiré))
Je suis désolé, pourquoi les décrire ? Et je suis désolé, je n'ai rien tiré))
Chers utilisateurs du forum.
Andrey, je pense que tout le monde comprend que l'asynchronisme et le multithreading sont des choses différentes.
Comme la fonction CreateThread() est décrite dans l'inluder WinAPI, on supposait que les threads pouvaient être utilisés.
Il n'y a pas de fonctions similaires à CreateTask() décrites dans l'IDE, donc l'hypothèse d'une possible écriture de code asynchrone disparaît d'elle-même.
L'accent a donc été mis sur les fils. Cependant, il s'est avéré que les fonctions décrites ne sont que des prototypes WinAPI.
Je le répète, la tâche consistait à utiliser une pure WinAPI et le prototype décrit CreateThread() était trompeur. Il n'est dit nulle part qu'il s'agit de prototypes.
Toutes les tâches sont différentes, j'ai donc opté pour la méthode asynchrone et je pense qu'il est préférable de toujours écrire de manière asynchrone ou dans des threads,
Et prendre l'habitude de toujours écrire de manière asynchrone, vous permettra d'écrire des programmes rapides, et d'élever votre niveau de spécialiste.
C'est le principe de base des développeurs eux-mêmes, la vitesse d'exécution des programmes mql, c'est notre tout !
Il est dommage que mql ne dispose pas d'une telle fonctionnalité,
Je fais une suggestion à l'administration mql pour développer des fonctions mql standard pour la programmation asynchrone,
car il y a des problèmes de fils et, surtout, de sécurité.
Pour le mode asynchrone, je pense qu'il n'y a pas de problème de sécurité.
Exemple de logique
Élaborez l'implémentation d'EventLoop dans mql.
créer la classe MqlTask
Déclarer les tâches en tant qu'objet MqlTask obj ;
créer une tâche tâche = obj.CreateTask(MyFunc()) ;
exécuter le succès = tâche -> Exécuter() ;
pause exécution succès = tâche -> SleepMs(ms) ;
attendre le succès = tâche -> Attendre(ms) ;
attendre indéfiniment succès = tâche -> Attendre(0) ;
supprimer la tâche après avoir exécuté la tâche de suppression ;
et toutes sortes de getStatuses pour le contrôler.
Andrey, je pense que tout le monde comprend que le mode asynchrone et le multithreading sont des choses différentes.
L'inluder de la WinAPI contient la fonction CreateThread() et nous avions supposé que les threads pouvaient être utilisés.
Puisqu'il n'y a pas de fonctions similaires à CreateTask() décrites dans l'IDE, nous ne devons pas envisager une éventuelle écriture de code asynchrone.
L'accent a donc été mis sur les fils. Cependant, il s'est avéré que les fonctions décrites ne sont que des prototypes WinAPI.
Je le répète, la tâche consistait à utiliser une pure WinAPI et le prototype décrit CreateThread() était trompeur. Il n'est dit nulle part qu'il s'agit de prototypes.
Toutes les tâches sont différentes, j'ai donc opté pour la méthode asynchrone et je pense qu'il est préférable de toujours écrire de manière asynchrone ou dans des threads,
Et une habitude développée de toujours écrire de manière asynchrone, vous permettra d'écrire des programmes rapides et d'élever votre niveau de spécialiste.
C'est le principe de base des développeurs eux-mêmes, la vitesse d'exécution des programmes mql, c'est notre tout !
Dommage qu'une telle fonction n'existe pas dans mql, je vais donc suggérer à l'équipe mql de développer une fonction mql standard.
pour la programmation asynchrone, car il y a des problèmes avec les threads et, surtout, la sécurité.
Je pense qu'il n'y a pas d'obstacles à la sécurité pour le mode asynchrone.
Élaborer l'implémentation des boucles, et exécuter des tâches dans ces boucles.
Décidez si vous voulez exécuter les méthodes de manière asynchrone ou multithread. Je travaille par exemple avec des sockets de manière asynchrone à partir de mql.
Afin de déterminer ce qu'il est possible d'utiliser dans mql et ce qui est interdit.
CreateThread() a été trouvé dans les inludes, donc j'ai pensé qu'il était possible de travailler avec des threads.
Mais il s'avère que les threads sont interdits, donc le choix se porte sur l'asynchrone, mais comment utiliser l'asynchrone dans mql n'est pas clair non plus.
Oui, c'est exactement le problème avec les sockets. L'aide indique que l'on ne peut créer plus de 128 sockets, ce qui limite l'obtention d'informations sur les actions américaines, par exemple.
Et même ces 128 sockets, on ne sait pas comment les convertir en mode asynchrone et éviter les retards dans le traitement des données entrantes.
C'est pourquoi j'ai dû chercher à résoudre le problème d'une autre manière,mais je voulais le résoudre en pure WinAPI, sans aucune dll auto-écrite.
Et comment travailler de manière asynchrone dans mql c'est intéressant, si vous avez des exemples de travail, il serait bon d'en discuter, si vous pouvez partager les informations.
Mais je n'ai pas vu les méthodes asynchrones standard de l'aide mql.
Afin de déterminer ce qu'il est possible d'utiliser dans mql et ce qui est interdit.
J'ai trouvé CreateThread() dans les injecteurs du code, donc j'ai pensé que je pouvais gérer les threads.
Mais il s'est avéré que les threads sont interdits, donc le choix se porte sur l'asynchrone, mais comment utiliser l'asynchrone dans mql n'est pas clair non plus.
Oui, c'est exactement le problème avec les sockets. L'aide indique que l'on ne peut créer plus de 128 sockets, ce qui limite l'obtention d'informations sur les actions américaines, par exemple.
Et même ces 128 sockets, on ne sait pas comment les convertir en mode asynchrone et éviter les retards dans le traitement des données entrantes.
C'est pourquoi j'ai dû chercher la solution au problème d'une autre manière,mais je voulais le résoudre en pure WinAPI, sans aucune dll auto-écrite.
Et comment travailler de manière asynchrone dans mql c'est intéressant, si vous avez des exemples de travail, il serait bon d'en discuter, si vous pouvez partager les informations.
Mais je n'ai pas vu les méthodes asynchrones standard de l'aide mql.
Je lis les participants intelligents et je me demande...
Quel est l'intérêt de tous ces gadgets ?
Quand, dans MQL, le multithreading serait-il si terriblement nécessaire ? Pour moi, la seule utilité serait le test de stratégie, qui est implémenté de manière standard.
Idéalement, il pourrait être judicieux d'exécuter plusieurs WebRequests, mais je ne pense pas que le multithreading soit nécessaire.
Quelles tâches nécessitent le multithreading en premier lieu ?