Testeur de stratégie. - page 8

 
<br / translate="no">dans le journal, sélectionnez le menu contextuel pour ouvrir. ouvrez le fichier journal correspondant et voyez s'il a été émis ou non. l'onglet journal émet des données de manière asynchrone, sur une minuterie afin de ne pas ralentir le testeur, donc les données peuvent se perdre dans l'onglet (et non dans le journal, c'est-à-dire dans le journal lui-même).

Heureusement que tu me l'as dit :) Bientôt, tout aurait commencé à s'effondrer. Le fichier journal est déjà d'environ 2 Go.
 
Très souvent, sur différents Expert Advisors, le testeur génère des données de sortie vides lors de l'optimisation, en passant par tous les cycles, mais sans effectuer aucune opération. Quelqu'un sait-il pourquoi cela se produit ?
 
Je crois que j'ai retrouvé le "virus" ! :)
Je ne me souviens pas si j'ai déjà écrit à ce sujet...
En fait, le problème était le suivant :
si(CurTime()-OrderOpenTime()<900) return(0) ;


Pour une raison quelconque, l'optimiseur ne remet pas le compteur à "zéro" (ou autre). Et, probablement, cela compte le temps global, pas le temps de test. En général, je ne sais pas ce qui et comment ce n'est pas fait correctement, mais j'ai passé beaucoup de nerfs, pendant que j'attrape. :) Si quelqu'un a le même problème, prenez note !

 
Lors du test de la stratégie, il y a des entrées dans des endroits où, à l'œil nu, cela ne devrait en aucun cas se produire. J'ai gaspillé trois jours de ma vie. Et pour quoi ? Vous voyez des chiffres au-dessus de la barre ? Le premier chiffre est la valeur de l'indicateur (ligne rouge). Il est de 1,3014. Et le deuxième nombre est la valeur de la barre basse renvoyée au programme. Nous pouvons voir sur le graphique que le bas est en dessous de la ligne de l'indicateur. Et le plus bas de cette barre est 1.3012. Mais le programme reçoit la valeur 1.3015. Maintenant je vois pourquoi ça déclenche ici.
 
Explique-moi ce qui ne va pas chez moi.

Voici le programme :
//+------------------------------------------------------------------+ int i ; //+------------------------------------------------------------------+ int init () { return(0) ; } int deinit() { return(0) ; } int start() { i++ ; CreateArrow(DoubleToStr(i,0),Time[0],High[0],108,Aqua) ; i++ ;
  CreateArrow(DoubleToStr(i,0),Time[0],Low[0],108,Yellow) ; return(0) ; } void CreateArrow(string name, datetime time1, double price1, int code_arrow, int clr) { ObjectCreate(name,OBJ_ARROW,0,time1,price1) ;
  ObjectSet(name,OBJPROP_ARROWCODE,code_arrow) ; ObjectSet(name,OBJPROP_COLOR,clr) ; }



Voici les résultats de l'essai

 
Voir la réponse sur le forum Alpari, trop paresseux pour écrire deux fois.
 
Voir la réponse sur le forum Alpari, trop paresseux pour écrire deux fois.

Ajoutez le lien
 
Смотри ответ на форуме Альпари , два раза лень писать.

Ajoutez le lien


http://forum.alpari-idc.ru/viewtopic.php?p=220941#220941
 
C'est très simple. Comme je le vois, les tests sont en mode d'ouverture des barres.
Quel est le haut et le bas de la barre qui émerge de façon égale ?
Indice : Open=High=Low=Close, Volume=1

C'est d'ailleurs la raison pour laquelle la première flèche avec la couleur Aqua se trouve juste en dessous de la deuxième Yellow.
 
C'est très simple. Comme je le vois, les tests sont en mode d'ouverture des barres. <br / translate="no">Quel est le High et le Low du bar qui vient d'ouvrir ?
Indice : Open=High=Low=Close, Volume=1

C'est d'ailleurs la raison pour laquelle la première flèche avec la couleur Aqua se trouve juste en dessous de la deuxième Yellow.

Merci pour cette précision.
Raison: