Erreurs, bugs, questions - page 2220
![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
À mon avis, il s'agit d'un bogue lorsqu'un ordre se trouve sur le serveur commercial, mais qu'après l'envoi synchrone de l'ordre sur le terminal, il n'y a aucun signe de celui-ci.
J'ai décidé de vérifier combien de temps durent ces ordres fantômes lorsque l'ordre est présent sur le système mais pas dans le terminal.
Le résultat est
Une commande est présente dans le système mais pas dans le terminal pendant 32 millisecondes ! Imaginez les conséquences si la logique de trading était exécutée dans cet intervalle ...
Il est intéressant de constater que les ordres fantômes ne sont le plus souvent présents que pour les types de transactionTRADE_TRANSACTION_ORDER_DELETE et TRADE_TRANSACTION_DEAL_ADD (beaucoup plus rares).
Très mauvaise nuance de plate-forme.
ZZY La vitesse des transactions commerciales sur 5 est malheureusement discutable.
J'ai décidé de vérifier combien de temps durent ces situations d'ordre fantôme, lorsqu'un ordre est dans le système mais pas dans le terminal.
Le résultat est
Pendant 32 millisecondes, il y a un ordre mais il n'est pas dans le Terminal ! Imaginez les conséquences si la logique de trading était exécutée pendant cet intervalle.
Oui, ce n'est pas bon. Comme vous pouvez le voir, les résultats des transactions sont envoyés dans des paquets différents. Ils devraient être réunis en un seul.
Comme vous pouvez le constater, les résultats de ces transactions sont envoyés dans des paquets différents, alors qu'ils devraient être dans un seul.
Il s'avère que l'ordre peut être fantôme juste après l'envoi de l'ordre et que le conseiller expert parallèle avec OnTradeTransaction ne peut pas toujours détecter cet état. C'est-à-dire que OnTradeTransaction lui-même est parfois ralenti.
D'une manière générale, il y a des décalages dans l'architecture de MT5 à différents endroits qui sont difficilement éliminés. Il s'agit des décalages des arrivées de tirages et maintenant des transactions commerciales. Vous devez savoir clairement ce dont la plateforme est capable si vous misez sur la vitesse d'exécution. Par exemple, les ticks arrivent avec un délai raisonnable, puis les transactions... et finalement quelqu'un d'autre sur MT5 ou une autre plateforme peut prendre le dessus, même si vous êtes assis juste à côté de la bourse.
Les transactions commerciales vont dans des paquets prioritaires, prenant le pas sur les autres. Cela réduit considérablement la latence.
Comment est-il possible que le script détecte une situation d'ordre fantôme après OrderSend, mais que OnTradeTransaction sur un EA parallèle ne le fasse pas (pas toujours, mais cela arrive) ?
Les transactions commerciales arrivent en paquets prioritaires, prenant le pas sur les autres. Cela réduit considérablement la latence.
Le problème est que les transactionsTRADE_TRANSACTION_ORDER_DELETE etTRADE_TRANSACTION_HISTORY_ADD arrivent dans des paquets différents et c'est pourquoi la priorité qu'elles ont n'a pas d'importance, la latence du réseau en aura de toute façon.Et ces transactions doivent être exécutées de manière synchrone, l'une après l'autre, sans aucun état intermédiaire, c'est-à-dire qu'il s'agit d'une opération atomique par essence, car le fait de placer un ordre supprimé dans la liste historique n'a rien à voir avec un échange.
Autrement dit, il y a deux possibilités : soit ces deux transactions sont regroupées en un seul paquet, soit la première transaction n'est pas exécutée dans le terminal avant l'arrivée de la seconde.
Autrement dit, il y a deux possibilités : soit ces deux transactions sont regroupées en un seul paquet, soit la première transaction n'est pas exécutée dans le terminal avant l'arrivée de la seconde.
Il y a des situations où la transaction TRADE_TRANSACTION_DEAL_ADD vient AVANT la transaction TRADE_TRANSACTION_ORDER_DELETE. Dans ce cas, même avant TRADE_TRANSACTION_ORDER_DELETE, l'ordre est toujours fantôme.
Les agents distants ont cessé d'optimiser
Je suppose que c'est à cause du nouveau compilateur, comment peut-on les mettre à jour pour que cela fonctionne ?
En outre, seule une partie de l'optimiseur passe 13 fois sur 28 à cause de cette erreur.Examen du code du paquet Alglib. Il est plein de ces constructions, ce qui rend le code plus difficile à lire:
N'est-ce pas plus simple comme ça ?
Il me semble que la vitesse d'exécution serait encore plus rapide.
Pourquoi ont-ils rendu le code si compliqué ? Ou simplement porté d'une autre langue, sans aucun ajustement ? Mais je me demande toujours pourquoi une telle complication dans l'original ?Outil synthétique. J'importe des barres de minutes, chaque barre de minutes diffère d'un point (5 chiffres).
Je ferme la fenêtre avec les symboles, puis je rouvre cette fenêtre, demande les barres minutes du chargement précédent, j'obtiens
Les symboles sont les mêmes pour chaque journée complète. Quelle est l'erreur ?