Andrey Khatimlianskii: C'est vrai, la latence du réseau. L'envoi (ou la confirmation) de la commande prend beaucoup de temps et l'événement est perdu.
Non, ce n'est pas le cas !
1. Il ne s'agit pas d'un retard "réseau", mais d'un retard du serveur MT5(peut-être le matériel du courtier).
2. la TradeTransaction n'est PAS toujours perdue (TOUJOURS), comme vu ci-dessus, le délai était de 409 ms et l' événement n'a pas été perdu.
C'estpourquoi je soutiens que ce n'est pas le réseau mais le serveur MT5 (le matériel du courtier) qui est responsable des retards.
Le temps de réponse du serveur pour la fonction CheckOrders() est de 700 à 1200 ms (en fonction de l'utilisation de la fonction).
à quel moment du timer (période 500 ms) la commande a été envoyée), ce qui est 100 fois plus long que le temps d'exécution (dans ma configuration) en mode normal ( 7-9 ms)
Le fait qu'avec un délai de 18 ms l'événement a été perdu, et qu'avec 409 ms il ne l'a pas été, nous permet de dire qu'il s'agit d'un "bug" du serveur MT5 et non d'autres
causes.
Aussi... Mon ami, qui vit dans ma maison, effectue des transactions sur deux terminaux avec mon robot par l'intermédiaire de mon ISP via le même routeur dans la maison, et pour une raison quelconque, il...
aucune latence à ce moment-là !
2015.10.2214:14:05.041 Trades 'xxxxx': modify order #22486145 buy limit 2.00 ED-6.16 at 1.1326 sl: 0.0000 tp: 0.0000 -> 1.1332, sl: 0.0000 tp: 0.00002015.10.2214:14:05.049 Trades 'xxxxx': modify order #22486145 buy limit 2.00 ED-6.16 at 1.1326 sl: 0.0000 tp: 0.0000 -> 1.1332, sl: 0.0000 tp: 0.0000 placed for execution in8 ms
2015.10.2214:14:38.389 Trades 'xxxxx': cancel order #22486314 sell limit 2.00 Eu-12.16 at 828672015.10.2214:14:38.397 Trades 'xxxxx': cancel order #22486314 sell limit 2.00 Eu-12.16 at 82867 placed for execution in8 ms
Andrey Khatimlianskii: Michael, s'il te plaît, ne modifie pas les messages. Mieux vaut en ajouter de nouveaux, pour ne pas avoir à chercher les mises à jour du regard.
Il y avait beaucoup d'erreurs, alors je les ai corrigées...
Le script fait OrderSelect sur chaque commande avant de la supprimer et si elle est sélectionnée, cela signifie qu'elle n'est pas dans l'historique et active, quelles sont les erreurs ?
Après avoir supprimé un ordre, les numéros des ordres restants non traités sont décalés de 1.
En d'autres termes,nous ouvrons une positionavec un ordre, la fermons avec un ordre inverse, et examinons le volume de la position en conséquence.
Nous attendons 0 (zéro), nous avons 1 (un). Les journaux sont ci-dessous (commencez en bas).
2015.10.2716:28:11.4762015.10.2610:05:08ExpertRemove() function called
2015.10.2716:28:11.4652015.10.2610:03:14 INFO>> *** VOLUME=1.0 *** ID=2 *** TYPE=POSITION_TYPE_SELL *** OrdersTotal()=02015.10.2716:28:11.4502015.10.2610:01:47 CLOSE Volume=1.02015.10.2716:28:11.4502015.10.2610:01:47 CLOSE OrdersTotal()=02015.10.2716:28:11.4502015.10.2610:01:47 CLOSE Deal=32015.10.2716:28:11.4502015.10.2610:01:47 CLOSE Order=32015.10.2716:28:11.4502015.10.2610:01:47 CLOSE Retcode=100092015.10.2716:28:11.4502015.10.2610:01:47 CLOSE OrderSend=true2015.10.2716:28:11.4492015.10.2610:01:47 order performed buy 1.00 at 9249 [#3 buy 1.00 SBRF-12.15 at 9249]
2015.10.2716:28:11.4492015.10.2610:01:47 deal performed [#3 buy 1.00 SBRF-12.15 at 9249]
2015.10.2716:28:11.4492015.10.2610:01:47 deal #3 buy 1.00 SBRF-12.15 at 9249 done (based on order #3)
2015.10.2716:28:11.4492015.10.2610:01:47 exchange buy 1.00 SBRF-12.15 at 9249 (9242 / 9249 / 9242)
2015.10.2716:28:11.4492015.10.2610:01:47 CLOSE>> *** VOLUME=1.0 *** ID=2 *** TYPE=POSITION_TYPE_SELL *** OrdersTotal()=02015.10.2716:28:11.4222015.10.2610:00:57 order performed sell 1.00 at 9205 [#2 sell stop 1.00 SBRF-12.15 at 9205]
2015.10.2716:28:11.4222015.10.2610:00:57 deal performed [#2 sell 1.00 SBRF-12.15 at 9205]
2015.10.2716:28:11.4222015.10.2610:00:57 deal #2 sell 1.00 SBRF-12.15 at 9205 done (based on order #2)
2015.10.2716:28:11.4222015.10.2610:00:57 order [#2 sell stop 1.00 SBRF-12.15 at 9205] triggered
2015.10.2716:28:11.4222015.10.2610:00:57 OPEN Volume=0.02015.10.2716:28:11.4222015.10.2610:00:57 OPEN OrdersTotal()=12015.10.2716:28:11.4222015.10.2610:00:57 OPEN Deal=02015.10.2716:28:11.4222015.10.2610:00:57 OPEN Order=22015.10.2716:28:11.4222015.10.2610:00:57 OPEN Retcode=100092015.10.2716:28:11.4222015.10.2610:00:57 OPEN OrderSend=true2015.10.2716:28:11.4222015.10.2610:00:57 sell stop 1.00 SBRF-12.15 at 9205 (9205 / 9227 / 9205)
2015.10.2716:28:11.4222015.10.2610:00:57 OPEN>> *** VOLUME=0.0 *** ID=0 *** TYPE=POSITION_TYPE_BUY *** OrdersTotal()=02015.10.2716:28:11.344 SBRF-12.15,M1: testing of Experts\Projects\CoinAge5\Helper_v01\mq5\Tst\TST006_Open_Close_Positions_001.ex5 from 2015.10.2600:00 to 2015.10.2700:00 started
Non, ça ne l'est pas. C'est ainsi que je traite mon propre code, alors que dans votre version, je devrais analyser une bibliothèque que je n'ai pas écrite. Si vous regardez à l'intérieur de cette bibliothèque, vous trouverez à peu près le même ensemble d'opérations que moi. C'est pourquoi je veux d'abord comprendre le mécanisme de passation des ordres sur FORTS, et ensuite, peut-être, utiliser les bibliothèques standard.
C'est vrai, la latence du réseau. L'envoi (ou la confirmation) de la commande prend beaucoup de temps et l'événement est perdu.
Non, ce n'est pas le cas !
1. Il ne s'agit pas d'un retard "réseau", mais d'un retard du serveur MT5(peut-être le matériel du courtier).
2. la TradeTransaction n'est PAS toujours perdue (TOUJOURS), comme vu ci-dessus, le délai était de 409 ms et l' événement n'a pas été perdu.
C'estpourquoi je soutiens que ce n'est pas le réseau mais le serveur MT5 (le matériel du courtier) qui est responsable des retards.
Le temps de réponse du serveur pour la fonction CheckOrders() est de 700 à 1200 ms (en fonction de l'utilisation de la fonction).
à quel moment du timer (période 500 ms) la commande a été envoyée), ce qui est 100 fois plus long que le temps d'exécution (dans ma configuration) en mode normal ( 7-9 ms)
Le fait qu'avec un délai de 18 ms l'événement a été perdu, et qu'avec 409 ms il ne l'a pas été, nous permet de dire qu'il s'agit d'un "bug" du serveur MT5 et non d'autres
causes.
Aussi... Mon ami, qui vit dans ma maison, effectue des transactions sur deux terminaux avec mon robot par l'intermédiaire de mon ISP via le même routeur dans la maison, et pour une raison quelconque, il...
aucune latence à ce moment-là !
Michael, s'il te plaît, ne modifie pas les messages. Mieux vaut en ajouter de nouveaux, pour ne pas avoir à chercher les mises à jour du regard.
Quoi ?
Le script fait OrderSelect sur chaque commande avant de la supprimer et si elle est sélectionnée, cela signifie qu'elle n'est pas dans l'historique et active, quelles sont les erreurs ?
Après avoir supprimé un ordre, les numéros des ordres restants non traités sont décalés de 1.
Michael, faisons une autre "feuille" avec des retards, ça devient ennuyeux. :))))
Quand allez-vous à l'ouverture ? :)))))))
Il y a le code suivant :
En d'autres termes,nous ouvrons une positionavec un ordre, la fermons avec un ordre inverse, et examinons le volume de la position en conséquence.
Nous attendons 0 (zéro), nous avons 1 (un). Les journaux sont ci-dessous (commencez en bas).
Quelle en est la raison ?
Voici une question que je pose aux connaisseurs. Comment remettre à zéro une position ?(FORTS, Otkrytie-Broker, Real)
Il y a le code suivant :
En d'autres termes,nous ouvrons une positionavec un ordre, la fermons avec un ordre inverse, et examinons le volume de la position en conséquence.
Nous attendons 0 (zéro), nous avons 1 (un). Les journaux sont ci-dessous (commencez en bas).
Quelle en est la raison ?
N'est-ce pas plus simple ?
?
Quelle en est la raison ?
Ce n'est pas plus simple :
?
Non, ça ne l'est pas. C'est ainsi que je traite mon propre code, alors que dans votre version, je devrais analyser une bibliothèque que je n'ai pas écrite. Si vous regardez à l'intérieur de cette bibliothèque, vous trouverez à peu près le même ensemble d'opérations que moi. C'est pourquoi je veux d'abord comprendre le mécanisme de passation des ordres sur FORTS, et ensuite, peut-être, utiliser les bibliothèques standard.