Der Wechsel der TF ist ein Problem - Seite 6

 
Vasyl Nosal:
Das war's? Es wird keine Pannen geben?
Es ist nicht der Code, der fehlerhaft ist. :) Nehmen Sie es und nutzen Sie es.
 
Sergei Vladimirov:

Vladimir, warum tun Sie dies innerhalb von OnCalculate()? Ich meine die letzten beiden Zeilen - Neuinitialisierung von Arrays. Wenn Sie beide Puffer für jeden Balken berechnen lassen, ist das eine unnötige Aktion.

if(prev_calculated==0)
{
   limit=rates_total-1;
   ArrayInitialize(up_arr,EMPTY_VALUE);
   ArrayInitialize(down_arr,EMPTY_VALUE);
}
Warum haben Sie entschieden, dass die Initialisierung bei jedem Tick durchgeführt wird? Die Bedingung prev_calculated==0 wird beim Indikatorstart ein- oder zweimal ausgeführt. Während des Vorgangs kann prev_calculated==0 werden, wenn die Historie geändert wird - dies ist jedoch selten oder nie der Fall und die Änderung der Historie erfordert eine Neuberechnung des Indikators.
 
Sergei Vladimirov:
Es ist nicht der Code, der fehlerhaft ist. :) Nehmen Sie es und nutzen Sie es.

Vielen Dank:))))))))))))))))))))))))))))))))))))))))))))))))))

Wer ist der Nächste?

 
Karputov Vladimir:
Warum haben Sie beschlossen, dass die Initialisierung bei jedem Tick stattfindet? Die Bedingung prev_calculated==0 wird beim Starten des Indikators ein- oder zweimal ausgeführt. Während des Vorgangs kann prev_calculated==0 werden, wenn die Historie geändert wird - aber das geschieht selten oder sogar nie und die Änderung der Historie erfordert eine Neuberechnung des Indikators.
Kann man auf das Nullsetzen der Puffer beim Laden der Historie verzichten?
 
Karputov Vladimir:
Wie kommen Sie darauf, dass die Initialisierung bei jedem Tick stattfindet?
Wo habe ich das geschrieben? Ich wollte wissen, warum Sie die Puffer in OnCalculate() neu initialisieren, wenn Sie dann beide Puffer für alle Balken berechnen lassen.
 
Sergei Vladimirov:
Wo habe ich das geschrieben? Ich wollte wissen, warum Sie die Puffer in OnCalculate() neu initialisieren, wenn Sie dann beide Puffer für alle Balken berechnen lassen.
Falsche Aussage. Bei prev_calculated==0 überspringe ich anschließend alle Balken, aber es garantiert nicht die Ersetzung aller Werte in den Indikatorpuffern. Wenn prev_calculated==0 ist, müssen Sie daher die Indikatorpuffer löschen.
 
Vasyl Nosal:

Vielen Dank:))))))))))))))))))))))))))))))))))))))))))))))))))

Wer ist der Nächste?

Warum lügen?

 
Karputov Vladimir:
Falsche Aussage. Wenn prev_calculated==0,überspringe ich anschließendalle Balken, aberes ist nicht garantiert, dass alle Werte in denIndikatorpuffern ersetzt werden. Daher muss ich bei prev_calculated==0 die Indikatorpuffer löschen.

Ja? Können Sie mir ein Beispiel geben, wenn in Ihrem Code ein Wert eines Puffers nicht gefüllt wird? Außer vielleicht in der allerersten Bar der Geschichte.

 
Sergei Vladimirov:

Warum lügen?

Genial.

Haben Sie versucht, zu einem Paar ohne Vorgeschichte und dann zu einer anderen TF zu wechseln?

 
Sergei Vladimirov:

Es war keine Aussage, sondern eine Frage.

Ja? Vielleicht können Sie uns ein Beispiel geben, wenn in Ihrem Code ein Wert eines Puffers nicht gefüllt wird?

Wissen Sie, lassen Sie uns Folgendes tun: Nehmen Sie den Code 1.43 aus diesem Beitrag und kommentieren Sie die Zeilen aus:

if(prev_calculated==0)
{
   limit=rates_total-1;
//ArrayInitialize(up_arr,EMPTY_VALUE);
//ArrayInitialize(down_arr,EMPTY_VALUE);
}

und sehen Sie sich das Ergebnis an, wenn Sie das Diagramm an das Ende des Verlaufs verschieben und den Verlauf geladen haben.

Grund der Beschwerde: