Indikator Frage - Seite 6

 

for(i=0; val1==val3; i++)

Dieser Code lässt IMO die Möglichkeit einer Endlosschleife offen.

 
Ich muss noch ein wenig darüber nachdenken, meine Augen sind beim Lesen wieder verschwommen.

Ich melde mich morgen wieder
 
ubzen:

for(i=0; val1==val3; i++)

Dieser Code lässt IMO die Möglichkeit einer Endlosschleife offen.

Wirklich, scheint wie es sollte Zyklus, bis val1 ist nicht val3

Wenn val3 = 0 und val1 = 0 sollte es Zyklus, bis es einen Wert

ii val3 = iFractal(momentan) dann val1 sollte Zyklus, bis val1=0 (und das ist mein Problem genau hier)

es ist wirklich eine Art von einer Endlosschleife oder Lockup-Punkt, obwohl ich eine Druckanweisung erhalte, die den iFractal-Wert für val1 zurückgibt, bin ich mir nicht sicher, wo das ist
Ich muss noch ein wenig mit dem experimentieren, was andere zum Testen gepostet haben, aber ich denke, du hast Recht

Vielleicht ist es nicht genau so, wie ich es mir vorgestellt habe, aber das ist das Konzept, das ich erreichen möchte, um einfach zum vorherigen Fraktalwert zu inkrementieren

Ich werde weiter daran arbeiten
 
diostar:

Ehrlich gesagt sehe ich das zum ersten Mal, was die Bedingung für den Schleifenabbruch angeht. Es ist eine knifflige Sache...

Es scheint teilweise zu funktionieren, was mich täuscht, weil meine Druckanweisung einen Wert zurückgibt, aber ich denke, das Problem ist, dass, sobald val3 tatsächlich >0 ist, dann wird val1 zurück auf einen Wert inkrementiert, der 0 ist und nicht wirklich der vorherige fraktale Wert

Es scheint also, dass es theoretisch nur einmal funktioniert, solange val3 == 0 ist und dann und nur dann wird i++ rückwärts inkrementiert, bis val1 nicht mehr == val3 ist, was ich tun möchte, aber wenn val3 == ein Wert ist, dann wird val1 zurück auf einen Wert von 0 inkrementiert, wo es nicht mehr == zu val3 ist und dann wird die Schleife beendet.
Das ist nicht genau das, was ich wollte, also zurück zum Zeichenbrett LOL

Vielen Dank an alle

 
RaptorUK:

Wenn Sie ein iFractal erhalten, ist der Wert > 0, ja?

Wenn Sie also zum Beispiel wissen wollen, wo die letzten UPPER und LOWER iFractals waren, machen Sie einfach etwas wie folgt

Ich glaube, ich verstehe. Wenn ich herausfinden kann, wie ich den Wert dieser vorherigen Positionen erzeugen kann

Ich glaube, ich kriege das hin, hoffe ich. he he

Danke
 

Die 0-Kerze kann kein Fraktal sein, so dass val3 immer 0 sein wird, warum also nicht . . .

for(i=0; val1==0; i++)

. . . und werden Sie val3 los.

Ich bevorzuge in diesem Fall jedoch eine Weile, die besser zu dem passt, was Sie zu tun versuchen...

 
RaptorUK:

Wenn Sie ein iFractal erhalten, ist der Wert > 0, ja?

Wenn Sie also zum Beispiel wissen wollen, wo die letzten UPPER und LOWER iFractals waren, machen Sie einfach etwas wie folgt

Dies scheint mir zu sagen, wo das letzte iFractal ist, aber nicht die beiden vorherigen iFractals

Zum Beispiel:

2011.10.07 09:05:36 sup_res EURUSD,M5: Last UPPER Fractal at 6 Last LOWER Fractal at 0

Es wird also das aktuelle UPPER High Fractal angezeigt und die Position gedruckt, was gut ist
Ich kann auch val1=i in val1=iFractal(NULL, 0, MODE_UPPER,i) ändern, was mir den Wert für das letzte iFraktal liefert
Ich mache also Fortschritte beim Verstehen, aber ich muss immer noch umcodieren, um zum vorherigen iFraktal zurückzukehren

Sobald sich ein iFraktal bildet, wird diese while-Anweisung weiterhin das aktuell gebildete und letzte iFraktal drucken was cool ist
Sagen wir also, es bildet sich ein neues iFractal und ich möchte dieses aktuelle Fraktal aus der while-Anweisung referenzieren, das in Wirklichkeit das vorherige 1 und nicht das aktuelle ist
Sagen wir also, das iFractal LOWER_MODE bildet sich jetzt und ich möchte das vorherige iFractal UPPER_MODE referenzieren und diese Werte vergleichen.

Aber nach euren Ratschlägen denke ich, dass ich das vielleicht hinbekomme, das sind alles tolle Ideen, die mir sehr helfen.
Je besser ich mit der Funktionsweise von Code vertraut bin, desto mehr Spaß macht es mir, das, was ich weiß, für meine Handelsideen zu nutzen.

Danke
 
Agent86:
Dies scheint mir zu sagen, wo das letzte iFractal ist, aber nicht die beiden vorherigen iFractals

Es gibt einen Fehler in meinem Code . . .

while( val1==0 && val2==0)

should be . . .

while( val1==0 || val2==0)
 
RaptorUK:

Die 0-Kerze kann kein Fraktal sein, so dass val3 immer 0 sein wird, warum also nicht . . .

. . . und werden Sie val3 los.

Ich bevorzuge in diesem Fall jedoch eine Weile, die besser zu dem passt, was Sie zu tun versuchen...

OK, ich habe val3 shift auf 3 geändert, aber das gefällt mir auch nicht wirklich, ich werde einige Änderungen vornehmen, danke
 
if(val1 > 0 && faster > slower)
      {
       Print (val1, " val1");
       for(i=0; val1 || val2==0; i++)
         {
         if(iFractals(NULL, 0, MODE_LOWER, i) > 0 && val2 == 0)
         val2 = iFractals(NULL, 0, MODE_LOWER, i);
         Print (" Last LOWER Fractal at ", val2);
        
         }

Kann man beim Hinzufügen einer for(-Anweisung) innerhalb einer if(-Anweisung) zusätzliche if(-Anweisungen) hinzufügen und sich auf die Werte in der Schleife beziehen?

Und müssen diese zusätzlichen if(-Anweisungen) innerhalb der Schleife stehen oder können Sie außerhalb der Schleife stehen und sich trotzdem auf die Werte in der Schleife beziehen, wie z. B. val2?

Was gilt als normal für Schleifen innerhalb anderer Codeblöcke? Und wie kann man die Werte der Schleifen extrahieren?

Vielen Dank
Grund der Beschwerde: