
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
C'est parce que la valeur du pip est différente pour les différentes paires...
Je pense que la valeur du pip est redondante dans le mode d'affichage "profit en pips".
Je pense que la valeur du point est redondante dans le mode d'affichage "profit en pips".
Glitches....
1) Si vous supprimez les instruments inutiles de Market Watch et que vous en ajoutez à nouveau, vous obtenez une chose intéressante.
Cliquez avec le bouton droit de la souris sur un instrument et sélectionnez "Chart Window" pour ouvrir un graphique.
Cela ouvrira un graphique d'un instrument différent de celui que vous avez sélectionné ! !!
Pour que cette erreur se produise, vous devez sélectionner un outil parmi ceux que vous venez d'ajouter. (voir les captures d'écran pic1, pic2, pic3)
2) dans ma capture d'écran, vous pouvez voir que l'instrument USDCHF est marqué comme sélectionné dans la fenêtre "Symboles", bien qu'il ne soit pas réellement dans le "Market Watch". (pic4)
Le premier problème est peut-être une conséquence du second, car la numérotation des instruments dans le Market Watch est erronée.
J'ai un très mauvais Internet, c'est pourquoi toutes les captures d'écran sont dans les archives.
Voici le lienhttp://www.sendspace.com/file/tbav73
Glitches....
1) Si vous supprimez les instruments inutiles de Market Watch et que vous en ajoutez à nouveau, vous obtenez une chose intéressante.
Cliquez avec le bouton droit de la souris sur un instrument et sélectionnez "Chart Window" pour ouvrir un graphique.
Cela ouvrira un graphique d'un outil autre que celui que vous avez sélectionné ! !!
Aujourd'hui (ou plutôt hier) dans la matinée, j'ai eu un étrange problème dans MT4 - OrderSelect n'a pas trouvé un ordre par numéro de ticket dans un conseiller expert.
Deux ordres en attente sont placés dans l'EA - BUY_STOP et SELL_STOP, sur des côtés opposés du prix actuel. Les tickets de ces commandes sont stockés dans t1 et t2. Le code où l'erreur s'est produite, comme indiqué ci-dessous, fait ce qui suit : lorsque l'un de ces ordres en attente est ouvert, le second est supprimé et l'ordre en attente suivant avec le numéro t3 est placé à la place. S'il y a eu une erreur lorsque t1 et t2 ont été placés à l'origine, le ticket erroné ne devrait pas figurer sur la liste des commandes. C'est ce qui est vérifié avec if (OrderSelect ...) et, en cas d'erreur, nous écrivons un message dans le journal et quittons la série en utilisant restart().
Aujourd'hui, t1 a ouvert à 6h30. L'ordre t2 a été immédiatement supprimé par le conseiller expert (il a été supprimé du marché, mais il est resté dans l'historique - "annulé", j'ai vérifié). Après cela, t3 a été placé. Ces événements figurent tous dans les journaux de MT et EA. Ensuite, le contrôle "OrderSelect(t2, SELECT_BY_TICKET)" renvoie FALSE et la série s'arrête avec l'erreur "Unknown order t2". C'est étrange, car t2 a été défini et supprimé sans erreur et est resté dans l'historique. Le mode historique dans MT est "Tout l'historique". Comment OrderSelect a-t-il pu ne pas le trouver ?
L'ordinateur est autonome, utilisé uniquement pour le trading, rien d'autre. Personne n'y touche sauf moi. La charge du CPU est en moyenne de 10%. La mémoire, l'espace disque, etc. sont suffisants.
La version de MT4 est 402. Depuis plusieurs mois, le conseiller expert fonctionne dans différentes variations en temps réel sur un compte de démonstration dans un MT parallèle à trois paires différentes (sur trois graphiques). Il n'y avait aucun problème avec cette partie du code jusqu'à ce matin. Ensuite, tout s'est déroulé sans problème l'après-midi et le soir pour les autres paires sur la même EA. C'est-à-dire que l'erreur ne peut pas être reproduite à volonté.
Question : comment cela a-t-il pu se produire ? Est-ce un problème dans MT ou quelque chose que je n'ai pas pris en compte dans le code ?
Ce code utilise les fonctions OrderDeleteX et OrderSendX - des enveloppes pour les fonctions standard OrderDelete et OrderSend, qui ajoutent des vérifications de l'absence d'occupation d'un fil commercial et enregistrent des événements tels que "Suppression de l'ordre ..." et "Envoi de l'ordre ..." dans le journal de l'EA.
J'ai supprimé les calculs de prix pour rendre le code plus simple et plus clair.
Numéros d'ordre dans les variables :
t2 = 119732180
t3 = 119733656
Je ne trouve aucun ordre. Nous pouvons voir dans le rapport DC que la commande 67930924 était ouverte...
Ce sont des transactions fermées dans l'historique du compte depuis le 08.06.11. Comme nous pouvons le voir, cet ordre n'est pas là.
Il doit donc s'agir d'un commerce ouvert. L'image ci-dessous, des échanges ouverts.
Mais il n'est pas là non plus. Je me demande quel rapport sera envoyé demain par la DC, mais je veux entendre la version des développeurs de logiciels, comment cela peut être.
Et une dernière chose, peut-être que ce n'est pas important, mais ma date n'est pas enregistrée et je n'ai aucune information à ce sujet.
Je ne trouve aucun ordre. Nous pouvons voir dans le rapport DC que la commande 67930924 était ouverte...
Ce sont des transactions fermées dans l'historique du compte depuis le 08.06.11. Comme nous pouvons le voir, cet ordre n'est pas là.
Il doit donc s'agir d'un commerce ouvert. L'image ci-dessous, des échanges ouverts.
Mais il n'est pas là non plus. Je me demande quel rapport sera envoyé demain par la DC, mais je veux entendre la version des développeurs de logiciels, comment cela peut être.
Et une dernière chose, peut-être que ce n'est pas important, mais ma date n'est pas enregistrée et je n'ai aucune information à ce sujet.
Dans la continuité du thème "OrderSelect n'a pas trouvé de commande par numéro de ticket".
Ce matin, la même erreur s'est produite dans le même Expert Advisor sur une autre paire. L'ordre en attente t2=#119899844 a été placé avec succès, puis il a été supprimé avec succès également, après quoi l'ordre en attente t3=#119903758 a été placé, et après cela t2 n'a pas été trouvé par la fonction OrderSelect.
Entre l'erreur d'hier et celle d'aujourd'hui, le code donné dans mon message précédent dans l'Expert Advisor a fonctionné plusieurs fois sans erreur et les ordres supprimés ont été retrouvés sans problème.
Depuis plusieurs mois auparavant, le conseiller expert fonctionnait dans la version MT4 229. Rien de tel n'a été observé auparavant. Le week-end dernier, il y a 4 jours, je suis passé à la version 402. Je ne sais pas si les erreurs sont liées à la nouvelle version. Je ne peux pas revenir à l'ancienne version, car Alpari, où ce conseiller-expert est utilisé, a changé le fuseau horaire des cotations, et seule la version 402 reflète correctement ces changements (selon Alpari).
Les questions sont restées ouvertes :
Comment cela a-t-il pu se produire, pourquoi OrderSelect n'a-t-il pas trouvé la commande dans l'historique, alors que l'historique est affiché dans son intégralité, la commande perdue y est visible ? Est-ce un problème de MT ou est-ce que je manque quelque chose dans le code ?
Il existe une DLL écrite en Delphi7. Il n'a qu'une seule fonction - vérifier s'il existe un fichier dans le chemin spécifié.
Voici son code.
Rien de compliqué, rien de spécial, juste une fonction.
Voici le code de l'Expert Advisor qui utilise cette fonction :
et voici le code du fichier d'en-tête
Voici le code du fichier d'en-tête. S'il n'y a qu'un seul conseiller expert dans le terminal, tout fonctionne comme sur des roulettes.
Si j'en ai deux dans le terminal, dans des fenêtres différentes, et qu'ils appellent cette fonction, toutes les quelques heures, les deux EA cessent de fonctionner et des messages apparaissent dans le journal.