CAccountInfo n'accède pas au serveur commercial, il est émis depuis la mémoire, il ne monte pas sur le disque.
Comparez donc le temps d'interrogation avec le temps d'obtention d'une valeur ou d'exécution d'une commande. Je comprends que tout dépend de votre situation spécifique (ligne de communication par exemple).
Et donc tester chaque commande de cette manière ?
J'ai besoin d'écrire un EA pour une exécution rapide et pour cela j'ai besoin de comprendre le processus et comment cela peut se passer. J'ai vu plusieurs fois le terminal se bloquer alors que j'utilise un outil, une EA et quelques graphiques... J'ai aussi vu d'autres pépins...bien que j'ai mis un SSD rapide au lieu d'un disque dur en hibernation....
CAccountInfo n'accède pas au serveur commercial, il est sorti de la mémoire, il ne va pas sur le disque.
J'ai spécifié la fonction de manière incorrecte. Je suis intéressé parPositionGet...().
Laposition possède un ensemble de propriétés disponibles pour être lues par la fonctionPositionGet...().
Merci.
Et donc tester chaque commande de cette manière ?
J'ai besoin d'écrire un EA pour une exécution rapide et pour cela j'ai besoin de comprendre le processus. et comment cela peut se passer. J'ai vu plusieurs fois le terminal se bloquer alors que j'utilise un outil, une EA et quelques graphiques... De plus, il y a d'autres pépins...bien que j'ai mis un SSD rapide au lieu d'un disque dur en hibernation....
Comparez l'heure locale avant et après et obtenez la performance, elle dépend de nombreux facteurs et est individuelle pour chacun.

- www.mql5.com
Comparez l'heure locale avant et après et obtenez la performance, elle dépend de nombreux facteurs et est individuelle pour chacun.
https://www.youtube.com/playlist?list=PLIo3S7h2bgAD8afp8iN-MSy5irsL33PfE
Pour organiser des compteurs et des minuteurs à haute résolution, utilisez la fonctionGetTickCount(), qui fournit des valeurs en millisecondes.
Suggérez-vous de mesurer en secondes ? Même les millisecondes sont lentes aussi.
mon compteur de millisecondes est toujours activé, mais si 1 cycle sur 1000 échoue, même en une minute, je ne peux pas le rattraper sans programme spécial.
Je ne peux même pas en attraper une en une minute sans un programme spécial.
https://www.youtube.com/playlist?list=PLIo3S7h2bgAD8afp8iN-MSy5irsL33PfE
Pour organiser des compteurs et des minuteurs à haute résolution, utilisez la fonctionGetTickCount(), qui fournit des valeurs en millisecondes.
Suggérez-vous de mesurer en secondes ? Même les millisecondes sont lentes aussi.
mon compteur de millisecondes est toujours activé, mais si 1 cycle sur 1000 échoue, même en une minute, je ne peux pas le rattraper sans programme spécial.
De plus, lorsque le terminal raccroche, le compteur ne fonctionne pas.
Cela fonctionne jusqu'à ce point, pourquoi mesurer ce qui n'est pas tangible, le fait que votre terminal se bloque est plus probablement une boucle infinie dans votre algorithme, la présence d'une récursion profonde, plutôt que la vitesse du terminal.
Cela fonctionne jusqu'à ce point, pourquoi mesurer quelque chose qui n'est pas tangible, le fait que votre terminal se bloque est plus probablement une boucle dans votre algorithme, la présence d'une récursion profonde, pas la vitesse du terminal.
Pas du tout - le terminal ne se bloque que lorsqu'il y a deux événements - une opération telle que la modification de l'ordre et un mouvement brusque du prix de l'instrument - le serveur d'échange ferme toutes les demandes des clients et ils se bloquent.
Lorsque le mouvement des prix est stabilisé, il commence à répondre aux demandes des clients.
La raison en est que le serveur, à ces moments-là, soit n'a pas le temps de traiter les demandes, soit le fait exprès pour ne pas permettre au client de recevoir un bénéfice. Pour comprendre cela, nous avons besoin d'un protocole d'échange MT%6 avec le serveur des sociétés de courtage.
D'ailleurs, en ce moment, la position ne peut pas être piratée même depuis le terminal - elle est indisponible...
Lorsqu'il n'y a pas de mouvements soudains, le système fonctionne assez rapidement et parvient à envoyer une position ouverte en une seconde... Mais j'aimerais que le temps entre le signal d'ouverture d'une position et un ordre d'ouverture de position atteigne 100 ms (bien que je connaisse des systèmes avec un temps de 15 ms.
Pour cela, je fais beaucoup de travail, à commencer par la mise à niveau du matériel, du système d'exploitation et le choix d'un fournisseur...
- admin
- shelandr.ru
Pas du tout - le terminal ne se bloque que lorsqu'il y a deux événements - une opération telle que la modification d'un ordre et un mouvement brusque du prix de l'instrument - le serveur d'échange ferme toutes les demandes des clients et ils se bloquent.
Lorsque le mouvement des prix est stabilisé, il commence à répondre aux demandes des clients.
La raison en est que le serveur, à ces moments-là, soit n'a pas le temps de traiter les demandes, soit le fait exprès pour ne pas permettre au client de recevoir un bénéfice. Pour comprendre cela, nous avons besoin d'un protocole d'échange MT%6 avec le serveur des sociétés de courtage.
D'ailleurs, en ce moment, la position ne peut pas être piratée même depuis le terminal - elle est indisponible...

- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
J'ai une question : comment fonctionnent lescommandes?
Lorsque nous accédons à cette commande, le terminal initie une requête au serveur ou cette information est reçue en permanence avec les guillemets et nous la prenons simplement dans le tampon du terminal ou dans un fichier sur le disque ?
En bref, combien de temps prend l'exécution de cette commande ? Et s'il lit sur le disque, comment cela dépend-il du type de disque ou de SSD ?
Texte intégral...
En fait, l'information la plus importante dont on a besoin de manière opérationnelle est la présence ou l'absence d'une position ouverte, ainsi que le niveau de prix d'une position ouverte.
Je comprends que cette analyse doit être effectuée dans void OnTrade() - c'est-à-dire que lorsque la position est ouverte, cette sous-routine sera initialisée ?