Erreurs, bugs, questions - page 2106

 
Vladislav Andruschenko:

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.
 
fxsaber:
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.

 
Vladislav Andruschenko:

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.

 
fxsaber:

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...
 
Vladislav Andruschenko:

En conséquence, le conseiller expert obtient l'erreur 10012 et tente de placer à nouveau l'ordre.

Je perdrais mon statut de vendeur pendant un an pour un tel code sur le marché.
 
A100:
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.
 
Vladislav Andruschenko:

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.

 
Vladislav Andruschenko:
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.

 
fxsaber:

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.

 
Vladislav Andruschenko:

Je suis d'accord. Nous devons le changer.

Il existe une branche sur cette règle.

Организация цикла перебора ордеров
Организация цикла перебора ордеров
  • 2017.09.16
  • www.mql5.com
MQL4 и MetaTrader 4: Организация цикла перебора ордеров
Raison: