Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 222

 
Die Syntax wird beherrscht, aber mit der Logik hapert es noch ein wenig.
 

Hallo.

Der EA wurde mit den gleichen Einstellungen vorgestern und gestern getestet. Der Code ist derselbe, alle Parameter sind die gleichen, aber das Ergebnis ist anders.

Der Expert Advisor eröffnet die Trades zum festgelegten Zeitpunkt ohne zusätzliche Bedingungen. Es ist zu erkennen, dass die Eröffnungskurse der Abschlüsse erheblich voneinander abweichen.

Ich habe beide Male das gleiche Kursarchiv von MetaQuotes Software Corp. heruntergeladen.

Dateien:
szcwya.zip  34 kb
 
gince:

Wie finde ich zwei obere/untere Fraktale in einer Reihe? Das Bild unten.

Ich habe versucht, einen Indikator zu schreiben, aber ich habe es nicht durchdacht.

Vielleicht hat jemand einen solchen Indikator schon gesehen?


Sind Sie sicher, dass die Funktion int GetFractal(string sy="0", int tf=0, int nf=0)Fraktale korrekt erfasst? (es gibt dort EMPTY_VALUE-Werte )

Warum eine so unzureichende Überschreitung?

1) es funktioniert auf das Aussehen einer Kerze und nicht auf einen Tick

2) zwei fraktale Anordnungen gleichzeitig auszuprobieren, anstatt sie oft zu wiederholen.

3) Wenn das obere Fraktal vorhanden ist, +1 zum Wert der ersten Variablen, wenn das untere vorhanden ist, -1. ( Varianten der Ergebnisse: - 1, 0, +1)

4) beim nächsten Fraktal: Wenn es ein oberes Fraktal gibt, dann +1 zum Wert der zweiten Variablen; wenn es ein unteres Fraktal gibt, dann -1. (Die Ergebnisse sind wie folgt: - 1, 0, +1)

5) Suchen Sie die Summe der ersten und zweiten Variablen:

a) weniger als 0 (wir haben zwei untere Fraktale) YEAH!

b) größer als 0 (wir haben zwei obere Fraktale) YEAH!!!

c) ist gleich Null und eine Variable ist gleich Null (wir haben zwei untere und zwei obere Fraktale) YEAH!!!

6) Weisen Sie den Wert der zweiten Variablen der ersten Variable zu und beginnen Sie den Zyklus bei Punkt 4)

 
aiculu:
Hilfe, ich habe nicht verstanden, wie ich es gemacht habe, aber ich habe versehentlich etwas angeklickt und ein Fenster mit einer Übersicht über meine offenen Aufträge ist verschwunden, wie bekomme ich es zurück?

Strg-T

 
Elektronik:

Strg-T


Vielen Dank.)))
 
Antonius:

Hallo.

Der EA wurde mit den gleichen Einstellungen vorgestern und gestern getestet. Der Code ist derselbe, alle Parameter sind die gleichen, aber das Ergebnis ist anders.

Der Expert Advisor eröffnet die Trades zum festgelegten Zeitpunkt ohne zusätzliche Bedingungen. Es ist zu erkennen, dass die Eröffnungskurse der Abschlüsse erheblich voneinander abweichen.

Ich habe beide Male das gleiche Kursarchiv von MetaQuotes Software Corp. heruntergeladen.

Sie haben die aktuelle Streuung im Tester ausgewählt - daher der Unterschied, denn wenn Sie den Test starten, wird die Streuung so verwendet, wie sie war, als der Test gestartet wurde. Setzen Sie die Spanne auf eine konstante Zahl.
 
ALXIMIKS:


Sind Sie sicher, dass die Funktion int GetFractal(string sy="0", int tf=0, int nf=0)Fraktale korrekt erfasst? (es gibt dort EMPTY_VALUE-Werte )

Warum dieser unangemessene Overkill?

1) von der Erscheinung einer Kerze ausgehen, nicht von einer Zecke

2) Führen Sie eine Suche in zwei fraktalen Feldern auf einmal durch, anstatt mehrere Suchen durchzuführen.

3) Wenn das obere Fraktal vorhanden ist, dann +1 zum Wert der ersten Variablen, wenn das untere Fraktal vorhanden ist, dann -1.

4) Nächstes Fraktal: Wenn es ein oberes Fraktal gibt, dann +1 für die zweite Variable, wenn es ein unteres Fraktal gibt, dann -1.

5) Suchen Sie die Summe der ersten und zweiten Variablen:

a) weniger als 0 (wir haben zwei untere Fraktale) YEAH!

b) größer als 0 (wir haben zwei obere Fraktale) YEAH!!!

c) ist gleich Null und eine Variable ist gleich Null (wir haben zwei untere und zwei obere Fraktale) YEAH!!!

6) Weisen Sie den Wert der zweiten Variablen der ersten Variable zu und starten Sie eine Schleife ab Punkt 4)

