Das "Problem" kann darin bestehen, dass die Indikatoren ein Limit verwenden, d.h. die Funktion IndicatorCounted() verwenden, damit die Balken nicht neu gezeichnet werden.
Bei einem Wechsel des Zeitrahmens wird dieser zurückgesetzt, bei WindowRedraw() möglicherweise nicht. Seine Funktion ist es, Objekte neu zu zeichnen, nicht Indikatorindizes.
void WindowRedraw(
)
Zeichnet das aktuelle Diagramm zwangsweise neu. Sie wird normalerweise verwendet, nachdem die Objekteigenschaften geändert wurden.
Ich weiß, dass ich bei den meisten Dingen, die ich schreibe, 1000 Balken oder so neu berechne, und das wird wird durch einen Rechtsklick auf Aktualisieren ausgelöst.
Wenn Sie die Schleife für den Indikator nicht stark einschränken, wird der Indikator bei jedem Tick aktualisiert.
erst nach fast zwei Monaten habe ich deine letzte Antwort erhalten. Ich weiß nur nicht, wie ich das übersehen konnte. Ich habe immer noch Probleme mit "Redrawing my indicator". jetzt werde ich versuchen, das Problem mit den Informationen, die Sie mir gegeben haben, zu beheben. vielen Dank,,,
gerade nach fast zwei Monaten habe ich deine letzte Antwort bekommen. Ich weiß nur nicht, wie ich das übersehen konnte. Ich habe immer noch Probleme mit dem "Neuzeichnen meines Indikators". jetzt werde ich versuchen, das Problem mit den Informationen, die Sie mir gegeben haben, zu beheben. vielen Dank,,,
Ich habe diesen Thread gelesen und ich denke, dass es ein Problem in Ihrem Code gibt => die Funktion WindowRefresh() wird Ihnen nicht helfen.
Ich denke, ich versuche, den Indikator zurückzusetzen, um es zu zwingen, alle wieder von Anfang an neu zu zeichnen!? mein Problem ist, dass ich eine Funktion, die die Vergangenheit Daten in Funktion der neuen Daten ändert, und das Ergebnis ist, dass mein Diagramm eine Masse über die Zeit wird. Ich muss meinen gesamten Indikator regelmäßig neu zeichnen. In letzter Zeit habe ich den Zeitrahmen geändert, so dass ich, wenn ich zu dem Zeitrahmen zurückkehre, in dem ich war, meine Chart-Fenster sauber (neu gezeichnet) bekomme. hier ist das Schema meines Codes:
intstart(){intlimit;
intcounted_bars=IndicatorCounted();
//---- check for possible errorsif(counted_bars<0)return(-1);
//---- last counted bar will be recountedif(counted_bars>0)counted_bars--;
limit=Bars-counted_bars;
if(limit>GV)limit = GV;
//---- main loopfor(inti=limit; i>=1; i--){{calculatesthevariableandfeedthebuffers}return(0);}
intstart(){intlimit;
intcounted_bars=IndicatorCounted();
//---- check for possible errorsif(counted_bars<0)return(-1);
//---- last counted bar will be recountedif(counted_bars>0)counted_bars--;
limit=Bars-counted_bars;
doublestartTime=GetTickCount();
if(limit>GV)limit = GV;
//---- main loopfor(inti=limit; i>=1; i--){{calculatesthevariableandfeedthebuffers}doublefinishTime=GetTickCount();
Print("Calculation time is ",(finishTime-startTime)/1000.0," seconds");
return(0);}
Das "Problem" kann darin bestehen, dass die Indikatoren ein Limit verwenden, d.h. die Funktion IndicatorCounted()
verwenden, damit die Balken nicht neu gezeichnet werden.
Bei einem Wechsel des Zeitrahmens wird dieser zurückgesetzt, bei WindowRedraw() möglicherweise nicht. Seine Funktion ist es, Objekte neu zu zeichnen, nicht Indikatorindizes.
Ich weiß, dass ich bei den meisten Dingen, die ich schreibe, 1000 Balken oder so neu berechne, und das wird
wird durch einen Rechtsklick auf Aktualisieren ausgelöst.
Wenn Sie die Schleife für den Indikator nicht stark einschränken, wird der Indikator bei jedem Tick aktualisiert.
Vielen Dank!
Sind Sie "lesebehindert"?
erst nach fast zwei Monaten habe ich deine letzte Antwort erhalten. Ich weiß nur nicht, wie ich das übersehen konnte. Ich habe immer noch Probleme mit "Redrawing my indicator". jetzt werde ich versuchen, das Problem mit den Informationen, die Sie mir gegeben haben, zu beheben. vielen Dank,,,
Zeigen Sie Ihren Code...
Hallo phy,
gerade nach fast zwei Monaten habe ich deine letzte Antwort bekommen. Ich weiß nur nicht, wie ich das übersehen konnte. Ich habe immer noch Probleme mit dem "Neuzeichnen meines Indikators". jetzt werde ich versuchen, das Problem mit den Informationen, die Sie mir gegeben haben, zu beheben. vielen Dank,,,
Ich denke, ich versuche, den Indikator zurückzusetzen, um es zu zwingen, alle wieder von Anfang an neu zu zeichnen!? mein Problem ist, dass ich eine Funktion, die die Vergangenheit Daten in Funktion der neuen Daten ändert, und das Ergebnis ist, dass mein Diagramm eine Masse über die Zeit wird. Ich muss meinen gesamten Indikator regelmäßig neu zeichnen. In letzter Zeit habe ich den Zeitrahmen geändert, so dass ich, wenn ich zu dem Zeitrahmen zurückkehre, in dem ich war, meine Chart-Fenster sauber (neu gezeichnet) bekomme. hier ist das Schema meines Codes:
vielen Dank,,,
Was ist GV?
Was ich in letzter Zeit gemacht habe, ist etwas wie das hier:
for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()); i>= 0; i--){
Dabei wird der sichtbare Teil des Indikators bei jedem Tick neu gezeichnet, nicht aber die Balken, die nicht sichtbar sind.
Was ist GV?
Was ich in letzter Zeit gemacht habe, ist etwas wie das hier:
for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()); i>= 0; i--){
Dabei wird der sichtbare Teil des Indikators bei jedem Tick neu gezeichnet, nicht aber die Balken, die nicht sichtbar sind.
Ihr seid fantastisch!! Ich werde diesen Code heute Nachmittag implementieren.
Danke für eure Großzügigkeit,,,