Fehler, Irrtümer, Fragen - Seite 1546

 

In meinem Indikator verwende ich OnCalculate() in letzter Zeit überhaupt nicht - und nichts, die Fläche wird nur breiter. :)

Aber im Ernst: Verwenden SieOnChartEvent (). Geeignet für alle Fälle im Leben (imho).

 
Andrey Dik:

In meinem Indikator verwende ich OnCalculate() in letzter Zeit überhaupt nicht - und nichts, die Fläche wird nur breiter. :)

Aber im Ernst: Verwenden Sie OnChartEvent (). Geeignet für alle Fälle im Leben (imho).

Im obigen Link habe ich gezeigt, warum es ohne OnCalculate bei Standard-Indikatorpuffern manchmal zu einem Absturz im MT5 kommt.
 

Fehler. Unzutreffend, aber höchst beunruhigend und ärgerlich.


Hinter dem rechten Null-Balken (Strom) berechnet das Terminal die Zeit auf der Grundlage einer Sieben-Tage-Woche. In Wirklichkeit sind die Handelswochen Fünftagewochen. Aus diesem Grund ändern fast alle Objekte ihre Position auf dem Bildschirm, wenn ein neues Datum eintrifft. Sie "bewegen" sich und werden verzerrt. Als Programmierer verstehe ich, dass es schwierig ist, dies für alle gehandelten Instrumente zu beheben, aber dieser Parameter kann in die Einstellungen aufgenommen werden, so dass die Benutzer den optimalen Parameter auswählen können.

Zum Beispiel,

торговых_дней_в_неделе = 5.

 
comp:

Wenn wir ein Skript verwenden, können wir (die Implementierung ist völlig anders - ohne TF zu ändern)OnCalculate eines bestimmten Indikators auf einem Diagramm oder aller Indikatoren auf einmalaufrufen.

Aber auch diese (Script-)Variante ist nicht geeignet, wenn der Indikator das Terminal dazu bringen soll, sein eigenes OnCalculate (MT5) aufzurufen.

OnCalculate(параметры);
Haben Sie es auf diese Weise versucht?
 
pako:
Haben Sie es auf diese Weise versucht?
Versucht(CLASS::FullOnCalculate()), ohne Erfolg. Sie muss vom Terminal selbst aufgerufen werden, nicht von mir.
 
comp:
Versucht(CLASS::FullOnCalculate()), ohne Erfolg.

Ich kann es nicht finden, ich habe es irgendwo in einem Forum gesehen

OnCalculate(mit Parametern) wird von einer Drittanbieterfunktion aufgerufen;

int Ihre Funktion()

{

OnCalculate(mit Parametern);

}

Etwa so

 
pako:

Ich kann es nicht finden, ich habe es irgendwo in einem Forum gesehen

Genau das habe ich angesprochen.
 
comp:
Das ist das, was ich zitiert habe.

Nein, das ist es nicht

Der Indikator wird in OnCalculate nur dann neu berechnet, wenn ein neuer Kurs eintrifft.

Owl sieht nur die Indikatorpuffer, die bei OnCalculate ausgefüllt werden

d.h. wenn Sie OnCalculate zwischen eingehenden Kursen aufrufen

und die Werte aus einer anderen Funktion an die Indikatorpuffer übergeben

usw.

 
Achten Sie nun auf die Frage: Wie bringe ich das Terminal dazu, die auf diese Weise berechneten Daten sofort neu zu zeichnen?
 
Комбинатор:
Die Frage ist nun, wie man das Terminal dazu bringt, die auf diese Weise berechneten Daten sofort neu zu zeichnen.
Es scheint keinen Weg zu geben.