EA N7S_AO_772012 - Seite 29

 
boing9267 >> :

>>Was genau schockiert Sie, können Sie das genauer erläutern?

Das ist wirklich verwirrend. Die Variablennamen sind ein Alptraum. Die Hälfte der Variablen sind global, aber sie sind es nicht. Kurz gesagt, ich schreibe jetzt alles neu, um zu verstehen, wie das alles funktioniert.

 
:) Ich habe auch damit begonnen, es für mich selbst umzugestalten, ich denke, ich werde am Wochenende in der Lage sein, die Optionen zu vergleichen :)
 
boing9267 >> :
:) Ich habe auch angefangen, es für mich selbst umzugestalten, ich denke, ich werde es am Wochenende fertigstellen, damit wir die Möglichkeiten vergleichen können :)

Siehe! Ich bin also nicht der Einzige, der das nicht verstehen kann :)

 
Ich finde es übrigens noch besser, um den Code zu lernen:). Vielen Dank an den Schützen dafür.
 
boing9267 >> :
Ich denke, es ist sogar besser, um den Code zu lernen:). Vielen Dank an den Schützen dafür.

sehen Sie sich die persönlichen Nachrichten an.

 
mpeugep писал(а) >>

Interessante Beobachtung! Und wenn Sie können - nennen Sie das DC, zumindest den ersten Buchstaben)

А

 
rtr989 писал(а) >>

Entschuldigung für die möglicherweise dumme Frage... Sagen Sie mir, sind alle diese Optimierungen miteinander verbunden, ich meine, Stufe 2 basiert auf Daten nach Stufe 1? Nach der ersten Stufe lade ich _stage_2=y_l3.set und die Eingabeparameter, die nach der ersten Optimierung waren, wie ich es verstehe, werden durch die in _stage_2=y_l3.set vorgeschriebenen ersetzt? was ist dann der Sinn der ersten Optimierung? oder irre ich mich und mache ich etwas falsch? jetzt mache ich folgendes: ich lade _step_1=x_l3.set, optimiere es, wähle das meiner Meinung nach beste Ergebnis, klicke mit der rechten Maustaste auf "Eingabeparameter setzen", lasse es durch den Tester laufen, lade dann _step_2=y_l3.set, aktiviere das Kästchen für die Optimierung... und so 6 Optimierungen, nach der 6. Optimierung bekomme ich die Menge, die ich brauche, mache ich es richtig?

Sie machen alles richtig. Und Sie verstehen fast alles richtig. Abgesehen von der Tatsache, dass die Optimierungsset-Dateien wie _step_2=y_l3.set speziell von mir geschrieben wurden, die, wenn sie sequentiell geladen werden, in keiner Weise die zuvor erhaltenen Werte beeinflussen. >>Was die Abhängigkeit angeht, so hängen der erste und der zweite Schritt nicht voneinander ab (fast :-)), der dritte hängt von zwei ab (dem ersten und dem zweiten), der vierte hängt von drei ab, der fünfte hängt auch von drei ab und hängt fast nicht vom vierten ab, während der sechste von allen abhängt.

 
ShestkoFF писал(а) >>

Heute habe ich versucht zu verstehen, wie ein Expert Advisor funktioniert, und ich war schockiert. Für mich sieht das alles sehr verwirrend aus.
Ich frage mich, ob außer SHOOTER777 noch jemand versteht, wie ein EA funktioniert? Ich meine nicht, wie es optimiert werden sollte, sondern wie es funktioniert.

Tut mir leid, aber dies ist einer, wenn nicht sogar der einfachste meiner EAs. In anderen Fällen komme selbst ich nach einiger Zeit nicht mehr dahinter - ich vergesse es, und anderen zu erklären, wie und was funktioniert, ist mühsam (es gab sogar Hinweise, dass ich es nicht getan habe). Ich habe versucht, meinen Code mit ihnen zu teilen, damit sie mir helfen können, einige Punkte zu korrigieren oder zu verbessern, aber.... Obwohl ich versuche, Codes hauptsächlich über Funktionen zu erstellen, ist das übersichtlicher und leichter zu verstehen. Ich würde gerne lernen, wie man prägnante Kommentare im Code abgibt...

 
ShestkoFF писал(а) >>

Das ist wirklich verwirrend. Die Variablennamen sind ein Alptraum. Die Hälfte der Variablen sind global, obwohl sie es nicht sind. Kurz gesagt, ich schreibe jetzt alles neu, um zu verstehen, wie alles funktioniert.

Es kann "Risse" in den Variablen geben. Ich habe das Programmieren nicht im Detail studiert, also -sagen Sie mir Tipps, konstruktive Kritik ist willkommen.

 
SHOOTER777 >> :

Es kann zu "Problemen" mit den Variablen kommen. Ich habe das Programmieren nicht im Detail studiert, Tipps und konstruktive Kritik sind also willkommen.

Ich mag es nicht, Dinge zu kritisieren, die funktionieren. Ich werde Ihnen nur einige Kritikpunkte am Code nennen:

  • Sie müssen nicht alles in eine Zeile schreiben, so ist es unmöglich, den Code zu lesen. Zum Beispiel kann der Initialisierungscode des Expert Advisors
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();}

Ich denke, Sie sollten besser schreiben

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();
}

Der Code wird dadurch besser lesbar, aber auch mit dieser Ersetzung bleibt unklar, was H1, VSR und Flg sind.

  • Benennen Sie die Variablen auf sinnvolle Weise. Es ist besser, ein paar Minuten länger zu brauchen, um sich einen Variablen- oder Funktionsnamen auszudenken, aber dann kann man sich leicht merken, wofür er steht. Beispiel: Die Funktion G12 - wozu dient sie? Er berechnet das Delta zwischen den letzten Indikatorwerten (Sie können sogar die Variante des Indikators auswählen). Nun, es sollte indicatorDelta heißen, das ist viel einfacher und klarer.
  • Machen Sie Variablen nicht global, wenn sie lokal sind. Ich weiß nicht mehr, in welcher Funktion ich sie gesehen habe.
  • Globale Variablen nicht statisch zu machen, macht keinen Sinn. Sollte dies nicht der Fall sein, erläutern Sie dies bitte.
  • Verwenden Sie die in der Sprache definierten Standardkonstanten. Sie gibt zum Beispiel ein Zeitintervall an. double iA_C (int pr){int tmfr=60; return(iAO(Symbol(), tmfr, pr));} scheint besser ersetzt zu werden durch double iA_C (int pr){return(iAO(Symbol(), PERIOD_H1, pr));}.


Ich werde versuchen, diesen EA umzuschreiben und ihn für mich und vielleicht auch für andere klarer zu machen.

Vielen Dank, dass Sie Ihre Idee mit uns teilen. Es ist sehr schön, dass Sie Ihre Arbeit mit anderen teilen und jede Woche die Ergebnisse veröffentlichen.
Entschuldigung für die Kritik :)