Anstelle von Sarkasmus sollten Sie besser selbst eine angemessene und optimierte Funktion an die Person schreiben. Alles, was Sie immer zeigen, ist Negativität und Spott. Spielen Sie nicht den Schlaumeier: Wenn Sie eine Antwort haben, schreiben Sie den Code, wenn Sie keine Antwort haben, sagen Sie nichts. Dort wird übrigens ein Overkill betrieben...
 
artmedia70:
Sie haben den aktuellen Spread im Tester ausgewählt - daher der Unterschied, denn wenn Sie den Test durchführen, wird der Spread verwendet, der zum Zeitpunkt der Durchführung des Tests galt. Setzen Sie die Spanne auf eine konstante Zahl.


Der Unterschied zwischen Geschäften, die am selben Tag, zur selben Zeit und an verschiedenen Testtagen eröffnet wurden, variiert.

Zum Beispiel,

Datum, Uhrzeit Vorgestern Heute Unterschied
2011.10.05 13:151616.031622.89 -6.86
2011.10.12 13:151682.871682.89 -0.02
2011.10.19 13:151649.101659.66 -10.56


Ja und zu hohe Werte für die Streuung.

 
artmedia70:
Anstelle von Sarkasmus sollten Sie besser selbst eine angemessene und optimierte Funktion schreiben. Sie zeigen immer nur Negativität und Spott. Spielen Sie nicht den Klugscheißer: Wenn Sie etwas zu sagen haben, schreiben Sie den Code, wenn Sie keine Antwort haben, sagen Sie gar nichts. Hier wird übrigens ein Overkill betrieben...


Ich hatte Zeit - ich habe mir einen Algorithmus für die Aufgabe ausgedacht und ihn detailliert beschrieben (vielleicht ein bisschen falsch für manche Leute - die Menschen sind unterschiedlich, was die Verständlichkeit angeht).

Sarkasmus? Ich weiß nicht, ich wollte nur helfen.

den Code an jemanden schreiben? mehr optimieren? (ja, das kann ich, aber ist es das wert?)

(p.s. artmedia70, nichts für ungut, ich respektiere Ihre Einstellung und Meinung im Allgemeinen - ehrlich gesagt, aber neulich haben Sie mir selbst Code von iCustom-y gegeben, um es milde auszudrücken, nicht sehr optimiert).

int a1=0,a2,a3,kilkict,frac,frac1=0;//frac - флаг существования фракталов, frac1- счетчик фракталов (+1 или 0 за цикл)

kilkict=iBars(sy, tf);

for (i=3; i<kilkict;i++){
  a2=0;frac=0;
  if(iFractals(sy, tf, MODE_UPPER, i)>0) {            
     if (Bufer0!=EMPTY_VALUE) {
         a2+=1;frac=1;frac1++;
        }
     }
  if(iFractals(sy, tf, MODE_LOWER, i)>0) {            
     if (Bufer0!=EMPTY_VALUE) {
        if(a2==0){frac1++; frac=1;}a2+=-1;
        }
     } if (frac==0){continue;}if (frac1==1){a1=a2;continue;}
  a3=a1+a2;
  if(a3<0)           { a1=a2;//Два фрактала вниз  подряд найдено// continue;}
  if(a3>0)           { a1=a2;//Два фрактала вверх подряд найдено // continue;}
  if(a3==0 && a1==0) { a1=a2;// Два фрактала подряд вверх и два фрактала подряд вниз найдено //}
}

So etwas sollte funktionieren, wenn Sie es in die Prüfung für einen neuen Balken einfügen.

Der Code wäre optimaler, wenn Sie kilkict=iBars(sy,tf) nach einer bestimmten Anzahl von Fraktalen eingrenzen würden, so dass Sie nicht ständig alle Balken durchsehen müssen.

 
ALXIMIKS:


Ich hatte Zeit - ich habe mir einen Algorithmus für die Aufgabe ausgedacht und ihn beschrieben (im Detail, vielleicht ein wenig falsch für einige Leute - Menschen sind unterschiedlich, was die Zugänglichkeit angeht).

Sarkasmus? Ich weiß es nicht, nur um zu helfen.

den Code für jemanden schreiben? mehr optimieren? (ja, das kann ich, aber ist es das wert?)

(p.s. artmedia70, nichts für ungut, ich respektiere Ihre Haltung und Meinung im Allgemeinen - ehrlich gesagt, aber der andere Tag, den Sie selbst gab den Code von iCustom-y, um es milde auszudrücken nicht sehr optimiert).

So etwas sollte funktionieren, wenn Sie es in die Prüfung für einen neuen Balken einfügen.

Der Code wäre optimaler, wenn wir kilkict=iBars(sy,tf) nach einer bestimmten Anzahl von Fraktalen eingrenzen würden, damit wir nicht ständig alle Balken durchsehen müssen.

Ja, wie man in KVVAIU zu scherzen pflegte, muss ein echter Beamter Angst einflößen, sowohl durch sein Verhalten als auch durch sein Äußeres.

Ist es möglich, sie "optimaler" zu gestalten?