Wir zählen manuell die Differenz zwischen gezählten und ungezählten Balken, und wenn sie mehr als 1...
setzen wir alle Puffer auf einmal oder Element für Element zurück.
Das ist nicht schön. Vielleicht setzen die Entwickler alles zurück, wenn es eine Bedingung gibt?
Wieder fünfundzwanzig :) . Wozu brauchen Sie in diesem Fall Ihren Kopf? Es ist unmöglich, alle Varianten der Reaktion auf Ereignisse vorherzusehen. Die Wahl der Variante liegt auf den Schultern des Programmierers (obwohl, hier gibt es nichts zu tun, zwei Zeilen: auf ==0 prüfen und reagieren).
Vasyl Nosal: In meiner Variante und in Ihrer gibt es also eine Nullstellung, oder?
In meiner Version wird jeder Balken berechnet. Wenn der Pufferwert auf einem solchen Balken Null ist, wird er zu Null, wenn er gleich 5 ist, wird er zu 5. In Ihrem Fall können Sie die Puffer einfach durch ArrayInitialize() auf Null setzen und dann die Balken nicht berechnen, bei denen der Wert der Puffer Null bleiben soll. Aber erstens ist dies ein schlechter Programmierstil (sehr schlecht!), und zweitens ist dies ein Spezialfall.
Alle Balken sollten explizit berechnet werden. Nur so können Sie sicher sein, dass sich in keiner Zelle "Müll", nicht berechnete Daten usw. befinden, und Sie müssen keine Fehler finden (womit Sie in diesem Thread zu kämpfen hatten).
Und Sie müssen auch nicht die Aktualisierungen der Historie verfolgen, das ist unnötig. Starten Sie die Berechnung einfach ab dem Balken [rates_total - MathMax(prev_calculated, 1)], und alles wird garantiert immer berechnet und gegebenenfalls neu berechnet.
In meiner Version wird jeder Balken berechnet. Wenn der Pufferwert auf einem solchen Balken Null ist, wird er zu Null, wenn er gleich 5 ist, wird er zu 5. In Ihrem Fall können Sie die Puffer durch ArrayInitialize() einfach auf Null setzen und dann die Balken, bei denen der Wert der Puffer auf Null bleiben soll, nicht berechnen. Aber erstens ist dies ein schlechter Programmierstil (sehr schlecht!), und zweitens ist dies ein Spezialfall.
Alle Balken sollten explizit berechnet werden. Nur so können Sie sicher sein, dass sich in keiner Zelle "Müll", nicht berechnete Daten usw. befinden, und Sie müssen keine Fehler finden (womit Sie in diesem Thread zu kämpfen hatten).
Und Sie müssen die Verlaufsaktualisierungen nicht im Auge behalten, das ist unnötig. Starten Sie die Berechnung einfach mit bar [rates_total - MathMax(prev_calculated, 1)], und alles wird garantiert immer berechnet und bei Bedarf neu berechnet.
Autsch. Gut.
Die Entwickler werden sowieso nichts implementieren.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Kurzum, die Schlussfolgerung lautet wie folgt.
Wir zählen manuell die Differenz zwischen gezählten und ungezählten Balken, und wenn sie mehr als 1...
setzen wir alle Puffer auf einmal oder Element für Element zurück.
Das ist nicht schön. Vielleicht setzen die Entwickler alles zurück, wenn es eine Bedingung gibt?
Kurzum, die Schlussfolgerung lautet wie folgt.
Wir zählen manuell die Differenz zwischen gezählten und ungezählten Balken, und wenn sie mehr als 1...
setzen wir alle Puffer auf einmal oder Element für Element zurück.
Das ist nicht schön. Vielleicht setzen die Entwickler alles zurück, wenn es eine Bedingung gibt?
Kurzum, die Schlussfolgerung lautet wie folgt.
Wir zählen manuell die Differenz zwischen gezählten und ungezählten Balken, und wenn sie mehr als 1...
setzen wir alle Puffer auf einmal oder Element für Element zurück.
Das ist nicht schön. Vielleicht setzen die Entwickler die Puffer selbst zurück, wenn es eine Bedingung gibt?
Schon wieder?! © :D Und das nach allen Erklärungen mit Beispielen, wie man Indikatoren richtig schreibt? )))
Was, schon wieder?!! © :D Und das nach all den Erklärungen mit Beispielen, wie man Indikatoren richtig schreibt? )))
In meiner Variante und in Ihrer gibt es also eine Nullstellung, oder?
In meiner Version wird jeder Balken berechnet. Wenn der Pufferwert auf einem solchen Balken Null ist, wird er zu Null, wenn er gleich 5 ist, wird er zu 5. In Ihrem Fall können Sie die Puffer einfach durch ArrayInitialize() auf Null setzen und dann die Balken nicht berechnen, bei denen der Wert der Puffer Null bleiben soll. Aber erstens ist dies ein schlechter Programmierstil (sehr schlecht!), und zweitens ist dies ein Spezialfall.
Alle Balken sollten explizit berechnet werden. Nur so können Sie sicher sein, dass sich in keiner Zelle "Müll", nicht berechnete Daten usw. befinden, und Sie müssen keine Fehler finden (womit Sie in diesem Thread zu kämpfen hatten).
Und Sie müssen auch nicht die Aktualisierungen der Historie verfolgen, das ist unnötig. Starten Sie die Berechnung einfach ab dem Balken [rates_total - MathMax(prev_calculated, 1)], und alles wird garantiert immer berechnet und gegebenenfalls neu berechnet.
In meiner Version wird jeder Balken berechnet. Wenn der Pufferwert auf einem solchen Balken Null ist, wird er zu Null, wenn er gleich 5 ist, wird er zu 5. In Ihrem Fall können Sie die Puffer durch ArrayInitialize() einfach auf Null setzen und dann die Balken, bei denen der Wert der Puffer auf Null bleiben soll, nicht berechnen. Aber erstens ist dies ein schlechter Programmierstil (sehr schlecht!), und zweitens ist dies ein Spezialfall.
Alle Balken sollten explizit berechnet werden. Nur so können Sie sicher sein, dass sich in keiner Zelle "Müll", nicht berechnete Daten usw. befinden, und Sie müssen keine Fehler finden (womit Sie in diesem Thread zu kämpfen hatten).
Und Sie müssen die Verlaufsaktualisierungen nicht im Auge behalten, das ist unnötig. Starten Sie die Berechnung einfach mit bar [rates_total - MathMax(prev_calculated, 1)], und alles wird garantiert immer berechnet und bei Bedarf neu berechnet.
Autsch. Gut.
Die Entwickler werden sowieso nichts implementieren.
Vielen Dank an alle.