S'il vous plaît, aidez-moi à résoudre ce mystère ! - page 2

 
WHRoeder:
À moins que vous n'utilisiez le mode visuel dans le testeur, il n'y aura jamais rien dans le journal.
Rien n'est publié dans le journal pendant l'optimisation, mais la publication dans le journal fonctionne parfaitement si le mode visuel n' est PAS coché. (juste testé sur la Build 445)
 

J'utilise le mode visuel dans tous les cas !

Il y a autre chose qui est très étrange. Lorsque j'exécute le même EA avec les mêmes paramètres plus d'une fois, j'obtiens des transactions différentes sur l'affichage du mode visuel !

La plupart du temps, 90% sont identiques, mais à certains endroits, les résultats sont différents après plusieurs exécutions !

Y a-t-il des tampons (par exemple des variables) qui doivent être initialisés ou effacés après chaque exécution ? J'essaie d'initialiser toutes les variables dans la section de déclaration.

Peut-être mon ordinateur s'est-il détraqué ? Je me raccroche à n'importe quoi pour le moment.

 
ernest02:

J'utilise le mode visuel dans tous les cas !

Il y a autre chose qui est très étrange. Lorsque j'exécute le même EA avec les mêmes paramètres plus d'une fois, j'obtiens des transactions différentes sur l'affichage du mode visuel !

La plupart du temps, 90 % des résultats sont les mêmes, mais à certains endroits, les résultats sont différents après plusieurs exécutions !

Y a-t-il des tampons (par exemple des variables) qui doivent être initialisés ou effacés après chaque exécution ? J'essaie d'initialiser toutes les variables dans la section de déclaration.

Peut-être mon ordinateur s'est-il détraqué ? Je me raccroche à n'importe quoi pour l'instant.

Quel est l'écart entre les deux séries ?
 

Ok les gars ! Résolvez celui-là !

Regardez le gros morceau de code que j'ai posté.

La première ligne est une déclaration "if" et si elle est vraie, elle traitera les lignes suivantes.

Une des actions qui doit avoir lieu est la fermeture de tout ordre d'achat ouvert.

Lorsque j'exécute l'EA dans le testeur, il ferme effectivement tous les ordres d'achat, MAIS...

Il saute l'instruction Print au milieu du code - et cela n'est pas enregistré dans le Journal !

Donc je sais que le code est traité, mais seulement CERTAINES déclarations d'impression sont enregistrées dans le Journal - mais d'autres NON !

Veuillez m'expliquer cela !

 
ernest02:

Maintenant, lorsque j'exécute l'EA dans le Tester, il ferme effectivement tous les ordres d'achat MAIS...

Il saute la déclaration d'impression au milieu du code - et cela n'est pas enregistré dans le journal !

Je sais donc que le code est traité, mais seulement CERTAINES instructions d'impression sont enregistrées dans le journal - mais d'autres NON !

Expliquez-moi cela, s'il vous plaît !

Ce qui suit s'imprimera dans le journal....

   Print("SellTicket is ",SellTicket);    // <----- this will print

   if (SellTicket >= 0) 
      {
      PlaySound("news.wav");
      SellTime = OrderOpenTime();
      SellSignal = false;

      }
   Print("SellSignal2 is ", SellSignal);  // <----- this will print

Si elles ne s'impriment pas, alors, pour autant que je sache, les possibilités sont les suivantes

  • vous n'exécutez pas le code que vous avez affiché
  • Les ordres d'achat sont fermés par un autre code/fonction.

 

si SellTicket est égal à zéro, sérieusement ?

if (SellTicket >= 0) // ???

Faites un clic droit sur le journal, sélectionnez Ouvrir et ouvrez le journal avec le bloc-notes.

L'onglet journal n'affiche pas toujours tous les journaux.

 

J'ai regardé le fichier journal et aucune transaction de vente ou d'achat n'y est enregistrée, ni aucune des autres commandes d'impression.

Je suis tellement démotivé ! Cela fait maintenant 2 semaines que je suis sur cette chose et je n'ai fait aucun progrès et je suis à court d'idées sur ce que pourrait être le problème.

(Je tiens à préciser que j'ai également installé Metatrader 5 sur mon ordinateur et que j'utilise Windows 7 qui stocke certaines données et certains fichiers journaux dans le magasin virtuel sous Utilisateurs).

 
ernest02:

J'ai regardé le fichier journal et aucune transaction de vente ou d'achat n'y est enregistrée, ni aucune des autres commandes d'impression.

Je suis tellement démotivé ! Cela fait maintenant 2 semaines que je suis sur cette chose et je n'ai fait aucun progrès et je suis à court d'idées sur ce que pourrait être le problème.

(Je tiens à préciser que j'ai également installé Metatrader 5 sur mon ordinateur et que j'utilise Windows 7 qui stocke certaines données et certains fichiers journaux dans le magasin virtuel sous Utilisateurs).

Ah, où MT4 est-il installé, dans Program Files ? Si c'est le cas, vous avez peut-être un problème d'UAC. Vous pouvez essayer une nouvelle installation de MT4 dans un répertoire qui n'est pas Program Files, par exemple, C:\MT4-Installs\ et essayer votre EA.
 

J'ai créé un dossier sous C:/ où j'ai installé MT4, mais j'ai deux autres copies (une live et une demo) qui sont installées sous Program Files (x86).

Je n'ai pas de fichiers journaux avec les deux dernières mais j'en ai sous la racine de MT4. (C'est pourquoi je peux rendre compte de ce qui se trouve dans le fichier journal).

Je viens de remarquer une autre anomalie. (J'ai déjà mentionné le fait que j'obtiens des résultats différents pour deux exécutions identiques).

J'utilise iCCI pour suivre l'indice CCI afin de prendre des décisions d'achat/vente. J'ai découvert que les transactions se produisent même lorsque la condition CCI n'est pas vraie !

C'est un tel désordre ! J'ai envie de revenir à l'époque de XP où mon système semblait être beaucoup plus simple et plus stable !

Je suis sur le point de jeter l'éponge !

 
@ernest02: Réécrivez simplement le code. Utilisez les fonctions Print/Alert/Comment pour déboguer vos codes. Si vous vous demandez pourquoi l'envoi d'ordre a été exécuté, imprimez les valeurs des variables qui le déclenchent [juste au-dessus de l'envoi d'ordre]. Si vous vous demandez pourquoi CCI == true, imprimez les valeurs des variables qui déclenchent l'appel CCI [avant l'appel CCI]. Continuez à déplacer l'instruction d'impression en arrière comme ceci jusqu'à ce que vous trouviez le coupable.