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
Die erstaunliche Fähigkeit, die falsche Frage zu beantworten...
Nun erklären Sie mir, was passiert, wenn:
1. 100 Balken gezählt, in Puffer von 0 bis einschließlich 99 eingetragen (Zählrichtung als Zeitreihe) Wert 1,03
2. Plötzlich wurde die Historie geladen und prev_calculated wurde zu 0.
Ab welchem Balken im Indikator wird der Wert 1,03 sein?
{
//--- инициализация элементов индикаторного буфера при первом запуске или при подкачке истории
for(int i=0;i<rates_total;i++)
ExtBuffer[i]=1.01;
return(rates_total);
}
Erklären Sie besser, wie man den Müll loswird, wenn der Indikator zumERSTEN Mal gestartet wird.
Überhaupt keine Krücke. So mache ich das.
{
//--- инициализация элементов индикаторного буфера при первом запуске или при подкачке истории
for(int i=0;i<rates_total;i++)
ExtBuffer[i]=1.01;
return(rates_total);
}
Dies ist also das Problem, das gelöst werden sollte. Ich brauche keinen Müll (nicht wirklich, aber er stört die Anzeige), aber ich muss die vorherigen Berechnungen des Indikators speichern. Wenn Sie den Indikator zum ersten Mal starten, wird der Puffer zugemüllt, und beim Laden der Historie sollte alles, was in den Puffer eingefügt wurde, gespeichert werden ... und vorzugsweise ohne sie in einer Datei oder in GV zu speichern.
hinzugefügt:
Damit soll die Inanspruchnahme jede Minute in Echtzeit geschätzt werden. Der Expert Advisor arbeitet eine Woche lang ohne Unterbrechung, und anstelle der wöchentlichen Anzeige sehen wir nur den letzten Wert, der auch ohne den Indikator sichtbar ist.
Wenn ein einfaches Kennzeichen für den ersten Lauf / nicht mehr ersten Lauf ausreicht, ersetzen Sie prev_calculated durch static bool b_First_Run. Und Sie können die Pufferinitialisierung in OnInint
Nein, die Ziele dort sind nicht so primitiv.
Das ist also das Problem, das es zu lösen gilt. Ich brauche den Müll nicht (ich brauche ihn nicht, aber er stört die Anzeige), aber ich muss die vorherigen Berechnungen des Indikators speichern. Wenn Sie den Indikator das erste Mal starten, wird der Puffer zugemüllt, und beim Laden der Historie sollte alles, was in den Puffer eingefügt wurde, gespeichert werden ... und vorzugsweise ohne sie in einer Datei oder in GV zu speichern.
hinzugefügt:
Dies ist als Echtzeitschätzung der Inanspruchnahme pro Minute gedacht. Der Expert Advisor arbeitet eine Woche lang ohne Unterbrechung, und anstelle einer wöchentlichen Anzeige sehen wir nur den letzten Wert, der auch ohne Indikator sichtbar ist...
Alexey Viktorov, so wie ich es verstehe, braucht nur dies - die Puffer beim ersten Start auf Null zu setzen und während des gesamten Auslagerungsvorgangs nichts in ihnen zu berühren
Es wurde erneut überprüft, was passiert, wenn Puffer-Arrays in OnInit() initialisiert werden.
Selbst wenn der Indikator aus dem Diagramm entfernt und neu gesetztwird, haben NICHT ALLE, sondern nur einige Puffer noch die alten Werte. Sie sind nicht einmal genau so hoch wie vorher, aber einer dieser Werte erstreckt sich über mehrere Balken.
Oh! Das macht jetzt mehr Sinn. Ich melde mich heute Abend bei Ihnen.
Entschuldigen Sie die Verzögerung bei der Beantwortung. Die einzige Möglichkeit, die berechneten Werte für einen bestimmten Zeitraum zu speichern, besteht darin, sie in einer Datei zu speichern. Sie müssen sich um die Synchronisierung kümmern, damit die Daten beim Lesen aus der Datei auf ihren Balken platziert werden. Die logischste Lösung ist die Synchronisierung gemäß der Öffnungszeit des Balkens, aber es kann einige Feinheiten geben: zum Beispiel war die Öffnungszeit des Balkens (gespeichert in einer Datei) 2016.09.05. 25:02, aber jetzt haben wir einen Balken auf dem Diagramm mit der Zeit gleich 2016.09.05. 25:01.
Oder wäre es vielleicht besser, die Aufmerksamkeit der Entwickler auf das Problem der Initialisierung von Indikatorpuffern zu lenken? Warum gibt es dieses Problem bei MT4 nicht? Vielleicht wieder kein vollständiges Verständnis? Das Problem ist, dass selbst nach der obligatorischen Initialisierung von Puffern nach der Entnahme eines Indikators aus einem Diagramm in JEDEM von ihnen, nicht alle Puffer Müll enthalten, und wir können nicht entladen es von dort...
Ich persönlich habe nichts gegen Krücken, aber nur, wenn diese Krücken nicht zu kompliziert sind und eine positive Wirkung haben. Aber in eine Datei zu schreiben und sie dann zu lesen, ist eine faule Krücke.