Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
wann ist dies beim Starten und
wann ist dies beim Anhalten der Fall?
StringHighStatus="True";
Ich dachte das Gleiche, bis ich es getestet habe. Überraschenderweise funktioniert der if(double == double) Teil davon, ich frage mich, ob der Vergleich von Doubles in den neuen Builds anders gehandhabt wird.
EURUSD,M15: Fractals-Bedingungen erfüllt bei Takt 98
EURUSD,M15: Fractals-Bedingungen erfüllt bei Balken 95
EURUSD,M15: Fractals-Bedingungen erfüllt bei Balken 91
EURUSD,M15: Fractals-Bedingungen erfüllt bei Balken 81
EURUSD,M15: Fractals-Bedingungen erfüllt bei Balken 77
EURUSD,M15: Fraktale Bedingungen erfüllt bei Balken 68
EURUSD,M15: Fractals-Bedingungen erfüllt bei Balken 61
EURUSD,M15: Fraktale Bedingungen erfüllt bei Balken 48
EURUSD,M15: Fractals-Bedingungen erfüllt bei Balken 39
EURUSD,M15: Fractals-Bedingungen erfüllt bei Balken 24
EURUSD,M15: Fractals-Bedingungen erfüllt bei Balken 19
EURUSD,M15: Fraktale Bedingungen erfüllt bei Balken 12
EURUSD,M15: Fraktale Bedingungen erfüllt bei Balken 4
Danke GumRai für deine Geduld.
Vielleicht liege ich falsch und habe einen Dickschädel, aber ich kann die Logik nicht verstehen...
Wenn das erste IF, wie du vorschlägst, die Zeichenkette auf "true" setzt, z.B. bei SwinghHighShift=10, dann steigt der Zähler in diesem Zyklus nicht an; danach kehrt die Steuerung zum WHILE zurück: der Zyklus sollte an diesem Punkt enden, weil das WHILE ein logisches OR enthält und eine seiner Bedingungen erfüllt ist.
Umgekehrt, wenn die Variable falsch bleibt, sollte der Zähler seinen Maximalwert erreichen und Sie haben wieder die Exit-Bedingung.
Ich denke, dass Ihre Überlegung auch mit einem AND-Operator zutreffen würde.
Ihrer Interpretation folgend könnte ich das ODER innerhalb des WHILE weglassen; ich könnte einfach die erste WENN-Bedingung auf die Zeichenkette anwenden: wenn sie "wahr" wird, dann wird der Break das WHILE beenden, andernfalls würde der Zähler weiterlaufen bis zu seinem Maximum.
Der Code wird dann zu:
Aber das ist immer noch ein Workaround und erklärt (für mich) leider nicht, warum das WHILE nicht das OR übernimmt.
Es ist nichts falsch mit WHILE oder logischem OR, Sie haben zwei Bedingungen in Ihrem WHILE, BEIDE müssen erfüllt sein, bevor das WHILE beendet werden kann.
Deshalb bleibt es stecken
Es gibt nur eine geringe Chance, dass die while-Schleife jemals beendet werden könnte, und zwar dann, wenn die IF-Bedingung für die gesamten 100 Bars (SwingBarCount) nicht erfüllt wird, so dass die zweite WHILE-Bedingung vor der ersten durchbrochen wird. Danach erfüllen die Fraktale die WENN-Bedingung, und der Code zum Durchbrechen der 1. WHILE-Bedingung (Ändern von StringHighStatus) wird ausgeführt.
Sie müssen entweder SwingHighShift++; aus dem ELSE herausnehmen und es selbst in die while-Schleife nach dem IF-Operator einfügen, so dass es unabhängig davon, was mit den IF-Bedingungen passiert, immer noch inkrementiert wird, so dass die Schleife zum nächsten Takt weitergehen kann, oder Sie verwenden break nach dem Codeblock zum Zeichnen des Objekts, um die while-Schleife zu verlassen, sobald das Objekt gezeichnet ist.
Sie müssen Ihrem Objekt auch eine Möglichkeit geben, verschiedene Namen für sich selbst zu erstellen, da es sonst nur einmal gezeichnet wird. (es sei denn, Sie wollen, dass es nur einmal gezeichnet wird).
Ich dachte dasselbe, bis ich es getestet habe. Überraschenderweise funktioniert der if(double == double) Teil davon, ich frage mich, ob der Vergleich von Doubles in den neuen Builds anders gehandhabt wird.
EURUSD,M15: Fraktale Bedingungen erfüllt bei Bar 98
EURUSD,M15: Fraktale Bedingungen erfüllt bei Bar 95
EURUSD,M15: Fraktale Bedingungen erfüllt bei Bar 91
EURUSD,M15: Fraktale Bedingungen erfüllt bei Bar 81
EURUSD,M15: Fraktale Bedingungen erfüllt bei Bar 77
EURUSD,M15: Fraktale Bedingungen erfüllt bei Bar 68
EURUSD,M15: Fraktale Bedingungen erfüllt auf bar 61
EURUSD,M15: Fraktale Bedingungen erfüllt auf bar 48
EURUSD,M15: Fraktale Bedingungen erfüllt auf bar 39
EURUSD,M15: Fraktale Bedingungen erfüllt auf bar 24
EURUSD,M15: Fraktale Bedingungen erfüllt auf bar 19
EURUSD,M15: Fraktale Bedingungen erfüllt auf bar 12
EURUSD,M15: Fraktale Bedingungen erfüllt auf bar 4
Der Grund, warum es funktioniert, ist, dass der Code effektiv denselben Wert vergleicht
Der Fraktal-Puffer hat entweder einen leeren Wert oder er nimmt seinen Wert vom Höchststand des betreffenden Balkens.
Der Code ist effektiv
Ich sehe keinen Grund, warum er nicht ersetzt werden kann durch
Ich sehe keinen Grund, warum sie nicht ersetzt werden kann durch
Wenn ich mir Ihre Beiträge in diesem Thread noch einmal durchlese, sehe ich, woher Ihre Verwirrung kommt. Du denkst die Logik von WHILE und OR in umgekehrter Reihenfolge. Beim OR geht es nicht darum, das WHILE zu stoppen. Es geht darum, es weiterlaufen zu lassen, wenn eine der beiden Bedingungen erfüllt ist... Es ist so: Sie haben zwei eingeschaltete Lichter. Ihre Anweisung lautet: Solange Licht 1 ODER Licht 2 leuchtet, machen Sie etwas. Natürlich müssen beide Lichter aus sein, bevor Sie aufhören, nicht nur eines von ihnen.
Das war's!
Schande über mich... :-)
Außerdem ist es nicht das erste Mal, dass ich WHILE verwende, aber ich habe angefangen, in umgekehrter Richtung zu denken und bin nie aus MEINER EIGENEN Schleife herausgekommen :-/
Und so wird der Vorschlag von deVries, || durch && zu ersetzen, richtig.
Eine Menge anderer Dinge, um die man sich kümmern muss, haben sich aus diesem Thema ergeben, z.B. wie das IF( == ) funktioniert.
Ich danke Ihnen allen für Ihre Geduld und die Zeit, die Sie aufgewendet haben, um mich zu verstehen.
Ich hätte es so machen sollen, mit einem Break, um die while-Schleife zu unterbrechen, ist das richtig?