Erreurs, bugs, questions - page 2106
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
D'un point de vue purement technique, je comprends la particularité. Dans ce cas : lorsque vous sortez - vous devez attendre qu'un nouveau ticket apparaisse dans l 'historique des transactions, si un nouveau ticket apparaît - alors la transaction ou l'ordre est ouvert.
Si un ordre de transaction a été envoyé via un OrderSend synchrone, il n'y a aucun moyen de quitter l'exécution de l'OrderSend. Tout ressemble à un bug du terminal VPS.
à travers elle.
Le problème peut en principe être résolu, après avoir reçu une erreur de dépassement de délai pour exécuter la fonction de recherche de nouveaux tickets dans l'historique.
Sinon, l'EA envoie simplement une nouvelle demande et obtient à nouveau une erreur de dépassement de délai, sans obtenir de ticket.
Merci.
Le problème peut en principe être résolu, après avoir reçu une erreur de dépassement de délai, exécuter la fonction de récupération des nouveaux tickets dans l'historique.
Vous devez l'écrire en SD. Sinon, après chaque envoi d'ordre, vous attendrez trois minutes pour un délai d'attente, en obtenant les risques de transaction correspondants.
Vous devez écrire sur le CD. Sinon, après chaque envoi d'ordre, vous attendrez trois minutes pour un délai d'attente et obtiendrez les risques de transaction correspondants.
Et c'est ce que j'ai fait.
Cette erreur se produit 1 fois sur 1000, et jusqu'à présent, elle ne s'est produite que sur un VPS de MQL...En conséquence, le conseiller expert obtient l'erreur 10012 et tente de placer à nouveau l'ordre.
Je vous priverais du statut de vendeur pendant un an pour un tel code sur le Marché.
C'est la première fois que je rencontre une telle erreur.
Je n'ai aucune erreur de ce type dans mon code. Aucun ticket ne signifie qu'une transaction n'a pas été ouverte. Cela signifie que l'EA essaie d'ouvrir une nouvelle transaction.Le problème est fondamentalement soluble, après avoir reçu une erreur de dépassement de délai, exécutez la nouvelle fonction de récupération des tickets dans l'historique.
L'histoire n'a rien à voir avec cela. OrderSend envoie la commande, et celle-ci apparaît dans le Terminal avec le statut ORDER_STATE_STARTED.
Mais cela ne signifie pas que OrderSend a fini de s'exécuter. L'OrderSend continuera à s'exécuter jusqu'à ce que le statut de l'ordre change.
Par conséquent, si vous voyez un délai d'attente, il est 99% certain que le statut de la commande est ORDER_STATE_STARTED(je levois, mais ce n'est pas clair quand j'ai pris la capture d'écran).
De plus, le même délai peut se produire sans votre envoi d'ordre - lorsque le serveur MT5 effectue lui-même l'envoi d'ordre (TP/SL/MC/Expiration). Mais vous ne le verrez pas dans le terminal.
Je n'ai pas une telle erreur dans mon code. pas de ticket - cela signifie que la transaction n'a pas été ouverte. cela signifie que le conseiller expert essaie de rouvrir la transaction.
Cette logique est incorrecte. Après l'échec d'OrderSend et la réussite d'OrderSend, l'environnement commercial actuel doit être entièrement relu. Cette règle devrait toujours être en vigueur.
À propos des codes de retour. Je ne les analyse pas dans mes EA. Je pense que la logique commerciale ne devrait pas en dépendre.
Cette logique est incorrecte. Après l'échec d'OrderSend et la réussite d'OrderSend, l'environnement commercial actuel doit être relu entièrement. Cette règle devrait toujours être en vigueur.
Je suis d'accord. Il faut le changer.
Je suis d'accord. Nous devons le changer.
Il existe une branche sur cette règle.