EA N7S_AO_772012 - page 29

 
boing9267 >> :

>>Qu'est-ce qui vous choque exactement, pouvez-vous être plus précis ?

C'est vraiment déroutant. Les noms des variables sont un cauchemar. La moitié des variables sont globales, mais elles ne le sont pas. Bref, maintenant je réécris tout pour comprendre comment tout cela fonctionne.

 
:) J'ai aussi commencé à le refaire pour moi, je pense que je pourrai comparer les options pendant le week-end :)
 
boing9267 >> :
:) J'ai aussi commencé à le refaire pour moi, je pense que je le finirai ce week-end pour qu'on puisse comparer les options :)

Regardez ! Je ne suis donc pas le seul à ne pas comprendre :)

 
Je pense que c'est même mieux pour apprendre le code, d'ailleurs :). Donc merci au tireur pour ça
 
boing9267 >> :
Je pense que c'est encore mieux pour apprendre le code :). Donc merci au tireur pour ça.

Regardez les messages personnels.

 
mpeugep писал(а) >>

Observation intéressante ! Et si vous le pouvez - nommez le DC, au moins la première lettre).

А

 
rtr989 писал(а) >>

Désolé pour cette question peut-être stupide... Dites-moi, est-ce que toutes ces optimisations sont connectées les unes aux autres, je veux dire que l'étape 2 est basée sur les données après l'étape 1 ? après la première étape, je charge _stage_2=y_l3.set et les paramètres d'entrée qui étaient après la première optimisation comme je le comprends sont remplacés par ceux prescrits dans _stage_2=y_l3.set? quel est alors l'intérêt de la première optimisation ? ou est-ce que je me trompe et est-ce que je fais quelque chose de mal ? maintenant je fais ce qui suit : je charge _step_1=x_l3.set, je l'optimise, je choisis le meilleur résultat à mon avis, je clique droit sur "set input parameters", je le passe dans le testeur, puis je charge _step_2=y_l3.set, je coche la case pour l'optimisation... et donc 6 optimisations, après la 6ème optimisation j'obtiens le jeu dont j'ai besoin, est-ce que je le fais bien ?

Vous faites tout correctement. Et vous comprenez presque tout bien. À l'exception du fait que les fichiers de jeu d'optimisation comme _step_2=y_l3.set sont spécialement écrits par moi, qui, lorsqu'ils sont chargés séquentiellement, n'affectent en rien les valeurs obtenues précédemment. >>En ce qui concerne la dépendance, les première et deuxième étapes ne dépendent pas l'une de l'autre (presque :-)) ; la troisième dépend de deux (première et deuxième) ; la quatrième dépend de trois, la cinquième dépend également de trois et ne dépend presque pas de la quatrième, tandis que la sixième dépend de toutes ces étapes.

 
ShestkoFF писал(а) >>

Aujourd'hui, j'ai décidé d'essayer de comprendre comment fonctionne un conseiller expert et j'ai été choqué. Tout cela me semble très confus.
Je me demande si quelqu'un d'autre que SHOOTER777 comprend comment fonctionne une EA ? Je ne veux pas dire comment il devrait être optimisé mais comment il fonctionne.

Désolé, mais c'est l'un, sinon le plus facile de mes EAs. Dans d'autres, même moi, je n'arrive pas à comprendre rapidement après un certain temps - j'oublie, et expliquer aux autres comment et ce qui fonctionne est une véritable plaie (il y a même eu des indices que je ne l'ai pas fait). J'ai essayé de partager mon code avec eux, pour qu'ils puissent m'aider à corriger certains moments ou à l'améliorer, mais..... Bien que j'essaie de créer des codes principalement via des fonctions, c'est plus clair et plus facile à comprendre. J'aimerais apprendre à donner des commentaires concis en code...

 
ShestkoFF писал(а) >>

C'est vraiment déroutant. Les noms des variables sont un cauchemar. La moitié des variables sont globales, alors qu'elles ne le sont pas. Bref, maintenant, je réécris tout pour comprendre comment tout fonctionne.

Il peut y avoir des "fissures" dans les variables. Je n'ai pas étudié la programmation en détail, donc - dites-moi des astuces, les critiques constructives sont les bienvenues.

 
SHOOTER777 >> :

Il peut y avoir des "problèmes" avec les variables. Je n'ai pas étudié la programmation en détail, donc les conseils et les critiques constructives sont les bienvenus.

Je n'aime pas critiquer les choses qui fonctionnent. Je vais juste vous donner quelques critiques sur le code :

  • Vous ne devez pas tout écrire en une ligne, il est impossible de lire le code de cette façon. Par exemple, le code d'initialisation de l'Expert Advisor
int init(){ MMH1 = Hour( ); LFB  = iTime(Symbol(), 0, 0); H1();
Delta_G12 = G12(); if ( IsOptimization( )  ) TrBlnc = false;//if ( IsTesting() ) TrBlnc = false;
if ( VSR () !=0) { Flg=false;} else { Flg=true;}
cmmnt();}

Je pense que vous feriez mieux d'écrire

int init(){
	expertInitHour = Hour();
	SYMBOL = Symbol();
	lastBarTime  = iTime(NULL, 0, 0); 
	H1();
	AO_Delta = indicatorDelta(); 
	if (IsOptimization()) {
		TrBlnc = false;
	}
	if ( VSR() != 0) {
		Flg=false;
	} else {
		Flg=true;
	}
	cmmnt();
}

Le code devient plus lisible mais même avec ce remplacement, on ne sait toujours pas ce que sont H1, VSR, Flg.

  • Nommez les variables de manière significative. Il est préférable de consacrer quelques minutes de plus à l'élaboration d'un nom de variable ou de fonction, mais il est ensuite plus facile de se rappeler à quoi il sert. Exemple : La fonction G12 - à quoi sert-elle ? Il calcule le delta entre les dernières valeurs de l'indicateur (vous l'avez même en sélectionnant la variante de l'indicateur). Eh bien, il devrait s'appeler indicatorDelta, c'est beaucoup plus simple et plus clair.
  • Ne rendez pas les variables globales, si elles sont locales. Je ne me souviens pas dans quelle fonction je l'ai vu.
  • Ne pas rendre les variables globales statiques n'a pas de sens. Si ce n'est pas le cas, veuillez expliquer.
  • Utilisez les constantes standard définies dans la langue. Par exemple, pour spécifier un intervalle de temps. double iA_C (int pr){int tmfr=60 ; return(iAO(Symbol(), tmfr, pr));} semble mieux remplacé par double iA_C (int pr){return(iAO(Symbol(), PERIOD_H1, pr));}.


Je vais essayer de réécrire cette EA et de la rendre plus claire pour moi-même et peut-être aussi pour les autres.

Merci beaucoup d'avoir partagé votre idée. C'est très bien que vous partagiez votre travail et que vous postiez les résultats chaque semaine.
Toutes mes excuses pour la critique :)