Erreurs, bugs, questions - page 2068
![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
Mettez les bûches, ça aura plus de sens. Tant le conseiller expert que le terminal.
Onglet "Terminal
Onglet Expert
Aucune fermeture n'a vraiment lieu après l'erreur 3. Je l'ai compris.
Le conseiller expert n°1 est en train de fermer et le second essayait de fermer la même position en même temps.
J'ai corrigé la logique de fonctionnement et il n'y a plus d'erreurs maintenant.
MAIS : Le numéro d'erreur passe de #3 à #4108 lorsque les paramètres passés à OrderClose() dans la boucle restent inchangés.
Pourquoi la première erreur #3 et ensuite #4108 sont lancées ? - C'est la question qui demeure.
{Si nous regardons les chronologies, alors nous avons une tentative de fermeture d'un ordre verrouillé (dans ce cas, l'erreur 139 elle-même n'est pas affichée), mais après sa fermeture (et donc l'ordre est déverrouillé) nous obtenons l'erreur 3 }.
Pourquoi le terminal ne nous donne-t-il pas une erreur spécifique indiquant que l'ordre est bloqué, mais plutôt l'erreur trop générale 3 ?
MAIS : Changez le numéro d'erreur de #3 à #4108 quand les paramètres passés à OrderClose() dans la boucle sont inchangés.
Pourquoi l'erreur n°3 est la première et ensuite la n°4108 ? - C'est la question qui demeure.
C'est la version du code où il y avait 1 OrderSelect, n'est-ce pas ? Alors le 4108 est justifié.
3 est quand un autre EA ferme une position et 4108 est quand nous essayons de fermer une position déjà fermée.
C'est la version du code où il y avait 1 OrderSelect, n'est-ce pas ? Alors le 4108 est justifié.
3 est quand un autre EA ferme une position, 4108 est quand nous essayons de fermer une position déjà fermée.
Bien.
Mais pourquoi l'erreur 139 n'est-elle pas générée lorsqu'on essaie de clôturer un ordre qui a déjà été clôturé ?
Après tout, nous avons plutôt la situation de l'erreur 139. N'est-ce pas ?
Texte d'erreur incorrect
Correct.
Mais pourquoi l'erreur 139 ne s'affiche-t-elle pas lorsqu'on essaie de clôturer un ordre qui a déjà été envoyé à la clôture ?
Après tout, nous avons plutôt la situation de l'erreur 139. N'est-ce pas ?
Je ne sais pas. Mais on ne peut pas non plus parler de bogue.
Je ne sais pas. Mais il est difficile d'appeler ça un bug non plus.
Si vous regardez le journal du terminal, le message d'erreur 3 est généré après la fermeture de la position, et non lorsque le verrouillage du serveur aurait dû être détecté.
Le message d'erreur 139 aurait pu être affiché presque 0,5 seconde plus tôt. Pendant tout ce temps, le conseiller expert "se bloque" pour obtenir l'erreur 3 après la fermeture de l'ordre.
Et d'ailleurs, l'erreur 3 Invalid Parameters figure dans le journal du terminal et 4108 uniquement en raison de sa sortie et uniquement dans l'onglet EA. Il semble que le 4108 soit un traitement côté client.
Je veux juste connaître/comprendre la logique afin de la mettre dans le code plutôt que de tâtonner avec la méthode de la jauge scientifique.... )
Dans quelle autre situation pourrait-on obtenir une erreur 139 que celle-ci... ?
Quelle meilleure situation pour obtenir une erreur 139 que celle-ci... ?
Lorsqu'un ordre en attente/SL/TP est déclenché ou qu'une position est fermée par un stop out (également sur le serveur).
Je ne sais pas pour le 4108.
Mais encore une fois, je ne vois aucune raison de s'y intéresser - si 2 EAs donnent simultanément un ordre de fermeture, l'un d'entre eux aura certainement une erreur (quelle différence cela fait-il ?).
Le traitement est très simple - faire OrderSelect et vérifier OrderCloseTime.
wtf ?
du modérateur :
Malheureusement, en raison d'un problème technique, le texte de la description a été supprimé. Veuillez l'écrire à nouveau et envoyer le produit pour vérification.
Nous nous excusons pour le désagrément causé.
Ce n'est pas seulement un inconvénient, c'est une douleur dans le cou plusieurs fois (chaque fois - une attente de 10 jours), et puis effacer et dire : oops, désolé, nous avons effacé, en quelque sorte le restaurer vous-même, puis attendre encore 10 jours. - Et quand j'essaie de le faire, le site se plante...
Qu'est-ce que c'est que ça ? Quel genre de pépin doit-il se produire pour que ça se perde ? Qu'il n'y ait pas d'historique à récupérer ? Le message de description a été stocké pendant quelques jours.
Pourquoi le message du modérateur ne s'est pas affiché cette fois-ci ?
Je sais pertinemment que ce problème d'effacement n'arrive pas une seule fois. Ce prétendu pépin, en fait ce n'est pas un pépin (Probablement retardé), car il n'arrive pas qu'à moi et pas en même temps (le problème existe depuis plus de six mois) ! - Veuillez commenter...
Et s'il vous plaît, réparez-la. Si vous ne pouvez pas, engagez-moi. Je le ferai en une semaine, pour 2 000 euros.
Quel fiasco.
En fait, vont-ils rétablir l'effacement ? La moitié de ma correspondance avec le modérateur a disparu. Les messages du forum ont disparu. Et les modérateurs ont supprimé des messages qui étaient devenus vides.
Pourquoi n'y a-t-il pas de mode de maintenance ? - Il est préférable de dire dans un tel ordre : d'abord le mode est activé, puis le travail est en cours, puis le mode est rétabli.
Dès que j'ai posté un message, le site est en panne. J'ai décidé d'actualiser - le site est en panne...
Ce n'est pas une façon de travailler - enfin, ce n'est pas sérieux...
Dans un nouveau commentaire au modérateur, j'ai dupliqué la description qui manquait pour ne plus en perdre.
que faire avec le produit ? l'envoyer par email ? le joindre aux commentaires ? ou réessayer et attendre 24 heures ?
TimeTradeServer
Возвращает расчетное текущее время торгового сервера. В отличие от функции TimeCurrent(), расчет значения времени производится в клиентском терминале и зависит от настроек времени на компьютере пользователя. Существует 2 варианта функции.
Les paramètres dont nous parlons ne sont pas clairs ! J'ai un courtier d'ouverture qui diffuse 13 heures, l'ordinateur de bureau affiche 13 heures, mais la fonction renvoie 12 heures - comment cela se fait-il ?
Par conséquent, il n'est pas clair pourquoi cette fonction
Calcule tout, siOpen_Time est 13 heures etNowTime est 12 heures.